このページでは、Cloud Run リソースのネットワーク オプションを構成するためのベスト プラクティスの概要を説明します。リソースを作成する前に、このページのすべてのセクションを確認して、Cloud Run でサポートされているネットワーキング オプションとその影響を理解することをおすすめします。
ベスト プラクティス:
IP アドレスの使用状況をモニタリングする。RFC 1918 以外の IP アドレスを使用する。
IPv4 と IPv6(デュアルスタック)のサブネットを使用します。
接続プールを使用して接続を再利用します。
インターネットへの外部スループットの高速化。
Google API への内部スループットの高速化。
IP アドレスの使用状況をモニタリングする
ダイレクト VPC 下り(外向き)を使用している場合は、サブネットに十分な IP アドレスがあることを確認してください。使用する IP アドレスの数は、ワークロードが実行するインスタンスの数によって異なるため、IP アドレスの使用状況をモニタリングすることをおすすめします。時間の経過に伴う IP 使用量がサブネットでサポートされている範囲内に収まるようにしてください。
IP アドレスの使用量を推定する手順は次のとおりです。
Google Cloud コンソールで、Cloud Monitoring の [Metrics Explorer] ページに移動します。
指標タイプ
run.googleapis.com/container/instance_count
を使用して、プロジェクト内のインスタンス数を検索します。Cloud Monitoring では、この指標の値の経時的な変化を確認できます。インスタンス数指標の値に 4 を掛けて、使用中の IP アドレス数を見積もります。
IP アドレスの枯渇戦略
多数の Cloud Run ワークロードがある場合、Direct VPC 下り(外向き)で RFC 1918 プライベート IP アドレス空間を使用すると、IP の枯渇が発生する可能性があります。次の方法は、代替の IP アドレス範囲を使用して IP アドレスの枯渇を管理するのに役立ちます。
RFC 1918 以外の IPv4 アドレスを使用する
Cloud Run は、RFC 1918 IPv4 アドレス範囲のほか、RFC 6598 範囲と クラス E/RFC 5735 範囲もサポートしています。すべてのGoogle Cloud サービスと機能は、VPC ネットワーク、Cloud Load Balancing、Private Service Connect など、RFC 1918 以外の範囲で動作します。
互換性を最大限に高めるには、RFC 6598(100.64.0.0/10)範囲から始めることをおすすめします。この範囲を他の場所ですでに使用している場合は、クラス E/RFC 5735(240.0.0.0/4)の使用を検討してください。クラス E は 2 億 6, 800 万を超える IP アドレスを使用できる巨大な空間であるため、長期的な成長をサポートします。ただし、クラス E にはいくつかの制限があります。たとえば、Windows や一部のオンプレミス ハードウェアではサポートされていません。IPv4 クラス E アドレス空間を活用して GKE での IPv4 枯渇の問題を軽減するをご覧ください。
IPv4 と IPv6(デュアルスタック)のサブネットを使用する
IPv4 の枯渇を軽減することはできませんが、アプリを IPv6 に移行することは、最初の一歩として適切です。今後 IPv4 の枯渇の問題が発生しないように、デュアルスタック リソースを設定します。
ポートの枯渇を軽減する戦略
次のセクションでは、Cloud Run でポートの枯渇を軽減するための戦略について説明します。
接続プールを使用して接続を再利用する
単一の宛先 IP アドレスに大量のリクエストを送信する場合は、接続プールを使用して、宛先への接続を維持して再利用します。1 つの IP アドレスへの接続率が高いと、アウトバウンド ポートが使い果たされ、接続拒否エラーが発生する可能性があります。
パフォーマンスとスループットの戦略
このセクションでは、インターネットと Google サービスへのネットワーク パフォーマンスとスループットを改善するためのスケーラブルなオプションについて説明します。
ダイレクト VPC 下り(外向き)を使用して下り(外向き)ネットワーク スループットを高速化する
ネットワーク下り(外向き)接続全体でのスループットを向上させるには、ダイレクト VPC 下り(外向き)を使用して VPC ネットワーク経由でトラフィックをルーティングします。
例 1: インターネットへの外部トラフィック
外部トラフィックを公共のインターネットに送信する場合は、--vpc-egress=all-traffic
を設定して、すべてのトラフィックを VPC ネットワーク経由でルーティングします。このアプローチでは、公共のインターネットに接続するように Cloud NAT を設定する必要があります。Cloud NAT は有料のプロダクトです。
例 2: Google API への内部トラフィック
ダイレクト VPC 下り(外向き)を使用して Cloud Storage などの Google API にトラフィックを送信する場合は、次のいずれかを選択します。
- 限定公開の Google アクセスで
private-ranges-only
(デフォルト)を指定します。- フラグ
--vpc-egress=private-ranges-only
を設定します。 - 限定公開の Google アクセスを有効にします。
- 限定公開の Google アクセス用に DNS を構成します。ターゲット ドメイン(
storage.googleapis.com
など)が次のいずれかの内部 IP アドレス範囲にマッピングされていることを確認します。199.36.153.8/30
199.36.153.4/30
- フラグ
- 限定公開の Google アクセスで
all-traffic
を指定します。- フラグ
--vpc-egress=all-traffic
を設定します。 - 限定公開の Google アクセスを有効にします。
- フラグ