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

注記

Network Load Balancer と API は、同じ AWS アカウントにより所有される必要があります。

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

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

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

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

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

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

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

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

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

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

    4. [Target NLB (ターゲット NLB)] ドロップダウンリストから [Network Load Balancer] を選択します。

      Network Load Balancer をリストに表示するには、選択したリージョンで Network Load Balancer を作成済みである必要があります。

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

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

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

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

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

    1. [統合タイプ] として VPC Link を選択します。

    2. [プロキシ統合の使用] を選択します。

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

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

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

    5. [エンドポイント URL] に URL、たとえば http://myApi.example.com を入力します。

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

      注記

      Network Load Balancer (NLB) の場合、「Network Load Balancer の開始方法」で説明しているように NLB DNS 名を必ず使用してください。

    6. 統合のタイムアウトをカスタマイズする場合を除き、[デフォルトタイムアウトの使用] を選択したままにしておきます。

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

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

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

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

    9. [ステージエディター] パネルで、[ステージ変数] タブを選択し、[ステージ変数の追加] を選択します。

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

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

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

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

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