Cloud Runのサービスは、単独で動作することもあれば、他のCloud Runサービス、あるいはデータベース、外部APIなど、様々なサービスと連携して動作することがほとんどです。
このようなサービス間の通信や外部へのアクセスを制御するのが「ネットワーキング(Networking)」の設定項目です。

Cloud RunのUIで「ネットワーキング」のセクションを見ると、いくつかのチェックボックスがあります。
今回は、これらの項目が何を示し、Cloud Runサービスの挙動にどのような影響を与えるのかを解説していきます。
設定項目一覧
現在のCloud Runのネットワーキング設定には、主に以下の4つのチェックボックスがあります。

- HTTP/2 エンドツーエンドを使用する
- セッション アフィニティ
- アウトバウンド トラフィック用の VPC に接続する
- サービス メッシュに参加します
1. HTTP/2 エンドツーエンドを使用する
Cloud Runが、クライアント(またはロードバランサなど)から受け取ったHTTP/2リクエストを、そのままコンテナ内部までHTTP/2で転送するかどうかを定義します。
Cloud Runにおいてデフォルトの動作では、HTTP/2リクエストをコンテナに送信する際に、HTTP/1にダウングレードしています。

HTTP/2 エンドツーエンドを使用すると、コンテナがHTTP/2を直接処理するようになります。

設定のポイント
ユースケース
使用するためには?
2. セッション アフィニティ
同じクライアント(ユーザー)からの連続するリクエストを、常に同じコンテナインスタンスにルーティングし続けるかどうかを定義します。


設定のポイント
ユースケース
セッション状態をインメモリで管理するレガシーアプリケーション: 永続的なセッションストレージ(データベース、Redisなど)を使用せずに、コンテナのメモリにユーザーセッション情報を保持しているアプリケーションの場合に、ユーザーエクスペリエンスを維持するために必要になることがあります。
3. アウトバウンド トラフィック用の VPC に接続する
Cloud Runサービスから外部(インターネット、他のGCPサービス、オンプレミスなど)へのアウトバウンド(送信)トラフィックを、Google CloudのVPCネットワーク経由でルーティングするかどうかを定義します。
設定のポイント
ユースケース
- Cloud SQLのプライベートIP接続: データベースのセキュリティを高めるため。
- Memorystore (Redis/Memcached) へのアクセス。
- VPC Service Controls: 組織のデータ境界を強化するため。
- オンプレミスネットワークへのアクセス: Cloud VPNやCloud Interconnectで接続されたオンプレミスリソースへのアクセス。
- 固定IPアドレスでのアウトバウンドトラフィック: VPCコネクタとCloud NATを組み合わせることで、Cloud Runからのアウトバウンドトラフィックに固定のグローバルIPアドレスを付与できます。
4. サービス メッシュに参加します
Cloud Runサービスを、Traffic DirectorまたはIstioベースのサービスメッシュに参加させるかどうかを定義します。
設定のポイント
ユースケース
- マイクロサービスアーキテクチャ: 多数のマイクロサービスが連携する複雑なシステムにおいて、サービス間の通信を効率的に管理し、可観測性を高めたい場合。
- 高度なトラフィックルーティング: ブルー/グリーンデプロイ、カナリアリリース、A/Bテストなど、より高度なトラフィック管理戦略を実装したい場合。
- 統一されたポリシー適用: サービス間の認証・認可ポリシーを集中管理したい場合。
まとめ
Cloud Runの「ネットワーキング」設定は、サービスがどのように外部と通信し、他のリソースと連携するかを決定する設定群です。
- HTTP/2 エンドツーエンド: gRPCやパフォーマンス最適化のためにコンテナまでHTTP/2を維持したい場合。
- セッション アフィニティ: ステートフルなレガシーアプリケーションで同じクライアントを同じインスタンスにルーティングしたい場合(通常は非推奨)。
- アウトバウンド トラフィック用の VPC に接続する: Cloud SQL Private IPやオンプレミスなど、VPCネットワーク経由での内部アクセスを必要とする場合。
- サービス メッシュに参加します。: 大規模なマイクロサービス環境で、高度なトラフィック管理、可観測性、セキュリティ機能を利用したい場合。


コメント