Google Cloud Runは、コンテナ化されたサーバレスアプリケーションを動作させるためのフルマネージドなソリューションだ。6ヶ月間のベータ期間を終えて、今回、Google Kubernetes Engineクラスタを使ってGoogle Cloud Runアプリケーションをオンプレミスで実行可能にするCloud Run for Anthosと共に一般提供が開始された。
Cloud Runは、サーバレスとコンテナのメリットを組み合わせたものだ。基盤となるインフラストラクチャを考慮する必要なく、任意の言語と任意のバイナリを選択して、コードを記述することが可能になる。
着信したリクエスを処理するためのコンテナの起動と停止は、Google Cloud Runが自動的に処理し、実際に使用したリソースにのみ課金される。コンテナの起動と停止が自動的に行われるので、ステートレスであることがGoogle Cloud Run上で正しく動作するための条件になる。
Knativeをベースとしていることから、Google Cloud Runアプリケーションは、Knativeをサポートするクラウドプラットフォームであれば簡単に移行することが可能で、ロックインのリスクを最小化することができる。Google Anthosにデプロイすることも可能だ。Google Anthosは、Kubernetesアプリケーションをオンプレミス上あるいはクラウド内で、一貫した方法で簡単に管理することを可能にするサービスとツールのコレクションである。
Clloud Run for Anthosを使えば、Kubernetesの概念を事前に学ばなくても、サーバレスアプリケーションの記述とAnthosクラスタへのデプロイが簡単にできるようになる。アプリケーションインスタンスのスケールアップとスケールダウンはCloud Run for Anthosが面倒を見てくれる。トラフィックの状況によっては、インスタンスがゼロになる場合もある。
GoogleはAnthosを、おもにレガシアプリケーションからクラウドへの移行を望む組織向けと定めている。Cloud Run for Anthosを導入することで、オンプレミスで動作して既存のサービスと通信するマイクロサービスを開発し、状況が整った時点でクラウドへ移行する、という方法が可能になる。
以前の記事で述べたように、Google Cloud Runはファンクション・アズ・ア・サービス(FaaS)ではない。多数の共通的な責務をマネージドインフラストラクチャに移譲するためではなく、ひとつのアプリケーション全体をコンテナ内で運用することを目的とするものだ。さらに、FaaSでは選択可能なテクノロジが限定される傾向があるのに対して、Google Cloud Runでは、開発者が自身でスタックを選択してアプリケーションを構築することが可能になる。最後に注目する点として、Google Cloud RunではサンドボックステクノロジとしてgVisorを使用することで、同一ホスト上で動作するコンテナ間での権限昇格を防止している。