Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
このページでは、プライベート IP 環境用の Google Cloud プロジェクト ネットワーキングの構成について説明します。
プライベート IP 環境の場合、環境内のマネージド Google Kubernetes Engine と Cloud SQL VM にプライベート IP(RFC 1918)アドレスのみが割り当てられます。
オプションとして、プライベートで使用されるパブリック IP アドレスと IP マスカレード エージェントを使用して、IP アドレス空間を保存し、RFC 以外の 1918 個のアドレスを使用することもできます。
環境内のリソースへの接続については、プライベート IP をご覧ください。
Private Service Connect と VPC ピアリングを使用する環境
デフォルトでは、Cloud Composer 2 は Private Service Connect を使用しているため、環境作成時に指定しない限り、プライベート IP 環境は VPC ピアリングを使用せずに内部通信を行います。
VPC ピアリングで環境を使用する特定の要件がない場合は、Private Service Connect で環境を使用することをおすすめします。
始める前に
- 環境を作成するために、適切なユーザー アカウントとサービス アカウントの権限を付与されていることを確認してください。
- プロジェクトで互換性のない組織のポリシーが定義されていないことを確認します。
ネットワーク要件を確認する
プロジェクトの VPC ネットワークが次の要件を満たしていることを確認してください。
プライベート IP ブロックの競合がないことを確認します。Google 管理のテナント プロジェクトで、VPC ネットワークとその確立された VPC ピアに、VPC ネットワークと重複する IP ブロックが存在すると、Cloud Composer で環境の作成ができません。各リージョンで使用されるデフォルト値については、デフォルトの IP 範囲の表をご覧ください。
Cloud Composer GKE Pod と Service に対して十分な大きさのセカンダリ IP 範囲が設定されていることを確認します。GKE では、IP エイリアス設定のためにセカンダリ IP 範囲が検索されます。GKE で範囲が見つからないと、Cloud Composer で環境の作成ができません。
サブネットワーク内のセカンダリ範囲の数は、30 を超えないようにしてください。次の点を考慮してください。
- プライベート IP 環境用の GKE クラスタでは、サブネットワーク内に 2 つのセカンダリ範囲を作成します。同じ VPC ネットワークの同じリージョンに複数のサブネットワークを作成できます。
- サポート対象のセカンダリ範囲の最大数は 30 です。各プライベート IP 環境には、Cloud Composer GKE Pod と Service 用に 2 つのセカンダリ範囲が必要です。
プロジェクトのネットワークが、単一の VPC ネットワークへの最大接続数の制限に対応できることを確認してください。作成できるプライベート IP 環境の最大数は、VPC ネットワークにすでに存在している VPC ピアリング接続の数によって異なります。
PSC を使用する各プライベート IP 環境は、環境ごとに 1 つの VPC ピアリングを使用します。この VPC ピアリングは環境の GKE クラスタによって作成され、GKE クラスタはこの接続を再利用できます。PSC を使用するプライベート IP 環境の場合、各ロケーションで最大 75 個の限定公開クラスタをサポートできます。
VPC ピアリングを使用する各プライベート IP 環境は、環境ごとに最大 2 つの VPC ピアリングを使用します。Cloud Composer により、テナント プロジェクト ネットワークに対して 1 つの VPC ピアリングが作成されます。2 つ目のピアリングは環境の GKE クラスタによって作成され、GKE クラスタはこの接続を再利用できます。
ネットワーク、サブネットワーク、ネットワーク範囲を選択する
プライベート IP 環境のネットワーク範囲を選択します(またはデフォルトの範囲を使用します)。これらのネットワーク範囲は、後でプライベート IP 環境を作成するときに使用します。
プライベート IP 環境を作成するには、次の情報が必要です。
- VPC ネットワーク ID
- VPC サブネットワーク ID
- VPC サブネットワーク内の 2 つのセカンダリ IP 範囲:
- Pod のセカンダリ IP 範囲
- Service のセカンダリ IP 範囲
環境のコンポーネント用の IP 範囲:
環境で Private Service Connect を使用している場合:
- GKE コントロール プレーンの IP 範囲。GKE コントロール プレーン用の IP 範囲。
- Cloud Composer 接続サブネットワーク。Cloud Composer 接続サブネットワークの IP 範囲。 1 つの IP アドレスのみの範囲を指定できます。この範囲は、プロジェクト内の複数の環境で使用できます。
環境で VPC ピアリングを使用している場合:
- GKE コントロール プレーンの IP 範囲。GKE コントロール プレーン用の IP 範囲。
- Cloud Composer テナント ネットワーク用の IP 範囲。Cloud Composer テナントネットワーク用の IP 範囲このネットワークによって、環境の SQL プロキシ コンポーネントがホストされます。
Cloud SQL の IP 範囲。Cloud SQL インスタンス用の IP 範囲。
各リージョンで使用されるデフォルト値については、デフォルトの IP 範囲の表をご覧ください。
デフォルトの IP 範囲
Private Service Connect を使用する環境
リージョン | GKE コントロール プレーンの IP 範囲 |
---|---|
africa-south1 | 172.16.64.0/23 |
asia-east1 | 172.16.42.0/23 |
asia-east2 | 172.16.0.0/23 |
asia-northeast1 | 172.16.2.0/23 |
asia-northeast2 | 172.16.32.0/23 |
asia-northeast3 | 172.16.30.0/23 |
asia-south1 | 172.16.4.0/23 |
asia-south2 | 172.16.50.0/23 |
asia-southeast1 | 172.16.40.0/23 |
asia-southeast2 | 172.16.44.0/23 |
australia-southeast1 | 172.16.6.0/23 |
australia-southeast2 | 172.16.56.0/23 |
europe-central2 | 172.16.36.0/23 |
europe-north1 | 172.16.48.0/23 |
europe-southwest1 | 172.16.58.0/23 |
europe-west1 | 172.16.8.0/23 |
europe-west10 | 172.16.62.0/23 |
europe-west12 | 172.16.62.0/23 |
europe-west2 | 172.16.10.0/23 |
europe-west3 | 172.16.12.0/23 |
europe-west4 | 172.16.42.0/23 |
europe-west6 | 172.16.14.0/23 |
europe-west8 | 172.16.60.0/23 |
europe-west9 | 172.16.46.0/23 |
me-central1 | 172.16.58.0/23 |
me-west1 | 172.16.54.0/23 |
northamerica-northeast1 | 172.16.16.0/23 |
northamerica-northeast2 | 172.16.46.0/23 |
southamerica-east1 | 172.16.18.0/23 |
southamerica-west1 | 172.16.58.0/23 |
us-central1 | 172.16.20.0/23 |
us-east1 | 172.16.22.0/23 |
us-east4 | 172.16.24.0/23 |
us-east5 | 172.16.52.0/23 |
us-south1 | 172.16.56.0/23 |
us-west1 | 172.16.38.0/23 |
us-west2 | 172.16.34.0/23 |
us-west3 | 172.16.26.0/23 |
us-west4 | 172.16.28.0/23 |
VPC ピアリングを使用する環境
リージョン | GKE コントロール プレーンの IP 範囲 | Cloud Composer テナント ネットワークの IP 範囲 | Cloud SQL の IP 範囲 |
---|---|---|---|
africa-south1 | 172.16.64.0/23 | 172.31.223.0/24 | 10.0.0.0/12 |
asia-east1 | 172.16.42.0/23 | 172.31.255.0/24 | 10.0.0.0/12 |
asia-east2 | 172.16.0.0/23 | 172.31.255.0/24 | 10.0.0.0/12 |
asia-northeast1 | 172.16.2.0/23 | 172.31.254.0/24 | 10.0.0.0/12 |
asia-northeast2 | 172.16.32.0/23 | 172.31.239.0/24 | 10.0.0.0/12 |
asia-northeast3 | 172.16.30.0/23 | 172.31.240.0/24 | 10.0.0.0/12 |
asia-south1 | 172.16.4.0/23 | 172.31.253.0/24 | 10.0.0.0/12 |
asia-south2 | 172.16.50.0/23 | 172.31.230.0/24 | 10.0.0.0/12 |
asia-southeast1 | 172.16.40.0/23 | 172.31.235.0/24 | 10.0.0.0/12 |
asia-southeast2 | 172.16.44.0/23 | 172.31.233.0/24 | 10.0.0.0/12 |
australia-southeast1 | 172.16.6.0/23 | 172.31.252.0/24 | 10.0.0.0/12 |
australia-southeast2 | 172.16.56.0/23 | 172.31.227.0/24 | 10.0.0.0/12 |
europe-central2 | 172.16.36.0/23 | 172.31.237.0/24 | 10.0.0.0/12 |
europe-north1 | 172.16.48.0/23 | 172.31.231.0/24 | 10.0.0.0/12 |
europe-southwest1 | 172.16.58.0/23 | 172.31.226.0/24 | 10.0.0.0/12 |
europe-west1 | 172.16.8.0/23 | 172.31.251.0/24 | 10.0.0.0/12 |
europe-west10 | 172.16.62.0/23 | 172.31.224.0/24 | 10.0.0.0/12 |
europe-west12 | 172.16.62.0/23 | 172.31.224.0/24 | 10.0.0.0/12 |
europe-west2 | 172.16.10.0/23 | 172.31.250.0/24 | 10.0.0.0/12 |
europe-west3 | 172.16.12.0/23 | 172.31.249.0/24 | 10.0.0.0/12 |
europe-west4 | 172.16.42.0/23 | 172.31.234.0/24 | 10.0.0.0/12 |
europe-west6 | 172.16.14.0/23 | 172.31.248.0/24 | 10.0.0.0/12 |
europe-west8 | 172.16.60.0/23 | 172.31.225.0/24 | 10.0.0.0/12 |
europe-west9 | 172.16.46.0/23 | 172.31.232.0/24 | 10.0.0.0/12 |
me-central1 | 172.16.58.0/23 | 172.31.226.0/24 | 10.0.0.0/12 |
me-west1 | 172.16.54.0/23 | 172.31.228.0/24 | 10.0.0.0/12 |
northamerica-northeast1 | 172.16.16.0/23 | 172.31.247.0/24 | 10.0.0.0/12 |
northamerica-northeast2 | 172.16.46.0/23 | 172.31.232.0/24 | 10.0.0.0/12 |
southamerica-east1 | 172.16.18.0/23 | 172.31.246.0/24 | 10.0.0.0/12 |
southamerica-west1 | 172.16.58.0/23 | 172.31.226.0/24 | 10.0.0.0/12 |
us-central1 | 172.16.20.0/23 | 172.31.245.0/24 | 10.0.0.0/12 |
us-east1 | 172.16.22.0/23 | 172.31.244.0/24 | 10.0.0.0/12 |
us-east4 | 172.16.24.0/23 | 172.31.243.0/24 | 10.0.0.0/12 |
us-east5 | 172.16.52.0/23 | 172.31.229.0/24 | 10.0.0.0/12 |
us-south1 | 172.16.56.0/23 | 172.31.227.0/24 | 10.0.0.0/12 |
us-west1 | 172.16.38.0/23 | 172.31.236.0/24 | 10.0.0.0/12 |
us-west2 | 172.16.34.0/23 | 172.31.238.0/24 | 10.0.0.0/12 |
us-west3 | 172.16.26.0/23 | 172.31.242.0/24 | 10.0.0.0/12 |
us-west4 | 172.16.28.0/23 | 172.31.241.0/24 | 10.0.0.0/12 |
(省略可)Google API とサービスへの接続を構成する
オプションとして、すべてのトラフィックを private.googleapis.com
ドメインに属する複数の IP アドレスを介して Google API とサービスにルーティングできます。この構成では、環境は Google Cloud 内からのみ転送可能な IP アドレスを使用して Google API とサービスにアクセスします。
プライベート IP 環境でも VPC Service Controls を使用している場合は、代わりに VPC Service Controls を使用する環境の手順を使用します。
Cloud Composer 環境は次のドメインを使用します。
*.googleapis.com
は、他の Google サービスへのアクセスに使用されます。*.composer.cloud.google.com
は、環境の Airflow ウェブサーバーにアクセスできるようにするために使用されます。このルールは、環境を作成する前に適用する必要があります。- 別の方法として、特定のリージョンに対するルールを作成することもできます。その場合は、
REGION.composer.cloud.google.com
を使用します。REGION
は、環境が配置されているリージョン(us-central1
など)に置き換えます。
- 別の方法として、特定のリージョンに対するルールを作成することもできます。その場合は、
(省略可)
*.composer.googleusercontent.com
は、環境の Airflow ウェブサーバーにアクセスするときに使用されます。このルールは、VPC ネットワークで実行されているインスタンスから Airflow ウェブサーバーにアクセスする場合にのみ必要です。それ以外の場合は必須ではありません。このルールの一般的なシナリオは、VPC ネットワーク内から Airflow REST API を呼び出す場合です。- 代わりに、特定の環境に対するルールを作成することもできます。その場合は、
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
を使用します。ENVIRONMENT_WEB_SERVER_NAME
は、環境の Airflow UI URL の一意の部分(bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
など)に置き換えます。
- 代わりに、特定の環境に対するルールを作成することもできます。その場合は、
*.pkg.dev
は、環境の作成または更新時などに、環境イメージを取得するために使用されます。*.gcr.io
GKE では、Cloud Composer のバージョンに関係なく Container Registry ドメインへの接続が必要です。
private.googleapis.com
エンドポイントへの接続を構成します。
ドメイン | DNS 名 | CNAME レコード | A レコード |
---|---|---|---|
*.googleapis.com
|
googleapis.com. |
DNS 名: *.googleapis.com. リソース レコードのタイプ: CNAME 正規名: googleapis.com. |
リソース レコードのタイプ: A IPv4 アドレス: 199.36.153.8 、199.36.153.9 、199.36.153.10 、199.36.153.11
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
DNS 名: *.composer.cloud.google.com. リソース レコードのタイプ: CNAME 正規名: composer.cloud.google.com. |
リソース レコードのタイプ: A IPv4 アドレス: 199.36.153.8 、199.36.153.9 、199.36.153.10 、199.36.153.11
|
*.composer.googleusercontent.com
(省略可、説明を参照) |
composer.googleusercontent.com. |
DNS 名: *.composer.googleusercontent.com. リソース レコードのタイプ: CNAME 正規名: composer.googleusercontent.com. |
リソース レコードのタイプ: A IPv4 アドレス: 199.36.153.8 、199.36.153.9 、199.36.153.10 、199.36.153.11
|
*.pkg.dev
|
pkg.dev. |
DNS 名: *.pkg.dev. リソース レコードのタイプ: CNAME 正規名: pkg.dev. |
リソース レコードのタイプ: A IPv4 アドレス: 199.36.153.8 、199.36.153.9 、199.36.153.10 、199.36.153.11
|
*.gcr.io
|
gcr.io. |
DNS 名: *.gcr.io. リソース レコードのタイプ: CNAME 正規名: gcr.io. |
リソース レコードのタイプ: A IPv4 アドレス: 199.36.153.8 、199.36.153.9 、199.36.153.10 、199.36.153.11
|
DNS ルールを作成するには:
新しい DNS ゾーンを作成し、このゾーンの DNS 名として DNS 名を使用します。
例:
pkg.dev.
CNAME レコードのレコードセットを追加します。
例:
- DNS 名:
*.pkg.dev.
- リソース レコードのタイプ:
CNAME
- 正規名:
pkg.dev.
- DNS 名:
レコードセットを追加するをレコードに置き換えます:
例:
- リソース レコードのタイプ:
A
- IPv4 アドレス:
199.36.153.8
、199.36.153.9
、199.36.153.10
、199.36.153.11
- リソース レコードのタイプ:
詳細については、Google API およびサービスへのプライベート接続を設定するをご覧ください。
(省略可)ファイアウォール ルールを構成する
この手順は、暗黙のファイアウォール ルール、または事前入力ルールといったプロジェクトのデフォルト以外のファイアウォール ルール(オーバーライドするルールなど)がある場合にのみ実行します。
たとえば、すべての外向きトラフィックを拒否するファイアウォール ルールがある場合、Cloud Composer は環境の作成に失敗する可能性があります。問題を回避するには、上記のリストに従って、グローバル deny
ルールよりも優先度が高い選択的な allow
ルールを定義します。
環境からのトラフィックを許可するように VPC ネットワークを構成します。
- VPC ネットワークのルールを確認、追加、更新する方法を学ぶには、ファイアウォール ルールの使用をご覧ください。
- 接続ツールを使用して、IP 範囲間の接続性を検証します。
- ネットワーク タグを使用して、アクセスをさらに制限できます。これらのタグは、環境を作成するときに設定できます。
説明 | 方向 | アクション | 送信元または宛先 | プロトコル | ポート |
---|---|---|---|---|---|
DNS | Egress | 許可 | 任意の宛先(0.0.0.0/0 )または DNS サーバーの IP アドレス |
TCP、UDP | 53 |
Google API とサービス | Egress | 許可 | Google API とサービスに選択したドメインの IP アドレス範囲。デフォルトを使用する場合は、デフォルト ドメインの IP アドレスをご覧ください。 | TCP | 443 |
環境のクラスタノード | Egress | 許可 | 環境のサブネットワークのプライマリ IP アドレス範囲 | TCP、UDP | すべて |
環境のクラスタ Pod | Egress | 許可 | 環境のサブネットワーク内の Pod のセカンダリ IP アドレス範囲 | TCP、UDP | すべて |
環境のクラスタ コントロール プレーン | Egress | 許可 | GKE コントロール プレーンの IP 範囲 | TCP、UDP | すべて |
(環境で Private Service Connect を使用している場合)接続サブネットワーク | Egress | 許可 | Cloud Composer 接続サブネットワークの範囲 | TCP | 3306, 3307 |
(環境で VPC ピアリングを使用している場合)テナント ネットワーク | Egress | 許可 | Cloud Composer テナント ネットワークの IP 範囲 | TCP | 3306, 3307 |
IP 範囲を取得するには:
Pod、Service、コントロール プレーンのアドレス範囲は、環境のクラスタの [クラスタ] ページで確認できます。
Google Cloud コンソールで [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[クラスタの詳細を表示] リンクをクリックします。
環境の Cloud Composer テナント ネットワークの IP 範囲は、[環境の構成] タブで確認できます。
環境のサブネットワーク ID と Cloud Composer 接続サブネットワーク ID は、[環境の構成] タブで確認できます。サブネットワークの IP 範囲を取得するには、[VPC ネットワーク] ページに移動し、ネットワークの名前をクリックして詳細を表示します。
プロキシ サーバーの設定を構成する
環境内で HTTP_PROXY
と HTTPS_PROXY
の環境変数を設定できます。これらの標準 Linux 変数は、環境のクラスタのコンテナで実行されるウェブ クライアントによって使用され、指定されたプロキシを介してトラフィックをルーティングします。
NO_PROXY
変数は、デフォルトで Google ドメインのリストに設定されているため、プロキシ .google.com,.googleapis.com,metadata.google.internal
から除外されます。この構成により、プロキシが Google サービスへのトラフィックを処理するように構成されていない場合に、HTTP_PROXY
と HTTPS_PROXY
の環境変数を使用して環境を作成できます。