コンテンツに移動
サーバーレス

フルマネージド Cloud Run における本番対応の 8 つの新機能

2019年12月18日
https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Cloud_Run_blog.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2019 年 12 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

今年 4 月の Google Cloud Next で Cloud Run を発表して以来、「サーバーレス」と「コンテナ」の相性のよさがデベロッパーの皆様に広く知られるようになりました。Cloud Run を使用すれば、フルマネージドのインフラストラクチャや、双方向の自動スケーリング、従量課金制の料金体系だけでなく、言語やランタイム、ライブラリが何であれ、リクエストを待つステートレスなコンテナのなかにワークロードをパッケージングできるという利点が得られます。しかも、オープンソースの Knative を基盤としていることから、ポータビリティを犠牲にすることなくこれらを実現することができます。

たとえば公開ウェブサイトや API のデプロイのために、あるいは高速で負荷の軽いデータ変換やバックグラウンド処理の手段として、Cloud Run はすでに Google Cloud の多くのお客様にご利用いただいています。

「Cloud Run は、コンテナ化されたソフトウェアをデプロイする作業の複雑さを劇的に緩和してくれます。コマンドひとつで本番稼働中のサービスを自動スケーリングできることはとても魅力的です。」―― Jamie Talbot 氏、Mailchimp のプリンシパル エンジニア

Cloud Run は先ごろ、フルマネージド プラットフォーム版と Anthos 版の 2 形態で一般提供(GA)が開始され、多くの新機能が利用できるようになりました。この投稿では、フルマネージド Cloud Run プラットフォームの新機能を紹介します。

1. サービス レベル契約(SLA)

GA リリースとともに、Cloud Run には SLA が設けられました。また、顧客データを特定のリージョン / マルチリージョンに格納できるようにするデータ ロケーション コミットメントも提供します。

2. 9 つの GCP リージョンで利用可能

コンテナを Cloud Run にデプロイできるリージョンは、サウスカロライナ、アイオワ、東京、ベルギーに加えて、今後数週間のうちに、北バージニア、オレゴン、オランダ、フィンランド、台湾にも広がり、合計 9 リージョンになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Cloud_run_regions.max-2000x2000.max-2000x2000.png

3. インスタンス数の上限設定

自動スケーリングは魔法のような機能ですが、たとえばコスト抑制のために Cloud Run サービスのインスタンス数に上限を設けたい場合もあります。あるいは、データベースなどのバックエンド サービスが接続数を制限していることもあるでしょう。そうしたサービスに接続できるインスタンスの数には制限が必要です。インスタンス数の上限機能により、そのような制限を設定できるようになりました。

上限の設定には Cloud Console か Cloud SDK を使用してください。

gcloud run services update SERVICE-NAME --max-instances 42

4. HTTPS 専用化によるセキュリティの向上

すべてのフルマネージド Cloud Run サービスは安定かつ安全な URL を受け取ります。Cloud Run は安全な HTTPS 接続だけを受け付け、HTTP 接続については HTTPS エンドポイントにリダイレクトするようになりました。

ただし、HTTPS エンドポイントがあるからといって、サービスへのアクセスが認められるわけではありません。お客様が状況を把握し、サービスへのパブリックなアクセスを認めるかどうかを選択できます。または、IAM の「Cloud Run Invoker」ロールを使って認証を要求することも可能です。

5. Unary gRPC プロトコルのサポート

Cloud Run で Unary gRPC サービス(非ストリーミングの gRPC)をデプロイして実行できるようになり、マイクロサービスがこの RPC フレームワークを活用できるようになりました。

詳細は、Peter Malina 氏によるチュートリアル『Serverless gRPC with Cloud Run』(Go 言語を使用)や、Ahmet Alp Balkan 氏の『gRPC Authentication on Cloud Run』をご覧ください。

6. インスタンスの使用状況を表す新しいメトリクス

Cloud Run は Stackdriver Monitoring とすぐに統合できます。Google Cloud Console の Cloud Run ページには、Cloud Run サービスの主要なパフォーマンス メトリクス(1 秒あたりのリクエスト数、リクエスト レイテンシ、使用したインスタンス時間、CPU、メモリ)のグラフを表示する「Metrics」タブが追加されました。

container/billable_instance_time という新設の Stackdriver 組み込みメトリクスを使用すると、すべてのコンテナ インスタンスの課金時間を合計でき、サービスのために実行されているコンテナ インスタンス数がどの程度かを推測できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/billable_container_instance_time.max-1200x1200.jpg

7. ラベル

GCP のラベルは、レースに参加するランナーのゼッケンのように、サービスのグループを見分けたり、コストを分担したり、異なる環境を区別したりするのに役立ちます。

ラベルは Google Cloud Console の Cloud Run サービス リスト ページで設定でき、次のコマンドとフラグで更新できます。

gcloud run services update SERVICE-NAME --update-labels KEY=VALUE

8. Terraform によるサポート

最後になりましたが、Infrastructure as Code(IaC)を実践している方に朗報です。Terraform が Cloud Run をサポートし、Terraform の構成ファイルから Cloud Run サービスをプロビジョニングできるようになりました。

読み込んでいます...

さあ、はじめましょう

バトンはあなたの手に渡りました。Cloud Run にコンテナ イメージをデプロイするには、イメージのビルドとデプロイについてのクイックスタート ガイドをご覧ください。Always Free と 300 ドル相当のクレジットが付属する GCP 新設アカウントの無料枠を利用すれば、Cloud Run をすぐに試せます。

もちろん、詳細を学ぶためのドキュメントが整備されていますし、さまざまな言語ランタイムを使ったサンプルも多数用意されています(コードを自動的にデプロイする「Run on Google Cloud」ボタンをお見逃しなく)。さらに、GitHub の Awesome Cloud Run プロジェクトでコミュニティが提供しているリソースについてもチェックしてください。皆様によってビルド、デプロイされたサービスを拝見することを、私たちは楽しみにしています。

- By Guillaume Laforge, Developer Advocate and Steren Giannini, Product Manager

投稿先