G-gen の佐々木です。2024年8月22日(日本時間)、Google Cloud のサーバーレス コンピューティング サービスである Cloud Functions が Cloud Run functions としてリブランディングされました。当記事ではリブランディングによる影響や変更点を解説します。
Cloud Functions のリブランディング
リブランディング
2024年8月22日(日本時間)、Cloud Functions は Cloud Run functions としてリブランディングされました。これに伴い、名称は以下のようになります。
旧称 | 新名称 |
---|---|
Cloud Functions(第1世代) | Cloud Run functions(第1世代) |
Cloud Functions(第2世代) | Cloud Run functions |
従来より Cloud Functions(第2世代)は Cloud Run の上で実行されていましたが、今後はさらに Cloud Run と機能が統合され、柔軟に、かつ高機能に利用することができます。
- 参考 : Cloud Functions is now Cloud Run functions — event-driven programming in one unified serverless platform
- 参考 : Cloud Run functions release notes - August 21, 2024
Cloud Functions の世代
従来、Cloud Functions では第1世代と第2世代の2つの実行環境が提供されており、後発の第2世代では、サーバーレス コンテナ実行サービスである Cloud Run を基盤として関数が実行されていました。
2022年8月に第2世代が発表されて以降は第2世代の利用が推奨されており、今回のリブランディングも主に第2世代の関数に関わるものとなります。
リブランディング以降も、第1世代と第2世代の機能差などは引き続き存在することになります。詳細は、以下の記事も参照してください。
影響と変更点
既存の Cloud Functions 関数の動作・管理に影響なし
Cloud Funcrions が Cloud Run functions にリブランディングされることで、既にデプロイされている Cloud Functions の動作に影響はありません。
今後、Cloud Run functions は Cloud Run の API、クライアントライブラリ、コンソールで管理できるようになる一方で、既存の Cloud Functions API、gcloud コマンドライン、Terraform 等での関数の管理は、継続してサポートされます。そのため、既存の管理機構をリファクタリングする必要は、現在のところありません。
Cloud Run の機能を使用できる
Cloud Run functions の関数は、従来の Cloud Functions 関数では使用できなかった Cloud Run 特有の機能がサポートされます。
例として、以下のような機能を使用できるようになります。
- Direct VPC Egress を使用して VPC に直接アウトバウンド接続する
- サイドカーコンテナ
- Cloud Storage バケットをマウント
- 新旧リビジョン間のトラフィック分割
- GPU の使用(2024年8月現在、Preview)
なお Cloud Run における GPU 利用は、今回のリブランディングと同時に発表されました。
それ以外の上記の機能の解説、ユースケースについては以下の記事をご一読ください。
Direct VPC Egress
サイドカーコンテナ
Cloud Run で Cloud Storage バケットをマウント
トラフィック分割のユースケース(タグ付きリビジョン)
第1世代の Cloud Functions は名称変更のみ
第1世代の Cloud Functions については、Cloud Run functions(1st gen)として引き続き利用できます。
ただし、前述の Cloud Run の機能はサポートされません。
Cloud Run コンソールへの統合
Cloud Run functions 関数の管理は、Cloud Run のコンソール画面から行います。Cloud Run functions の関数はデプロイタイプが「関数」となっています。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/ggen-sugimura/20240822/20240822092501.png)
Cloud Run Funcrions 関数を作成する場合、サービスの一覧画面で [関数を作成] を選択するか、サービスの作成画面で [インライン エディタで関数を作成する] を選択します。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/ggen-sugimura/20240822/20240822092503.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/ggen-sugimura/20240822/20240822092505.png)
サービスの作成画面で [作成] を選択すると、従来の Cloud Functions 同様のエディタ画面に遷移します。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/ggen-sugimura/20240822/20240822092508.png)
Cloud Run services との差別化
リブランディング以前から、第2世代の Cloud Functions は Cloud Run と同じ実行環境が使用されていたこともあり、Cloud Functions 同様に HTTP リクエストをトリガーとする Cloud Run services との機能差があまり多くありませんでした。
今回、Cloud Run functions として Cloud Run に統合されたことで、前述したように機能面の差がさらに小さくなりました。両者を明確に差別化する要素は、Cloud Run services はユーザーが用意したコンテナイメージをデプロイするのに対して、Cloud Run functions はソースコードをデプロイするという点です。
Cloud Run functions は、ユーザーが用意したコードを Google Cloud が提供するランタイム上で実行します。これにより、アプリケーションを手軽にデプロイできる反面、ランタイムのライフサイクル(参考)に追従する必要がある点や、コードの実行環境となるコンテナをカスタマイズができないといったデメリットがあります。
そのため、コンテナイメージを用意することなくアプリケーションを手軽に実行したい場合は Cloud Run functions を、Cloud Run functions でサポートされていないランタイムを利用したい場合やコンテナのカスタマイズが必要な場合は Cloud Run services を使用するとよいでしょう。
佐々木 駿太 (記事一覧)
G-gen最北端、北海道在住のクラウドソリューション部エンジニア
2022年6月にG-genにジョイン。Google Cloud Partner Top Engineer 2024に選出。好きなGoogle CloudプロダクトはCloud Run。
趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。
Follow @sasashun0805