NAT IP のプロビジョニング

このページの内容は Apigee に適用されます。Apigee ハイブリッドには適用されません。

Apigee Edge のドキュメントを表示する。

このセクションでは、Apigee インスタンスの NAT IP を管理する方法について説明します。

Apigee にはエフェメラル IP と専用 IP が用意されています。ほとんどの場合、エフェメラル IP で十分です。バックエンドで IP 許可リストが必要ない場合は、NAT IP を管理する必要はありません。下り(外向き)の場合、Apigee はエフェメラル IP を自動的に割り当てます。

IP 許可リストが必要な場合は、IP を予約して有効にできます。そうすると、Apigee は下り(外向き)トラフィックに静的 IP を使用します。

Apigee NAT IP プロビジョニングを設定する

Apigee インスタンスに NAT IP プロビジョニングを設定するには:

  1. 次の環境変数を作成して入力します。

    変数

    PROJECT_ID=YOUR_PROJECT_ID
    ORG_ID=YOUR_ORG_ID
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    NAT_ID=1st_NAT_IP_ID

    PROJECT_ID=apigee-saas-prod
    ORG_ID=apigee-saas-prod
    INSTANCE_NAME=prod-us-west1-instance1
    NAT_ID=nat-1

    ここで

    • YOUR_PROJECT_ID は、前提条件の一部として作成した Cloud プロジェクト ID です。プロジェクト ID がわからない場合は、Cloud コンソールまたは gcloud projects list コマンドで確認します。
    • YOUR_ORG_ID は Apigee 組織 ID です。
    • YOUR_INSTANCE_NAME は Apigee インスタンスの名前です。
    • 1st_NAT_IP_ID は、この NAT IP アドレスに割り当てる名前です。例: nat-1
  2. 次のコマンドを使用して NAT IP を予約します。
    1. 次の例に示すように、コマンドラインで gcloud 認証情報を取得します。

      TOKEN=$(gcloud auth print-access-token)

      トークンにデータが入力されていることを確認するには、次の例のように echo を使用します。

      echo $TOKEN

      エンコードされた文字列としてトークンが表示されるはずです。

      詳細については、gcloud コマンドライン ツールの概要をご覧ください。

    2. NAT IP を予約するコマンドは長時間実行オペレーションを返します。このコマンドは operation_name 変数に出力を割り当てます。
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses" \
        -X POST -H "content-type:application/json" -d "{\"name\":\"${NAT_ID}\"}" | jq -r '.name')
      
    3. 次のリクエストを実行して、done: true のステータスが表示されるまで長時間実行オペレーションをポーリングします。
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  3. オペレーションが完了したら、次のコマンドを使用して NAT IP を有効にします。
    1. IP を有効にして、operation_name に長時間実行オペレーションの名前を割り当てます。
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}:activate" \
        -X POST -H "content-type:application/json" -d "{}" | jq -r '.name')
    2. ステータスが done: true になるまで、長時間実行オペレーションをポーリングします。
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  4. セットアップする各 NAT IP に新しい NAT IP 名を付けて、この手順を繰り返します。

NAT IP の取得

次のコマンドを使用して、インスタンスの NAT IP を一覧表示します。

curl -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses"

レスポンスの例は次のようになります。

{
  "natAddresses": [
    {
      "name": "nat-1",
      "ipAddress": "35.203.160.18",
      "state": "ACTIVE"
    },
    {
      "name": "nat-2",
      "ipAddress": "35.230.14.174",
      "state": "RESERVED"
    },
    {
      "name": "nat-3",
      "state": "CREATING"
    }
  ]
}

NAT IP のステータス

  • CREATING : NAT IP の作成は保留中です。使用する準備ができていません。
  • RESERVED: NAT IP が作成されましたが、使用されていません。この IP を有効にする前に IP の許可リストを表示できます。
  • ACTIVE: NAT IP は下り(外向き)トラフィックの送信に使用されています。
  • DELETING: NAT IP は削除されています。

NAT IP の削除

次のコマンドで NAT IP を削除できます。

  1. IP を削除し、「operation_name」に出力を割り当てます。
    operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}" \
      -X DELETE | jq -r '.name')
  2. ステータスが done: true になるまで、長時間実行オペレーションをポーリングします。
    curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"