チュートリアル: プライベート統合を使用して 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
を統合の接続タイプとして設定し、統合の VpcLink
で connectionId
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 リンクを作成するためのアクセス許可を API Gateway に付与する」を参照してください。
ターゲットグループに VPC リソースが設定された VPC リソースと Network Load Balancer を作成したら、以下の手順に従って API を作成し、プライベート統合の VpcLink
を使用して VPC リソースと統合します。
プライベート統合で API を作成するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
API Gateway を初めて使用する場合は、サービスの特徴を紹介するページが表示されます。[REST API] で、[構築] を選択します。[Create Example API (サンプル API の作成)] がポップアップ表示されたら、[OK] を選択します。
API Gateway を使用するのが初めてではない場合、[Create API] (API を作成)を選択します。[REST API] で、[構築] を選択します。
エッジ最適化 REST API またはリージョン REST API を作成します。
-
API を選択します。
-
[メソッドを作成] を選択して、次の操作を行います。
[メソッドタイプ] では、
GET
を選択します。[統合タイプ] で、[VPC リンク] を選択します。
[VPC プロキシ統合] を有効にします。
[HTTP メソッド] で、[
GET
] を選択します。[VPC リンク] で、[ステージ変数の使用] を選択し、下のテキストボックスに「
${stageVariables.vpcLinkId}
」と入力します。ステージに API をデプロイした後で、
vpcLinkId
ステージ変数を定義し、その値をVpcLink
の ID に設定します。[エンドポイント URL] に URL (例:
http://myApi.example.com
) を入力します。ここでは、ホスト名 (例:
myApi.example.com
) が統合リクエストのHost
ヘッダーを設定するために使用されます。[メソッドの作成] を選択します。
プロキシ統合で、API はデプロイできる状態になります。それ以外の場合は、適切なメソッドレスポンスと統合レスポンスのセットアップに進む必要があります。
[API をデプロイ] を選択し、次の操作を行います。
[ステージ] で [新規ステージ] を選択します。
[ステージ名] に、ステージ名を入力します。
(オプション) [説明] に説明を入力します。
[デプロイ] を選択します。
-
[ステージの詳細] セクションで、生成された呼び出し URL を書き留めておきます。API を呼び出す必要があります。しかし、それを行う前に、
vpcLinkId
ステージ変数を設定する必要があります。 -
[ステージ] ペインで、[ステージ変数] タブを選択し、次の操作を行います。
[変数を管理] を選択し、[ステージ変数を追加] を選択します。
-
[名前] に
vpcLinkId
と入力します。 -
[値] に
VPC_LINK
の ID (例:
) を入力します。gix6s7
-
[Save] を選択します。
ステージ変数を使用すると、ステージ変数の値を変更することで、API の別の VPC リンクに簡単に切り替えることができます。