Cloud OnAir

Cloud OnAir 番組レポート : GCP で実践するモダンなサーバーレス アプリケーション開発

cloudonair0904.png

Cloud OnAir は、Google Cloud の製品をわかりやすく解説し、最新の情報などをいち早く皆様にお伝えする Online 番組です。


9 月 12 日の放送では、「Cloud Run Deep Dive~ GCP で実践するモダンなサーバーレス アプリケーション開発 ~ 」をテーマにお送りしました。2019 年 4 月の Google Cloud Next '19 サンフランシスコで Cloud Run を発表しました。 それ以降、Cloud Run を本番環境で利用したい、利用にあたって注意すべき点は何かという声もではじめています。そこで、今回の放送ではそういう要望に応えるため、 Cloud Run を使ったサーバーレス アプリケーションを開発するための実践的な Tips を解説します。また他のサーバーレス サービスとの連携や使い分けについても説明します。


Cloud Run を使いこなすための Tips

Cloud Run は、マネージド型のコンピューティング プラットフォームで、HTTP リクエスト経由で呼び出し可能なステートレス コンテナを実行できます。その特徴は次の 3 点です。


  • 高速なデプロイ - ステートレス コンテナを簡単にデプロイできます。トラフィックに応じてゼロから N まで自動的にスケールし、数秒でデプロイし URL を付与します。

  • サーバーレスでネイティブ - サーバーのプロビジョニング、構成、管理など、すべてのインフラストラクチャ管理が不要になるため、コードの記述に集中できます

  • 高いポータビリティ - Knative オープンソース プロジェクトを基盤とするため、プラットフォーム間でのワークロードのポータビリティを確保します。

Cloud Run は、Web アプリやモバイルのバックエンドのようなパブリックなユースケースと、マイクロサービス、非同期処理のワーカーといったプライベートなユースケースがあります。

なお、番組では、リソースモデルや課金の考え方についても詳しく解説します。


では、この Cloud Run を使う上でおさえておくポイントは何でしょう? 次の 7 つが重要となります。


  • Container Runtime Contract - コンテナに関する決まりごとがいくつか存在します。たとえば、Linux x86_64 ABI をサポートする、通信のポートや時間に関する制約や、コンテナのスペックなどです。また、アプリケーションはステートレスであることが推奨されています。

  • Cloud Run サービスの利用 - サービスを新規でデプロイすると FQDN と SSL 証明書が割り当てられて、HTTPS でアクセスすることができます。デフォルトでは IAM によるアクセス認証が有効になっています。Cloud Pub/Sub からのイベントのプッシュや Cloud Tasks を使った非同期処理、Cloud Scheduler からの定期的なサービス呼び出しといった使い方があります。

  • Cloud Run から他のサービスの利用 - サービスアカウントを使って他の GCP サービスにアクセスすることができます。番組では Cloud SQL への接続やシークレット管理についても触れます。

  • Concurrency とオートスケール - Concurrency の値は 1 から 80 まで設定でき、1 つのコンテナインスタンスで同時に複数のリクエストを処理することが可能です。また、明示的に設定をしていなくても、リクエストの数に応じてオートスケールします。なお、最適な Concurrency の値は十分な検証の上で確定することが推奨されます。

  • カスタムドメイン - デフォルトでは run.app のサブドメインが割り当てられますが、ユーザー自身のドメインを用いることも可能です。

  • ビルドとデプロイ - コンテナのイメージを作るために Cloud Build を利用します。番組では、Cloud Build を使った CI/CD ワークフローを解説します。 

  • モニタリングとロギング - Stackdriver によって、モニタリング、ロギング、エラーの報告を行います。

これらのポイントを実際にデモを動かしながらさらに深堀りします。

GCP サーバーレスコンピュート

GCP では、サーバーレスコンピュートに関連するサービスとして、Cloud Run 以外に、Cloud FunctionsGoogle App Engine があります。いずれもソースコードベースですが、Cloud Functions は、Google やサードパーティのクラウド サービスを簡単に組み合わせて拡張できる、イベント駆動型のコンピューティング プラットフォームです。一方、Google App Engine はウェブと API バックエンド向けのフルマネージド サーバーレス アプリケーション プラットフォームです。それぞれの特徴を活かし、上手に使い分けることが今後求められることでしょう。これらのサービスの違いや使い分けについては、こちらが参考になります。

CloudOnAir-20190912.jpg

Cloud Run Deep Dive ~ GCP で実践するモダンなサーバーレス アプリケーション開発 ~ from Google Cloud Platform - Japan


Cloud OnAir では、各回 Google Cloud のエンジニアがトピックを設け、Google Cloud の最新情報を解説しています。過去の番組、説明資料、さらには視聴者からの質問と回答はこちらよりご覧いただけます。 最新の情報を得るためにもまずはご登録をお願いします。