プライベート 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 をご覧ください。

始める前に

環境を作成するために、適切なユーザー アカウントとサービス アカウントの権限を付与されていることを確認してください。

ネットワーク要件を確認する

プロジェクトの 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 範囲。

各リージョンで使用されるデフォルト値については、デフォルトの 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.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 すべて
ウェブサーバー Egress 許可 ウェブサーバーのネットワーク IP 範囲 TCP 3306, 3307

IP 範囲を取得するには:

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

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

      [環境] に移動

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

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

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

  • 環境のウェブサーバーの IP 範囲は、[環境の構成] タブで確認できます。

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

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

VPC ネイティブ クラスタ構成

Cloud Composer は、ご使用の環境で VPC ネイティブ GKE クラスタをサポートします。

環境の作成中に、VPC ネイティブを有効にし(エイリアス IP を使用)、プライベート IP を有効にせずに、IP 割り当てなどのネットワーキングを構成できます。

Airflow タスクがプライベート IP 経由でアクセス可能な他の VM と通信するには VPC ネイティブ クラスタが必要なため、VPC ネイティブを有効にして、プライベート IP 環境を構成する必要もあります。

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

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

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