今週のCloud Run 5/12 ~ 5/19

2023/05/20に公開

この記事はGoogle Cloudのマネージドサービス Cloud Run のリリースノートを読んで色々書き並べていく記事です。
https://cloud.google.com/run/docs/release-notes

May 12, 2023

FEATURE

マルチコンテナデプロイ機能のプレビュー提供開始

https://cloud.google.com/run/docs/deploying?hl=en#sidecars

You can now deploy sidecar containers to your Cloud Run service. (In Preview.)

待望の機能! いままで1つのサービスで1つのコンテナしか実行できなかったが、今回のリリースで複数コンテナを起動させることができるように。(リクエストを受け付けられるポートは1つだけ)

なので、 Nginx + php-fpm のマルチコンテナ構成や、 アプリ + Datadog などのサイドカー構成など、いままでよりもより取れる選択肢が広がるすごく良いアップデート。

インスタンス内のコンテナは localhost:{ポート}などでアクセスが可能。
ただし、 gcloud run deploy や Webコンソールから設定することはできず、yamlファイルを編集して適用することで利用可能

私含めて結構記事化してるかたがいるので、合わせて御覧ください。
https://zenn.dev/yamato_sorariku/articles/5a16c96a8f10c8
https://zenn.dev/google_cloud_jp/articles/cloud-run-multi-container-features
https://zenn.dev/google_cloud_jp/articles/20230516-cloud-run-otel

なお、Cloud Run jobsではマルチコンテナ構成できませんでした。
(MySQLとかRedisとかを一時的に使えたら良いのにとちょっとだけ思って試した)
https://zenn.dev/yamato_sorariku/articles/5a16c96a8f10c8#追記

コンテナ間で利用するインメモリボリューム機能のプレビュー提供開始

https://cloud.google.com/run/docs/configuring/in-memory-volumes?hl=en

You can now configure in-memory volumes for your Cloud Run containers. (In Preview.)

マルチコンテナ構成になることで必要となる共有ボリュームをインスタンスのメモリ内で提供する機能。

ボリュームのサイズを制限することができるので、いままでだったらインスタンス内にファイルを吐き出し過ぎてメモリを食い尽くすとインスタンスが落ちてしまっていたが、このインメモリボリュームであればそれを防ぐことも可能に(アプリ側とインメモリボリュームで合計がインスタンスの最大メモリを超えてしまったら結局今まで通りインスタンスが落ちてしまうが)

以下の記事では Nginxとphp-fpmを接続するのに、 php-fpm.sockをインメモリボリュームに書き出してNginxが見るといった使い方もしていた。

マルチコンテナ設定と同様にgcloud run deploy や Webコンソールから設定することはできず、yamlファイルを編集して適用することで利用可能

最後に

Cloud Runのマルチコンテナ対応は以下のツイートの反応からもわかる通りかなり期待されている機能。
今後のアップデートがとても楽しみ。
https://twitter.com/yamato_sorariku/status/1657400703869149187

Discussion