🌐

Cloud Run から内部通信で 別のCloud Run にアクセスするための Direct VPC Egress についてただまとめる

2024/11/28に公開

はじめに

本記事では、Direct VPC Egress を活用し、別の Cloud Run サービスに内部ネットワーク経由で接続する方法について取り上げます。また、Serverless VPC Access connectors との違いについても紹介します。

Cloud Run 間の内部通信に必要な設定

通信が「内部」に設定された Cloud Run にアクセスする際、通信は必ず VPC を経由します。そのため、アクセス元の Cloud Run は以下のどちらかの方法で VPC に接続できる必要があります。

  • Direct VPC Egress(推奨)
  • Serverless VPC Access connectors

Direct VPC Egress と Serverless VPC Access connectors の違い

Serverless VPC Access connectors とは

従来の方法では、Cloud Run が VPC 内のリソースにアクセスするために Serverless VPC Access connectors が必要でした。このコネクタは、GCE(Google Compute Engine)のインスタンスを介して VPC に接続します。

https://cloud.google.com/blog/ja/products/serverless/announcing-direct-vpc-egress-for-cloud-run

役割:
Cloud Run からのトラフィックを受け取り、VPC 内のリソースにルーティング。
スケール:
コネクタはトラフィック量に応じてスケールアウト可能(最小/最大数を設定)。
課題:
GCE インスタンスが必要なため、コストや設定が複雑化。

Direct VPC Egress とは

Direct VPC Egress は、2024/04/24 に一般提供された 機能です。
Direct VPC Egress を利用すれば、コネクタを介さず直接 VPC にトラフィックを送信可能です。

https://cloud.google.com/blog/ja/products/serverless/announcing-direct-vpc-egress-for-cloud-run

特徴:
コネクタ不要、GCE インスタンスの設定不要。
ネットワークコストのみ発生し、パフォーマンスが向上。
課題:
使用する IP アドレス数が多くなるため、十分なアドレス範囲を確保する必要があります。

両者の比較表

機能 Serverless VPC Access connectors Direct VPC Egress
接続方法 プロキシ経由 直接接続
パフォーマンス
費用 高(VM 料金 & ネットワークコスト) 低(ネットワークコストのみ)
IP 割り当て コネクタインスタンスの数だけ IP が割り当てられるため、使用する IP アドレスが少ない 使用する IP アドレス数 >= Cloud Run のコンテナインスタンス数となるため、多くの IP アドレスを使用する傾向がある

https://cloud.google.com/run/docs/configuring/vpc-connect-comparison?hl=ja

Direct VPC Egress の使用方法

必要な設定

VPC とサブネットの指定

Cloud Run サービス作成時、接続する VPC とサブネットを指定します。サブネットは /24 以上の CIDR 範囲である必要があります。

IP アドレスの管理

サブネットには最大コンテナインスタンス数の 4 倍の IP アドレスを確保。

推奨範囲:

  • 10.0.0.0/8(RFC 1918)
  • 100.64.0.0/10(RFC 6598)

IAM 設定:
アクセス元サービスに必要な IAM 権限を付与。

https://cloud.google.com/run/docs/configuring/vpc-direct-vpc?hl=ja#limitations

構成図

以下は、Direct VPC Egress を利用してフロントエンドの Cloud Run からバックエンドの Cloud Run に内部通信を行う例です。

Frontend Service:
外部トラフィックを受け、内部通信でバックエンドにデータを送信。

Backend Service:
上り通信を「内部のみに限定」し、認証されたリクエストのみ許可。

注意点

サブネットの IP アドレス枯渇に注意

サブネットのアドレス範囲が不足している場合、Cloud Run のスケールアウトが制限されます。
必要なアドレス数を事前に計画することが重要です。

メンテナンスイベントへの対応

ネットワークメンテナンス中は接続が一時的に切断される可能性があります。

まとめ

Direct VPC Egress は、Cloud Run から VPC 内リソースへのアクセスを簡略化できます。また、低コストで高いパフォーマンスを発揮します。

参考

https://cloud.google.com/run/docs/configuring/vpc-direct-vpc?hl=ja
https://cloud.google.com/run/docs/configuring/vpc-connect-comparison?hl=ja

Discussion