2022最新情報! Google Cloud (GCP)の様々なサーバーレスプロダクトを一挙に紹介
- App Engine
- Cloud
- Cloud Run
- サーバーレス
本記事は、2022年4月21日に開催された Google の公式イベント「 Google Cloud ML サミット」において、 Google Cloud アプリケーションモダナイゼーションスペシャリストの頼兼孝幸氏が講演された「 Google Cloud サーバーレス最新情報」のレポート記事となります。
今回は Google Cloud (GCP)が提供するサーバーレスなアプリケーションの実行環境である Cloud Run や App Engine (GAE)、 Cloud Functions などのサービスについて、直近のアップデートを振り返りながらプロダクトのユースケースがどのように広がったのか?をわかりやすくご説明します。
なお、本記事内で使用している画像に関しては、 Google Cloud ML サミット「 Google Cloud サーバーレス最新情報」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
Google Cloud (GCP)におけるサーバーレスプロダクトの概要
まずは、
- Cloud Run
- App Engine (GAE)
- Cloud Functions
のサービス概要を見ていきましょう。
以下、各サービスの特徴とユースケースを図にまとめます。
これらのサービスは全てサーバーレスで提供されており、コンテナやアプリケーション、関数など、様々な要素の実行環境として使われています。
次に、サーバーレスアプリと連携する周辺プロダクトをご紹介します。 Eventarc や Pub/Sub など、 Google Cloud (GCP)では様々なプロダクトが用意されています。
マイクロサービスについては以下の記事で詳しく解説しておりますので、併せてご覧ください。
マイクロサービスとは?開発の生産性を高めるための情報技術を徹底解説!
そして、これらのプロダクトがサーバーレスアプリと連携した場合のユースケースを下図に示します。
例えば、 Cloud Run と Cloud Storage 、 Eventarc の連携によるイベント駆動や、 Cloud Run と Cloud Scheduler を組み合わせた定期的な呼び出し実行などが挙げられます。
ここまでは、 Google Cloud (GCP)におけるサーバーレスプロダクトの概要をご紹介しました。
この先は2021年下半期以降の Google Cloud (GCP)サーバーレスの最新情報をご紹介します。
App Engine のランタイム
App Engine にはスタンダード環境とコンテナを実行するフレキシブル環境という2つのパターンが存在し、さらにスタンダード環境は第1世代と第2世代に分かれています。そして、第1世代では App Engine 専用の API が提供されており、これに依存することで第2世代へ移行できない方も一定数いらっしゃいます。
このような状況を受けて、2021年後半にはスタンダードの第2世代でも App Engine 専用の API が利用可能になりました。ただし、 Python 3 や Java 11 などの一部言語に限った話なので、この点には注意が必要です。
App Engine の使い方は以下の記事で詳しく解説しています。
【トップゲート主催】ゲーム業界様向けGCP活用のポイント 〜Google App Engine編〜
Cloud Run の新機能
Cloud Run と App Engine の比較
まずは Cloud Run と App Engine を比較してみましょう。
App Engine の第2世代を利用すること自体は問題ありませんが、実際には Cloud Run の方が制約が少なく、コンテナのスケール性能も高いと言えます。
例えば、
- 言語やライブラリの制約なし
- WebSocket や gRPC サポート
- App Engine フレキシブル環境よりもスケール性能が高い
- マルチリージョンのサービス展開
- イベント駆動
- コンテナ化や CI / CD サポート( Buildpacks、ソースコードからのデプロイ)
などが挙げられます。また、新しい機能が頻繁にリリースされている点も Cloud Run の大きな魅力の一つです。これらのポイントを重視する場合には App Engine よりも Cloud Run を利用すべきだと言えるでしょう。
Cloud Run の最新情報
ここからは Cloud Run の最新情報をご紹介します。
2021年後半にリリースされた第2世代の実行環境では、性能の高速化やユースケースの拡大が大きなポイントとして挙げられます。
CPU やネットワークのパフォーマンスが高速化したことに加えて、すべてのシステムコールや名前空間、 cgroup のサポートを含む Linux との完全な互換性を手に入れており、ネットワークファイルシステムのサポートも実現しています。
ただしpreview段階においては、第1世代よりも第2世代の方がコールドスタート時間が少し長くなるため、この点には注意が必要です。
前述したネットワークファイルシステムのサポートについては、 Cloud Filestore や Cloud Storage FUSE を利用して、複数のコンテナやサービス間のデータを共有します。例えば、 Cloud Storage をローカルファイルシステムのように扱うことも可能です。
以下、 Cloud Run の第2世代に関するよくある質問と答えです。参考までにご参照ください。なお、実行環境についての詳細は Google Cloud の公式ドキュメントが参考になります。
Secret Manager の統合
Secret Manager を使うことで API キーやパスワードなどの機密情報を安全に管理することが可能になり、 Cloud Run をより安全に利用することができます。
下図のように、機密情報を Secret Manager に登録しておき、 Cloud Run としてはマウントした Secret Manager の情報を呼び出して、アプリケーションの中で機密情報を利用するような統合的な連携が可能になりました。
インスタンス時間に応じた CPU Allocation と課金
Cloud Run において HTTP リクエストの有無に関わらず、常に CPU が割り当てられ、コンテナインスタンスが存在している時間に対して課金が行われる Always on CPU が GA になりました。例えば、バックグラウンドタスクや非同期処理などに最適な課金モデルだと言えます。
内部 Ingress に限定されたサービスの Workflows からの呼び出し
内部トラフィックのみ、または、内部トラフィックと Cloud Load Balancing からのトラフィックを許可した Ingress 設定の場合、 Workflows から Cloud Run の URL (run.app)を呼び出せるようになりました。
CPU とメモリの適用範囲拡張
Cloud Run における CPU とメモリの適用範囲が拡張されました。
CPU に関しては 1 CPU 未満の割り当てが可能になり、適用範囲は 0.08 から 1 までの間で 0.01 単位で指定できるようになりました。これにより、開発用途や単発起動などの軽量な処理でコスト最適化を実現できます。なお、 CPU 1 未満を割り当てた場合、コンテナあたりの最大リクエスト数は 1 固定になります。
また、メモリに関しては 16 GiB のメモリが割り当て可能になりましたが、割り当てメモリ相当の CPU は指定が必要です。例えば、 16 GiB メモリ割り当ての場合は最低 4 つの vCPU が必要になります。
以下の記事で Cloud Run の本番運用に向けたポイントを解説しています。
Cloud Ops のソリューションがすごい? Cloud Run の本番運用時に考慮すべきポイントと Tips を徹底解説!
新しい Cloud Functions
Cloud Functions 第 1 世代の課題と第 2 世代の登場
Cloud Functions 第1世代では様々な課題が顕在化していました。
例えば、
- 実行環境に、同時実行性がない
- 長時間の処理実行時に制限がある
- 柔軟なトラフィック管理ができない
などが挙げられます。
しかし、直近のアップデートにより、 Cloud Functions 第 2 世代の環境が選択できるようになりました。そして、第 2 世代を活用することで、前述した第 1 世代の課題を解決できます。
第 2 世代では Cloud Run と Eventarc を基盤としたアーキテクチャを採用しており、 Cloud Run の特性を利用して同時実行性を実現し、コストを最適化できます。また、長時間の処理にも対応可能となっており、最長 60 分のタイムアウトを設定できます。
さらに、 Cloud Run と同様にリビジョンごとのトラフィック管理を提供しており、複数の関数のリビジョンを利用可能となるほか、リビジョン間のトラフィック分割や以前のバージョンへのロールバックなども実現できます。
Cloud Run と Cloud Functions の使い分け
ここで、 Cloud Run と Cloud Functions の使い分けについて考えてみましょう。
複数サービスの連携など、一定規模のシステムをサーバーレスで構築する場合は Cloud Run がオススメですが、 Workflows を併用した一連のワークフロー作成やサードパーティーとの連携、 Google Cloud (GCP)プロダクト間を繋ぐような処理は、関数単位で閉じやすく管理単位が小さくなる Cloud Functions がオススメです。
以下の記事で Cloud Functions の使い方を詳しく解説しています。
【GCP入門編・第14回】 Cloud Functions を使ってサーバレスアーキテクチャを体験しよう!
Pub/Sub のメッセージ配信保証
Pub/Sub の配信保証と順序指定
Pub/Sub は少なくとも 1 回以上のメッセージ配信( At least once delivery )を保証していますが、2020年には順序指定( Ordering delivery )を保証する機能が追加されました。なお、メッセージの重複については、必要に応じて後続タスクでチェックする必要があります。
Exactly once delivery
Exactly once delivery は 1 回限りの配信が有効になっているサブスクリプションに対して、配信が重複しないことを保証していますが、2022年3月時点では順序指定配信のサポートはありません。なお、通常のサブスクリプションよりも、パブリッシュとサブスクライブ間のレイテンシが大幅に高くなる点には注意が必要です。
Pub/Sub に関心のある方は以下の記事が参考になります。
Google のメッセージングサービス Cloud Pub/Sub とは?特徴やユースケース、料金体系まで徹底解説!
Google Cloud (GCP)のサーバーレスに関する Q&A
Q.サーバーレスを使わない方が良い例はありますか?
A.Cloud Run や Cloud Functions などのサーバーレスなプロダクトは、データを内部で持つような Stateful なアプリケーションを実行できません。そのため、このような場合はサーバーレスを避けるべきだと言えます。
仮に Stateful なアプリケーションを実行したいケースでは Google Compute Engine (GCE)や Google Kubernetes Engine (GKE)などのソリューションを利用してください。
Q.第2世代の Cloud Functions を Identity Platform の Blocking Functions に利用できますか?
A.HTTP トリガーとして連携する場合は利用可能です。
Q.workflows は自動化で使えるように見えますが Cloud Scheduler と何が違いますか?
A.Cloud Scheduler はエンドポイントを定期的に呼び出すだけのサービスですが、 workflows は複数の API エンドポイントを呼び出し、それぞれの API をコールします。そのため、ワークフロー単位で何かの処理と連携させたい場合は workflows を使うべきだと言えます。
まとめ
今回は Google Cloud (GCP)が提供するサーバーレスなアプリケーションの実行環境である Cloud Run や App Engine (GAE)、 Cloud Functions などのサービスについて、直近のアップデートを振り返りながらプロダクトのユースケースがどのように広がったのか?をわかりやすくご説明しました。
大切なポイントは Cloud Run 第 2 世代のように Cloud Run 自身のユースケースが広がるだけではなく、その機能を Cloud Functions にも活用し、関数としてのサーバーレス製品のユースケースをより拡大できる点です。
また、 Workflows や Eventarc 、 Pub/Sub などの製品を組み合わせ、ワークフローやイベント駆動、非同期処理䛾連携など、サーバーレスだけで実現できることは大幅に増えています。本記事を参考にして、ぜひ Google Cloud (GCP)の導入を検討してみてはいかがでしょうか?
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!