Amazon API Gateway HTTP API 用の内部 Application Load Balancer とのプライベート統合を作成したいと考えています。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
VPC リンクを作成する
前提条件:Application Load Balancer を作成すること。
VPC リンクの作成には、API Gateway コンソールまたは AWS CLI を使用できます。
API Gateway コンソール
次の手順を実行します。
- API Gateway コンソールを開きます。
- ナビゲーションペインで [VPC リンク] を選択し、[作成] を選択します。
- [VPC リンクバージョンを選択] で [HTTP API の VPC リンク] を選択します。
- [名前] に VPC リンクの名前を入力します。
- [VPC] ドロップダウンリストから、Application Load Balancer の接続先となる VPC を選択します。
- [サブネット] で VPC リンクに含めるサブネットを選択します。
- [セキュリティグループ] で VPC リンクのセキュリティグループを選択し、[作成] を選択します。
AWS CLI
次の create-vpc-link コマンドを実行します。
aws apigatewayv2 create-vpc-link --name MyVpcLink \ --subnet-ids subnet-aaaa subnet-bbbb \
--security-group-ids sg1234 sg5678
HTTP API を作成し、ルーティングを設定する
次の手順を実行します。
- API Gateway コンソールを開きます。
- [API の作成] を選択します。
- HTTP API の場合は、[構築] を選択します。
- [API 名] に名前を入力し、[次へ] を選択します。
- [ルートを設定] で [次へ] を選択します。
- [ステージを設定] で [次へ] を選択し、[作成] を選択します。
- ナビゲーションペインで [ロール]、[作成] の順に選択します。
- [メソッド] で [任意] を選択します。
- パスに /{proxy+} と入力し、[作成] を選択します。
プライベートインテグレーションを作成し、HTTP API をデプロイする
次の手順を実行します。
- API Gateway コンソールを開きます。
- 目的の HTTP API を選択します。
- ナビゲーションペインで [統合] を選択します。
- [統合] で [統合を管理] を選択し、[作成] を選択します
- [この統合をルートにアタッチする] で [ANY/{proxy+}] を選択します。
- [統合ターゲット] で [プライベートリソース] を選択します。
- [統合の詳細] で [手動で選択] を選択します。
- [ターゲットサービス] で [ALB/NLB] を選択します。
- [ロードバランサー] で目的の Application Load Balancer を選択します。
- [リスナー] で [HTTP 80] を選択します。
- [VPC リンク] で目的の VPC を選択し、[作成] を選択します。
- [自動デプロイ] が有効でない場合は、[デプロイ] を選択します。
- [呼び出し URL] の URL を書き留め、新規ブラウザウィンドウに入力します (URL 例: https://abcdef123.execute-api.us-east-1.amazonaws.com)。
注: プライベート統合トラフィックは、HTTP プロトコルを使用します。プライベート統合トラフィックが HTTPS を使用する必要がある場合は、AWS マネジメントコンソールで TlsConfig を指定します。プライベート統合の作成時に [詳細設定] を選択し、保護されたサーバー名を入力します。詳細については、「API Gateway で HTTP API のプライベート統合を作成する」を参照してください。
関連情報
Amazon API Gateway HTTP API チュートリアル
API Gateway 統合のレスポンスステータスコードを HTTP API にマッピングするにはどうすればよいですか?