プライベート IP ネットワークを構成する

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 をご覧ください。

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 範囲。 指定できる IP アドレスは 1 つだけです。この範囲は、プロジェクト内の複数の環境で使用できます。

    環境で 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 範囲
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 範囲
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.8199.36.153.9199.36.153.10199.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.8199.36.153.9199.36.153.10199.36.153.11
*.composer.googleusercontent.com
(省略可、説明を参照)
composer.googleusercontent.com. DNS 名: *.composer.googleusercontent.com.
リソース レコードのタイプ: CNAME
正規名: composer.googleusercontent.com.
リソース レコードのタイプ: A
IPv4 アドレス: 199.36.153.8199.36.153.9199.36.153.10199.36.153.11
*.pkg.dev pkg.dev. DNS 名: *.pkg.dev.
リソース レコードのタイプ: CNAME
正規名: pkg.dev.
リソース レコードのタイプ: A
IPv4 アドレス: 199.36.153.8199.36.153.9199.36.153.10199.36.153.11
*.gcr.io gcr.io. DNS 名: *.gcr.io.
リソース レコードのタイプ: CNAME
正規名: gcr.io.
リソース レコードのタイプ: A
IPv4 アドレス: 199.36.153.8199.36.153.9199.36.153.10199.36.153.11

DNS ルールを作成するには:

  1. 新しい DNS ゾーンを作成し、このゾーンの DNS 名として DNS 名を使用します。

    例: pkg.dev.

  2. CNAME レコードレコードセットを追加します。

    例:

    • DNS 名: *.pkg.dev.
    • リソース レコードのタイプ: CNAME
    • 正規名: pkg.dev.
  3. レコードセットを追加する次のように置き換えます。レコード:

    例:

    • リソース レコードのタイプ: A
    • IPv4 アドレス: 199.36.153.8199.36.153.9199.36.153.10199.36.153.11

詳細については、Google API およびサービスへのプライベート接続を設定するをご覧ください。

(省略可)ファイアウォール ルールを構成する

この手順は、暗黙のファイアウォール ルール、または事前入力ルールといったプロジェクトのデフォルト以外のファイアウォール ルール(オーバーライドするルールなど)がある場合にのみ実行します。

たとえば、すべての下り(外向き)トラフィックを拒否するファイアウォール ルールがある場合、Cloud Composer で環境の作成に失敗することがあります。問題を回避するには、上記のリストに従って、グローバル deny ルールよりも優先度が高い選択的な allow ルールを定義します。

環境からのトラフィックを許可するように VPC ネットワークを構成します。

説明 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 すべて
(環境で Private Service Connect を使用している場合)接続サブネットワーク Egress 許可 Cloud Composer 接続サブネットワークの範囲 TCP 3306, 3307
(環境が VPC ピアリングを使用している場合)テナント ネットワーク Egress 許可 Cloud Composer テナント ネットワークの IP 範囲 TCP 3306, 3307

IP 範囲を取得するには:

  • Pod、Service、コントロール プレーンのアドレス範囲は、環境のクラスタの [クラスタ] ページで確認できます。

    1. Google Cloud コンソールで [環境] ページに移動します。

      [環境] に移動

    2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

    3. [環境の設定] タブに移動します。

    4. [クラスタの詳細を表示] リンクをクリックします。

  • 環境の Cloud Composer テナント ネットワークの IP 範囲は、[環境の構成] タブで確認できます。

  • 環境のサブネットワーク ID と Cloud Composer 接続サブネットワーク ID は、[環境の構成] タブで確認できます。サブネットワークの IP 範囲を取得するには、[VPC ネットワーク] ページに移動し、ネットワークの名前をクリックして詳細を表示します。

    [VPC ネットワーク] に移動

プロキシ サーバーの設定を構成する

環境内で HTTP_PROXYHTTPS_PROXY環境変数を設定できます。これらの標準 Linux 変数は、環境のクラスタのコンテナで実行されるウェブ クライアントによって使用され、指定されたプロキシを介してトラフィックをルーティングします。

NO_PROXY 変数は、デフォルトで Google ドメインのリストに設定されているため、プロキシ .google.com,.googleapis.com,metadata.google.internal から除外されます。この構成により、プロキシが Google サービスへのトラフィックを処理するように構成されていない場合に、HTTP_PROXYHTTPS_PROXY の環境変数を使用して環境を作成できます。