Cloud Functions がリブランディング & Cloud Run 新機能について紹介

2024/08/22に公開

こんにちは、クラウドエース株式会社 SRE 部の阿部です。
この記事では、 Cloud Functions のリブランディングと、 Cloud Run の新機能について紹介します。

概要

8/21、突如 Cloud Functions と Cloud Run の Cloud コンソールが変更され、X(旧 Twitter)等で噂になっていましたが、8/22 朝に正式に Google ブログで情報公開されました。

https://cloud.google.com/blog/products/serverless/google-cloud-functions-is-now-cloud-run-functions?hl=en

それに合わせて、各製品のリリースノートも更新されています。

リリースノート (Cloud Run)

https://cloud.google.com/run/docs/release-notes#August_21_2024

リリースノート (Cloud Run functions、旧 Cloud Functions)

https://cloud.google.com/functions/docs/release-notes#August_21_2024

変更点

Cloud Functions から Cloud Run functions にリブランディング

Cloud Functions は、 Cloud Run functions にリブランディング(名称変更)されました。
また、1st gen 、2nd gen といった名称は以下のように変更されています。

旧称 新名称
Cloud Functions (1st gen) Cloud Run functions (1st gen)
Cloud Functions (2nd gen) Cloud Run functions

なお、これらは現時点で名称変更のみであり、これまで通り 1st gen 含めて新規作成可能です。

なお、 Google Cloud コンソール上は以下のような表示に変更されています。

Cloud コンソール上の表示
Cloud コンソール上の表示

Cloud Run functions 作成画面
Cloud Run functions (旧 Cloud Functions) 作成画面の環境設定

コマンドラインや API はこれまでと変更ありません。

Cloud Run のコンソールやコマンドラインから Cloud Run functions を作成可能になりました

これまでも Cloud Functions (2nd gen) は Cloud Run で動作しており、 Cloud Functions (2nd gen) を作成すると Cloud Run としても見えるという仕様になっていました。 (参考: 弊社ブログによる紹介記事)

今回リブランディングされたことで、 Cloud Run のコンソールから functions を作成することも可能になっています。

Cloud Run 作成画面
Cloud Run 作成画面

また、gcloud CLI 489.0.0 から Cloud Run のコマンドラインにオプションが追加され、 gcloud run deploy コマンドで Cloud Run functions が作成可能になっています。 (まだ beta サブコマンドでのみ提供されています)

コマンドラインのサンプルは以下の通りです。

gcloud run deploy サンプル
  gcloud beta run deploy cloud-run-functions-sample \
    --source ソースコードパス \
    --function 実行関数名 \
    --base-image ランタイムイメージ \
    --region リージョン名 --project プロジェクトID \
    --allow-unauthenticated

これは、以下のコマンドラインと等価です。

gloud functions deploy サンプル
  gcloud functions deploy cloud-run-functions-sample \
    --source ソースコードパス \
    --gen2 \
    --entry-point 実行関数名 --trigger-http \
    --runtime ランタイム名 \
    --region リージョン名 --project プロジェクトID \
    --allow-unauthenticated

--function オプションと --base-image オプションが追加されています。
--function オプションは functions のエントリポイントとなる関数名を指定する関数で、 gcloud functions deploy における --entry-point 関数に相当します。
--base-image オプションは --function オプションを実行するランタイムイメージを指定します。
ランタイムイメージは Artifact Registry で提供されており、書式は以下の通りです。

REGION-docker.pkg.dev/serverless-runtimes/STACK/runtimes/RUNTIME_ID

指定可能なイメージは Cloud Run functions execution environment に記載されています。

Cloud Run functions (旧 Cloud Functions 2nd gen) で Cloud Run の機能が利用可能になりました

Cloud Run のツールセットから functions を作成できるようになったことで、これまで Cloud Functions で使用できなかった以下の Cloud Run の機能が利用可能になりました。

  • Direct VPC egress
  • Cloud Storage ボリュームマウント
  • リビジョン管理とトラフィック分割
  • サイドカーコンテナ

補足

Cloud Run のコンソールやコマンドラインから Cloud Run functions を作成すると、 Cloud Run の一覧には表示されますが、 旧 Cloud Functions の一覧としては表示されませんでした。
旧 Cloud Functions のコンソールやコマンドラインから Cloud Run functions を作成すると Cloud Run の一覧にも表示されます。
この動作は作成時に使用する API が Cloud Run API か Cloud Functions API のどちらを使うかによって決まる仕様であるため、作成後に混乱しないようご注意ください。

その他の Cloud Run の新機能について

Google Cloud 公式ブログではその他にも新機能について言及しています。

GPU support for Cloud Run services

Cloud Run サービスと Cloud Run functions で Nvidia GPU が利用可能になりました。

https://cloud.google.com/blog/products/application-development/run-your-ai-inference-applications-on-cloud-run-with-nvidia-gpus?hl=en

Google Cloud でアプリケーションから GPU を使用する場合、 Compute Engine や Kubernetes Engine でホストするか、 Vertex AI から呼び出す必要がありました。
今後は、サーバレスプラットフォームである Cloud Run でも GPU を使用するアプリケーションを実行可能になります。

現状は限定プレビューであり、 Cloud Run で GPU を設定したい場合は前述のブログに記載されているフォームで申込みが必要です。

ベースイメージ利用時に自動アップデート利用可能

Cloud Run はコンテナアプリケーションのプラットフォームであり、基本的には Artifact Registry にあるコンテナイメージをロードして実行します。
Cloud Run の利用者はアプリケーションだけでなく、コンテナのベースイメージのメンテナンスも行う必要があります。(OS レイヤの脆弱性対応等)
一方で App Engine や 旧 Cloud Functions はランタイムのメンテナンスを Google Cloud が実施するため、アプリケーションの開発に集中できるというメリットがありました。

今回の新機能で、Cloud Run でも App Engine や 旧 Cloud Functions のようなメンテナンスフリーなランタイムを使った開発が可能になりました。

https://cloud.google.com/run/docs/configuring/services/automatic-base-image-updates

ただ、どのようなアプリケーションでも自動アップデートが利用できるわけではなく、以下のような条件が必要です。

まとめ

Cloud Functions のリブランディングと Cloud Run の新機能について紹介しました。
唐突なリブランディングには驚きましたが、元々 2nd gen は Cloud Run を使って実行していたこともあり、そうなる運命にあったのでしょう。
GPU サポートや自動アップデート等、適用範囲の拡大や利用しやすさを向上する機能追加もあり、今後も Cloud Run は進化を続けていくのだと思います。
この記事が誰かのお役に立てましたら幸いです。

Discussion