Cloud Composer 1 | Cloud Composer 2
このページでは、プライベート IP 環境用の Google Cloud プロジェクト ネットワーキングの構成について説明します。
プライベート IP 環境の場合、環境内のマネージド Google Kubernetes Engine と Cloud SQL VM にプライベート IP(RFC 1918)アドレスのみが割り当てられます。
オプションとして、プライベートで使用されるパブリック IP アドレスと IP マスカレード エージェントを使用して、IP アドレス空間を保存し、RFC 以外の 1918 個のアドレスを使用することもできます。
環境内のリソースへの接続については、プライベート IP をご覧ください。
始める前に
環境を作成するために、適切なユーザー アカウントとサービス アカウントの権限を付与されていることを確認してください。
ネットワーク要件を確認する
プロジェクトの 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 ピアリング接続の数によって異なります。
各プライベート 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 範囲:
- GKE コントロール プレーンの IP 範囲。GKE コントロール プレーン用の IP 範囲。
- ウェブサーバーの IP 範囲
- ウェブサーバーの IP 範囲。Airflow ウェブサーバー インスタンス用の IP 範囲。
Cloud SQL の IP 範囲。Cloud SQL インスタンス用の IP 範囲。
- GKE コントロール プレーンの IP 範囲。GKE コントロール プレーン用の IP 範囲。
各リージョンで使用されるデフォルト値については、デフォルトの IP 範囲の表をご覧ください。
デフォルトの IP 範囲
リージョン | GKE コントロール プレーンの IP 範囲 | ウェブサーバーの IP 範囲 | Cloud SQL の IP 範囲 |
---|---|---|---|
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 サービスへのアクセスに使用されます。*.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
|
*.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 範囲間の接続を検証します。
- ネットワーク タグを使用して、アクセスをさらに制限できます。これらのタグは、環境の作成時に設定できます。
説明 | Direction(通話方向) | アクション | 送信元または宛先 | プロトコル | ポート |
---|---|---|---|---|---|
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 | すべて |
ウェブサーバー | Egress | 許可 | ウェブサーバーのネットワーク IP 範囲 | TCP | 3306, 3307 |
IP 範囲を取得するには:
Pod、Service、コントロール プレーンのアドレス範囲は、環境のクラスタの [クラスタ] ページで確認できます。
Google Cloud コンソールで [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[クラスタの詳細を表示] リンクをクリックします。
環境のウェブサーバーの IP 範囲は、[環境の構成] タブで確認できます。
環境のネットワーク ID は、[環境の構成] タブで確認できます。サブネットワークの IP 範囲を取得するには、[VPC ネットワーク] ページに移動し、ネットワークの名前をクリックして詳細を表示します。
VPC ネイティブ クラスタ構成
Cloud Composer は、ご使用の環境で VPC ネイティブ GKE クラスタをサポートします。
環境の作成中に、VPC ネイティブを有効にし(エイリアス IP を使用)、プライベート IP を有効にせずに、IP 割り当てなどのネットワーキングを構成できます。
Airflow タスクがプライベート IP 経由でアクセス可能な他の VM と通信するには VPC ネイティブ クラスタが必要なため、VPC ネイティブを有効にして、プライベート IP 環境を構成する必要もあります。
プロキシ サーバーの設定を構成する
環境内で HTTP_PROXY
と HTTPS_PROXY
の環境変数を設定できます。これらの標準 Linux 変数は、環境のクラスタのコンテナで実行されるウェブ クライアントによって使用され、指定されたプロキシを介してトラフィックをルーティングします。
NO_PROXY
変数は、デフォルトで Google ドメインのリストに設定されているため、プロキシ .google.com,.googleapis.com,metadata.google.internal
から除外されます。この構成により、プロキシが Google サービスへのトラフィックを処理するように構成されていない場合に、HTTP_PROXY
と HTTPS_PROXY
の環境変数を使用して環境を作成できます。