メニュー
Amazon API Gateway
開発者ガイド

API Gateway プライベート統合で API をビルドする

プライベート統合で API Gateway API を作成して、Amazon Virtual Private Cloud (Amazon VPC) 内の HTTP / HTTPS リソースへのアクセスを顧客に提供できます。このような VPC リソースは、VPC 内のnetwork load balancerの背後にある EC2 インスタンス上の HTTP/HTTPS エンドポイントです。network load balancerは、VPC リソースをカプセル化し、受信リクエストをターゲットリソースにルーティングします。

クライアントが API を呼び出すと、API Gateway は事前構成された VPC リンクを介してnetwork load balancerに接続します。VPC リンクは、VpcLink の API Gateway リソースによってカプセル化されています。VPC リソースへの API メソッドリクエストの転送を担当し、バックエンドレスポンスを呼び出し元に返します。API 開発者にとって、VpcLink は機能的に統合エンドポイントと同等です。

プライベートインテグレーションで API を作成するには、新規作成するか、目的の VPC リソースをターゲットとする Network Load Balancer に接続された既存の VpcLink を選択する必要があります。VpcLink を作成および管理するための 適切なアクセス権限が必要です。次に、API メソッドを設定し、HTTP または HTTP_PROXY のいずれかを統合タイプとして、VPC_LINK を統合の接続タイプとして、そして統合の connectionIdVpcLink ID を設定してから、VpcLink と統合します。

VPC リソースにアクセスするための API をすばやく作成するために、API Gateway コンソールを使用したプライベートインテグレーションを使用して API を構築するための重要なステップについて説明します。API を作成する前に、次の操作を行います。

  1. VPC リソースを作成し、同じリージョンのアカウントでnetwork load balancerを作成または選択し、リソースをホストする EC2 インスタンスをnetwork load balancerのターゲットとして追加します。詳細については、「API Gateway のプライベート統合のNetwork Load Balancerを設定する」を参照してください。

  2. プライベート統合のための VPC リンクを作成するアクセス許可を付与します。詳細については、「VPC リンクを作成する権限の付与」を参照してください。

ターゲットグループに VPC リソースが設定された VPC リソースと Network Load Balancer を作成したら、以下の手順に従って API を作成し、プライベート統合の VpcLink を使用して VPC リソースと統合します。

API Gateway コンソールを使用してプライベート統合で API を作成するには

  1. API Gateway コンソールにサインインし、ナビゲーションバーで us-west-2 などのリージョンを選択します。

  2. VPC リンクをまだ作成していない場合は作成します。

    1. プライマリナビゲーションペインから、[VPC Links] を選択し、[+ Create] を選択します。

    2. [VPC Link] の下で、[Name] フィールドに名前 (例: my-test-vpc-link) を入力します。

    3. オプションで、[Description] テキストエリアに VPC リンクの説明を入力します。

    4. [Target NLB] ドロップダウンリストからnetwork load balancerを選択します。

      network load balancerがリストに存在するように選択したリージョンで、すでに作成されているnetwork load balancerが必要です。

    5. [Create] を選択して、VPC リンクの作成を開始します。

    最初の応答は、VPC リンク ID と PENDING ステータスの VpcLink リソース表現を返します。これは、オペレーションが非同期で、完了するまでに約 2~4 分かかるためです。正常に完了すると、ステータスは AVAILABLE になります。その間、API の作成に進むことができます。

  3. プライマリナビゲーションペインで、[APIs] を選択し、[+ Create API] を選択して、エッジ最適化された、またはリージョンのエンドポイントタイプの新しい API を作成します。

  4. ルートリソース (/) の場合は、[Actions] ドロップダウンメニューから [Create Method] を選択して、GET を選択します。

  5. [/ GET - Setup] ペインで、次のように API メソッド統合を初期化します。

    1. [Integration type] として VPC Link を選択します。

    2. [Use Proxy Integration] を選択します。

    3. [Method] ドロップダウンリストから、統合メソッドとして GET を選択します。

    4. [VPC Link] ドロップダウンリストから [Use Stage Variables] を選択して、下のテキストボックスに ${stageVariables.vpcLinkId} を入力します。

      ステージに API をデプロイした後、vpcLinkId ステージ変数を定義し、その値を [Step 1] で作成した VpcLink の ID に設定します。

    5. [Endpoint URL] に URL、たとえば http://myApi.example.com を入力します。

      ここでは、ホスト名 (例: myApi.example.com) が統合リクエストの Host ヘッダーを設定するために使用されます。

    6. 統合のタイムアウトをカスタマイズする場合を除き、[Use Default Timeout] を選択したままにしておきます。

    7. [Save] を選択し、統合のセットアップを終了します。

      プロキシ統合で、API はデプロイできる状態になります。それ以外の場合は、適切なメソッドレスポンスと統合レスポンスのセットアップに進む必要があります。

    8. [Actions] ドロップダウンメニューから、[Deploy API] を選択し、新規または既存のステージを選択して API をデプロイします。

      表示される [Invoke URL] をメモしておきます。API を呼び出す必要があります。しかし、それを行う前に、vpcLinkId ステージ変数を設定する必要があります。

    9. [Stage Editor] パネルで、[Stage Variables] タブを選択し、[Add Stage Variable] を選択します。

      1. [Name] 列の下に、vpcLinkId と入力します。

      2. [Value] 列の下に、VPC_LINK の ID (例: gix6s7) を入力します。

      3. チェックマークアイコンを選択してステージ変数を保存します。

        ステージ変数を使用すると、ステージ変数の値を変更することで、API の別の VPC リンクに簡単に切り替えることができます。

      これで API の作成は終わりです。他の統合と同様に、API の呼び出しをテストすることができます。