Google Cloudの勉強会(J.A.M.)に参加しました
こんにちは! Magic Moment の船場(@ryo_web_dev)です。
今回はクラウドエース様主催の J.A.M. ( Join to Cloud Accelerated Meeting ) にご招待いただいたので、その参加レポートです。
会場となったGoogle渋谷オフィス
J.A.M.とは
クラウドエース様が主催したエンジニアのための招待制の学習プログラムで、今回はパイロット版(試験的なもの)となります。
主に Google Cloud の各種サービスの解説や、ハンズオンを通した Google Cloud のリソース作成など、開発スキルを習得することが目的です。
今回のプログラムは全部で 3 回に分かれており、全て Google の渋谷オフィスで開催されました!
1 社あたり 1 ~ 3 名が参加し、合計で約 25 名が参加するにぎやかなイベントとなりました。
ここからはイベントレポートということで、イベントがどんなものだったか写真も交えながら簡単にご紹介していきます。
開催前
Google 日本法人の所在地は渋谷ストリームで、周辺施設が充実しており、アクセスが優れた立地でした。
人生で初めて Google のオフィスを訪れ、その広さや景色に驚きました!
会場からは六本木のビル群やスカイツリーを眺望でき、その景色に癒やされました。
また、会場ではお菓子や飲み物が用意されており、自由に食事しながらプログラムに参加できました。
開放感抜群の環境で、しっかりと Google Cloud のサービスについて学べたので、以下でご紹介いたします!
1日目 - サーバーレスプロダクト
1 日目はサーバーレスプロダクトについて学びました。
主に Cloud Run・Cloud Functions を始めとしたサーバーレスの活用シーンなどが紹介されました。
結論として、API サーバーとしては基本的に Cloud Run が推奨され、Cloud Functions はイベントドリブンな関数として活用するのが良さそうです。
Cloud Run
Cloud Run はコンテナイメージから高速でアプリケーションを起動させるサービスです。
インフラの管理は不要で、言語・ライブラリの制限が存在しないので、高い可搬性が強みです。
Cloud Functions
Cloud Functions はイベントや HTTP リクエストをトリガーに関数を実行する FaaS です。
データ処理など、イベント駆動の自動化処理で活用されることが多いです。
注意点として、Cloud Functions (第 1 世代) は以下のような制約を伴います。
- タイムアウトが最大 9 分
- インスタンスの RAM が最大 8 GB
- 同時実行は関数インスタンスごとに 1 件の同時リクエスト
- トラフィック分割に非対応
しかし、2022 年 8 月に 第 2 世代の Cloud Functions が一般提供され、上記の制約が改善されました。
ですが、イメージレジストリなど第 1 世代 の方が優れている点もあるので、ユースケースに沿って使い分けることが求められます。
2日目 - データベースサービス
2 日目はデータベースサービスについて学びました。
Google Cloud における SQL データベースは Cloud SQL・AlloyDB・ Cloud Spanner の 3 つが提供されています。
それぞれのスペック・コストともに Cloud SQL < AlloyDB < Cloud Spanner の順となります。
一般的な Web サービスを立ち上げる場合、Cloud SQL か AlloyDB が視野に入ると思います。
しかし、グローバル展開・エンタープライズ向け・急激なリクエスト増加が見込まれるサービスの場合は、Cloud Spanner が推奨されます。
一度運用が始まると、簡単には別のマネージドサービスには乗り換えられないため、導入初期の技術選定は慎重に行うべきでしょう。
Cloud SQL
MySQL・PostgreSQL・SQL Server をマネージドデータベースで提供します。
日々のメンテナンス・バックアップなどは Google Cloud が行うため、運用コストの削減が期待できます。
AlloyDB
PostgreSQL に対して完全互換であり、標準的な PostgreSQL と比べて分析クエリが最大 100 倍高速という強みがあります。
高い可用性とスケーラビリティを持ち合わせており、リアルタイム分析が得意という特徴があります。
Cloud Spanner
フルマネージドデータベースにより、メンテナンスを含めた様々な運用作業から開放されます。
リージョン障害にも耐えられる高い可用性を備え、メンテナンス時のダウンタイムも存在しません。
そして一番の特徴は無制限にスケールすることで、必要な性能を必要な時に得られるスケーラビリティです。
今まで Cloud Spanner はコストがボトルネックでしたが Processing Unit (処理ユニット)という単位でプロビジョニング可能になり、初期費用を抑えたい開発環境や新規サービスでも導入しやすくなりました。
3日目 - ワークショップ
最終日である 3 日目では、学んだことを活かす目的でワークショップが開かれました。
4 チームに分かれて、お題に沿ったインフラアーキテクチャをそれぞれのチームが発表する、といった内容でした。
ちなみにチームを代表して私も発表いたしました(笑)
実際に出題されたお題は以下のようなものです。
あなたは世界中で使用されるオンラインゲームのチャット機能のインフラ担当者です。
以下の条件を考慮して API 基盤を作成して下さい。
・データベースは SQL に対応させる
・冗長性を追加するため、世界各地に API を分散させる
・可用性をマルチリージョンレベルで担保
・DDoS 攻撃への対策がなされている
上記の要求を満たすには 1 日目、 2 日目で学んだ Google Cloud のマネージドサービスを活用すれば良さそうですね!
今回のお題に対する解答例について解説すると長くなるので、また今度別の記事として書いてみようと思います。
懇親会
3 日目のワークショップ後は、Google オフィスの見学ツアーを行い、その後に懇親会の会場に案内されました。
お酒・ジュース・おつまみ・サラダ・お肉・フルーツなどが豪華に振る舞われ、美味しくいただきました!(写真は撮り損ねました💦)
そこではお酒を片手に、参加者同士で日々の仕事や新しい技術などの情報交換が行われ、非常に有意義な時間を過ごすことができました。
まとめ
今回学んだ内容で、以下の内容は今後の業務に役立てそうでした。
- API サーバーを構築する際は Cloud Functions ではなく、Cloud Run を最初に検討する
- Cloud Functions はイベントドリブンアーキテクチャとして使用する
- 新規の DB 環境を構築する際は、基本的に Cloud SQL か AlloyDB を検討する
- グローバル展開やエンタープライズ向けの場合は、Cloud Spanner を活用する
上記で列挙したサービスは汎用性・コスパ・学習コストに優れていると感じます。
今後、新規サービス立ち上げ時やリプレイスを行う際にしっかりと活用していきます!
最後に
今回はクラウドエース様主催の J.A.M. にご招待いただいたので、その参加レポートをご紹介しました。
今回の J.A.M. はパイロット版だったので、今後は定期的に開催されると Google Cloud のコミュニティ活性化に繋がりそうですね!
弊社 Magic Moment では Google Cloud を使用して自社プロダクト「 Magic Moment Playbook 」の開発運用を行っています。
また、フロントエンド・バックエンドにかかわらず全方位的にエンジニアを募集中です!
弊社に少しでも興味を持っていただけたら是非エントリーください!
8/30にはFindy様主催のイベントにMagic Momentから石田さんが登壇されます!
よろしければぜひご視聴ください!
さらに、こちらのイベントも8/29開催予定です!こちらはオンラインイベントです。Magic Momentの開発がどんなものか興味を持っていただいた方は是非ご参加ください!
Discussion