チュートリアル: API Gateway のプライベート統合を使用して REST 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
を統合の接続タイプとして設定し、統合の connectionId
で VpcLink
ID を設定します。
Network Load Balancer と API は、同じ AWS アカウントによって所有されている必要があります。
VPC リソースにアクセスするための API をすばやく作成するために、API Gateway コンソールを使用したプライベートインテグレーションを使用して API を構築するための重要なステップについて説明します。API を作成する前に、次の操作を行います。
-
VPC リソースを作成し、同じリージョンのアカウントで Network Load Balancer を作成または選択し、リソースをホストする EC2 インスタンスを Network Load Balancer のターゲットとして追加します。詳細については、「API Gateway のプライベート統合の Network Load Balancer を設定する」を参照してください。
-
プライベート統合のための VPC リンクを作成するアクセス許可を付与します。詳細については、「VPC リンクを作成するためのアクセス許可の付与」を参照してください。
ターゲットグループに VPC リソースが設定された VPC リソースと Network Load Balancer を作成したら、以下の手順に従って API を作成し、プライベート統合の
VpcLink
を使用して VPC リソースと統合します。
API Gateway コンソールを使用してプライベート統合で API を作成するには
-
API Gateway コンソール https://console.aws.amazon.com/apigateway
にサインインします。 -
VPC リンクをまだ作成していない場合は作成します。
-
プライマリナビゲーションペインから、[VPC links (VPC リンク)] を選択し、[Create (作成)] を選択します。
-
[VPC link for REST APIs (REST API の VPC リンク)] を選択します。
-
名前を入力し、オプションで VPC リンクの説明を入力します。
-
[Target NLB (ターゲット NLB)] ドロップダウンリストから Network Load Balancer を選択します。
Network Load Balancer がリストに存在するようにした API と同じリージョンで、すでに作成されている Network Load Balancer が必要です。
-
[作成] を選択して、VPC リンクの作成を開始します。
最初の応答は、VPC リンク ID と
VpcLink
ステータスのPENDING
リソース表現を返します。これは、オペレーションが非同期で、完了するまでに約 2~4 分かかるためです。正常に完了すると、ステータスはAVAILABLE
になります。その間、API の作成に進むことができます。 -
-
プライマリナビゲーションペインで、[API] を選択し、[Create API (API の作成)] を選択して、エッジ最適化された、またはリージョンのエンドポイントタイプの新しい API を作成します。
-
ルートリソース (/) の場合は、[アクション] ドロップダウンメニューから [メソッドの作成] を選択して、
GET
を選択します。 -
[/ GET - Setup (/ GET - セットアップ)] ペインで、次のように API メソッド統合を初期化します。
-
[統合タイプ] として
VPC Link
を選択します。 -
[プロキシ統合の使用] を選択します。
-
[メソッド] ドロップダウンリストから、統合メソッドとして
GET
を選択します。 -
[VPC リンク] ドロップダウンリストから
[Use Stage Variables]
を選択して、下のテキストボックスに${stageVariables.vpcLinkId}
を入力します。ステージに API をデプロイした後、
vpcLinkId
ステージ変数を定義し、その値を [Step 2 (ステップ 2)] で作成したVpcLink
の ID に設定します。 -
[エンドポイント URL] に URL、たとえば
http://myApi.example.com
を入力します。ここでは、ホスト名 (例:
myApi.example.com
) が統合リクエストのHost
ヘッダーを設定するために使用されます。注記 Network Load Balancer (NLB) については、「Network Load Balancer の開始方法」で説明されているように、必ず NLB DNS 名を使用します。
-
統合のタイムアウトをカスタマイズする場合を除き、[デフォルトタイムアウトの使用] を選択したままにしておきます。
-
[保存] を選択し、統合のセットアップを終了します。
プロキシ統合で、API はデプロイできる状態になります。それ以外の場合は、適切なメソッドレスポンスと統合レスポンスのセットアップに進む必要があります。
-
[アクション] ドロップダウンメニューから、[API のデプロイ] を選択し、新規または既存のステージを選択して API をデプロイします。
表示される [呼び出し URL] をメモしておきます。API を呼び出す必要があります。しかし、それを行う前に、
vpcLinkId
ステージ変数を設定する必要があります。 -
[ステージエディター] パネルで、[ステージ変数] タブを選択し、[ステージ変数の追加] を選択します。
-
[名前] 列の下に、
vpcLinkId
と入力します。 -
[値] 列の下に、
VPC_LINK
の ID (例:gix6s7
) を入力します。 -
チェックマークアイコンを選択してステージ変数を保存します。
ステージ変数を使用すると、ステージ変数の値を変更することで、API の別の VPC リンクに簡単に切り替えることができます。
これで API の作成は終わりです。他の統合と同様に、API の呼び出しをテストすることができます。
-
-