Zenn × Google Cloud のMeet Upに参加してきました(in福岡)
Zennとは
Zennとは電子書籍を売ったり、ブログ記事を書いたりできるエンジニアのための情報共有プラットフォームです。
ちなみに、ただの情報発信だけではなく、Zennで書いた本やブログを成果物として、販売する事もできます。
運営はクラスメソッドが行っていて、ZennのバックエンドでもGoogle Cloudを利用しています。
先日、Zennの運営を行っている弊社エンジニアの和田祐介さんが行った社内イベントをブログにした記事がとても参考になりますので、ぜひご覧ください。
【社内勉強会】AKIBA.GCP でZennのCI/CDを紹介し、Google Cloud Japan の皆さまに改善アドバイスをいただきました
また、お伝えしたいこととして、クラスメソッドでは今期も色々なイベントを実施していく予定ですので、今回のZennのMeet Upを参考に、クラスメソッドのイベントの雰囲気も感じ取って頂ければ幸いです。
Zennの特徴
今回の内容については、meさんのブログにもアップされています!!
Zenn Meetup in Fukuoka に現地参加してきたので会場の様子をご紹介します
Google Cloud Japan社員のShoさんからZennの特徴やメリットをご紹介いただきました。
主な特徴として挙げて頂いたものは、
・フロントエンド系の情報が多い
・記事の正確性が担保されている
・開発ロードマップがGitHubで公開されていて使いやすい
・直感的に操作しやすい
上記のような評価を頂きました。
そして、2022年のGoogle Cloud Japan Advent CalenderでZennを利用した経緯なども話されていました。
※顔などはモザイクをかけております
その中で、Zennおすすめ機能として、Publicationのご紹介も頂きました。
こちらは組織単位で投稿を管理できるような機能であり、今回のGoogle Cloud Japan Advent Calenderでも役立ったとの事でした。
またGitHubと連携できる点も評価頂き、記事の管理面(記事や多くなった場合や文字の修正点など)でとても有用だとお話しされていました。
登壇者のShoさんがAdvent Calenderで投稿したわかる!Firestore では、Fire Baseがわかりやすく解説されているので、おすすめです。
さらには会場にいらしたエンジニアカフェのスタッフさんがZennを利用しており、「ZennのリンクをカフェHPに記載している、MLをやってみたなどの技術ブログをZennで投稿している」のような、実際に店舗で活用している事例を聞けたことも良かったです!
エンジニアカフェ
また、唐突になりますが、
ぜひ今回のMeet Up会場であるエンジニアカフェのHPも覗いてみてください。ここの会場の中はとても落ち着く空間で、外観もモダンでお洒落な建物なのでかなりおすすめです。
エンジニアカフェのHP
Google Cloud Day Tour
最後に、今年5月の東京を皮切りに3都市でGoogle Cloud Day ’23 Tourも開催されます。
合わせて紹介されていたので詳細を以下に記載しておきます。
Google Cloud Day ’23 Tour
Google Cloudのサービス紹介
Google Cloud Japan社員の一誠さんからGoogle Cloudを初めて知る方向けに、主要なサービスのご紹介を頂きました。
まずは、Google Cloudと言ったら何ですか?との質問から入りました。
(個人的にみたところGKEとApp Engineが多かった模様:約25名ほど)
オンサイトでのMeet Upでは、こういった会場全体が参加できるような質問もできるので、より楽しく話が聞けるというメリットがありますね!
※顔などはモザイクをかけております
Cloud Run
まずはCloud Runからの解説です。以下にお話しされていた大まかな特徴をまとめます。
0~n台のスケールを自動で高速に行う事が重要(トラフィックが増えた場合自動スケール)
無料枠もあるため安く使用可能
イベント駆動型で使用可能→Cloud Functionの代わりとしてCloud Runを使用できる
トラフィックの管理→デプロイした時に新しいURLが割り当てられるが、Cloud Runのみでカナリアデプロイなど、ロードバランサー不要で実施できる
第二世代ではアプリ用途でもイベント駆動型用途でも使用可能、またCloud Run Jobsがプレビュー中
夜中のバッチ、アプリのデプロイ、イベント駆動型...etc、色々な使い方が出来るのが特徴で学習コストがまとめられる。
App Engine
次に、Google Cloudの中でも最も古くから存在するサービスApp Engineについて。
Cloud Runと同じくらいのスケーリングの速さも併せ持つ
安定した実績(2008年からの信頼)=ただし、現在大幅なアップデートされていない
実行環境としてはVMベース
スタンダード環境→0スケール、秒スケールも可能
フレキシブル環境→実行環境としてはコンテナベースであり、Dockerファイルが使える、SSH接続が利用可能...etc
Cloud Runと非常に似ているアーキテクチャであり、ワークロードによりに一概には言えないが、おすすめはCloud Runとなる模様です。
Cloud Functions
次に、主に短い時間の稼働を目的としたサービスCloud Functionsについて。
イベント駆動型のつなぎ役であり、サービス同士をつなげる
第二世代はCloud Runを基軸に開発され、逆に第一世代はAppenginを基軸に開発された
FireStoreとの連携が容易
Cloud RunやApp Engineで代用出来る事が多いため、限定的な用途で使用がおすすめ。(少ないコードでちょっとしたイベントドリブンアプリを開発したい時などに)
Cloud MonitoringとLogging
運用監視のツールも解説頂きました。
以下からは、概要程度にまとめたものを記載していきます。
Cloud Monitoring
ダッシュボード機能(標準搭載されたものがある=無料で使用可能)
Cloud Monitoring
アクセスログ、アプリのログなどを記録する(主にテキスト情報を保存)
Google Cloud オペレーションスイート
実は先程から紹介したCloud MonitoringとCloud Monitoringの両方とも、Google Cloud オペレーションスイートというサービスのくくりの一部として存在しています。
その他に、Cloud Trace、Cloud Profiler、Cloud Debbuger、Error Reportingというサービスも存在するので、気になる方はぜひ検索してください。
また、今回は割愛しますがCloud BuildとCloud Deployのご紹介もされていましたので、気になる方は以下の公式HPを参考にしてくだい。
Zennのアーキテクチャについて
最後に、弊社Zennチームの和田さんによる登壇です。
主に、Zennで利用しているシステムの特徴や歴史について解説してくれました。
また、特徴としてShoさんと同じく、Publicationの話が出たので、リンクを載せておきます。
Publicationとは
※顔などはモザイクをかけております
様々なプラットフォームの活用
Zennは様々なプラットフォームを活用して、運用がされています。
決済:Stripe
メール送信:SendGrid
CDNとOG画像:Cloudinari
出金:Amazonギフト券
中心的な存在のGoogle Cloud
Google Cloudのサービスをメインで使用して、アプリケーションのアーキテクチャを構成しています。
また面白い話として、最初は和田さんもGoogle Cloudでアプリ作成することを想像していなかったため(または経験がなかったため)、少し懐疑的に開発や運用を始めたようです。
ところがどっこい。実際に運用してみて、とても使いやすく多様なサービスとの連携も可能なためGoogle Cloudに対する考えが180°変わったようです。
運用の感所
下記からは、聞き取れた範囲で運用の感所を記載していきます。
LB(Cloud LoadBarancer)→Appサーバー(Cloud Run)→DB(Cloud SQL)
・月間数百万PV以上で動いているが、今現在運用に支障をきたしたことはない
・スケール時に人の手間が少ない(=モダンな運用が可能)
・NoSQLなどは使用せずに基本的なアーキテクチャで運用が可能
和田さんが開発に携わる前までの初期のZennでは、App Engineを利用していたが(運用デプロイが楽だったため)、バーストに弱い状態がネックとなっていた。(フレキシブル環境はプロビジョニングに数分かかるため)
そこでCloud Runに切り替えることにより一時的なバーストにも対応できるようになり、コンテナイメージを用意しておけばいいだけなので色々と楽になった。
上記の解説については、別途ブログにしているのでぜひご覧ください。
Zennのバックエンドを Google App Engine から Cloud Run へ移行しました(無停止!YES!)
その他使用サービス
下記からは、実際にZennで使用しているGoogle Cloudサービスの使用例などについて記載していきます。
Cloud Scheduler
一時停止や即時実行が画面から可能、サービスアカウントの認証でアクセスするためセキュアであり、ZennのアーキテクチャではAmazonギフト券の発行にも使用。
Cloud Tasks
タスクをキューイングするサービスだが、タスクにURLを持たせる事ができるため、開発者は受け側のエンドポイントを用意すれば大量の処理もさばけるようになる優れ物。マークダウンの一括変換のアーキテクチャで使用。色々なワークロードに応用できるため、とてもおすすめのサービス。
複数のサービスの連携
Cloud Tasks+Cloud Scheduler=年に一度のRecapメールの送信で使用している。
Cloud Tasks+Cloud Scheduler+Cloud Run=安く運用する事も可能、ネットワークレイヤの意識がほぼない。
Cloud Armor
また、セキュリティ攻撃としてDDoS攻撃(複数の端末を使用し攻撃する、サービス機能停止を狙った攻撃)を受けた過去の事例を挙げ、Cloud Armorを導入することで解決したことも解説されていました。
まとめ
色々書きましたが、その他にもCloud SQL Proxyなども使用していて、実際の活用事例についても触れられていました。
ZennはGoogle Cloudを軸に置いたアーキテクチャを採用していて、和田さんのGoogle Cloud愛も伝わるような、かなり濃い内容でした!!笑
お客様への技術支援
クラスメソッドはAWSを中心にサービスを展開しておりますが、データ分析やアプリケーション分野に特化したエンジニアも多数在籍しています。
また、AWSやGoogle Cloudへのマイグレーションのみならず、一部のサービスのみをクラウドで運用したい、一度PoCで試したい、、、etc
上記のような企業様も、ぜひお気軽にご連絡頂ければと思っております。
クラウドを利用することにより、考えられるメリットは沢山ございます。
データ分析基盤をBig Queryに移すことにより、高速かつサーバレスな環境でクエリを実行できたり、
まずはCompute EngineやEC2などのVMサービスへ移行をして、徐々にオンプレミスからクラウドへ移行する。
さらに他クラウドをご利用の企業様では、マルチクラウド戦略(複数のクラウドを採用すること)を採用する事により、多方面でのリスク分散が実施可能となったりと、お客様ごとに考えられるメリットは多岐に渡りますので、ぜひ一度お問合せ頂ければと思います。
今後の対外的なイベント
日比谷フォートタワーへオフィスが移転するにあたり、現地でのリアルイベントも増えていく予定です。
現在決まっているイベントもいくつかありますので、ぜひ上記URLにある弊社HPからご確認頂ければと思います。