【新機能】API Gateway VPC integrationを使ってみた #reinvent
コンニチハ、千葉です。
re:Invent2017 キーノート2日目で発表されたアップデートになります!!
API Gateway VPC integrationとは?
API GatewayのバックエンドとしてLambdaやHTTP、AWSサービスを指定することができました。また、HTTPのバックエンドはインターネット経由でのアクセスのみでしたが、今回VPC integrationによりVPC内のリソースをバックエンドに指定することができるようになりました。
やってみた
API GatewayからバックエンドにVPCを指定するためには、NLB + VPC Linksが必要になります。
ネットワークロードバランサ(NLB)の作成
今回はinternalなNLBを作成します。(externalでも可)
NLBのターゲットグループにはNginxをインストールしたEC2をアタッチしました。
VPCLinkの作成
API Gatewayのインベントリから「VPCリンク」という項目から作成します。作成したNLBを指定します。(NLBがInternalではなくインターネットのNLBを指定すると「!」でVPCリンクが不要かも?という注意事項が表示されました)
ステータスが有効になってることを確認しましょう。
API Gatewayの統合リクエストの設定
統合リクセストにて統合タイプを「VPCリンク」を選択します。VPCリンクの設定項目は、[ステージ変数の使用]を選択し、${stageVariables.vpcLinkId}を入力するとステージに合わせてVPCのリンク先を変更できます。が今回は、テストなのでそのままVPCリンクIDを入力しました。 エンドポイントURLには、バックエンドに接続できるURLを選択します。Route53で設定したドメインまたはNLBのドメイン名を指定します。今回はNLBのドメイン名を指定しました。
設定はこれでokです。
試す
テストリクエストを流して、レスポンスを確認します。
ちゃんとNginxのレスポンスが帰ってきました!
最後に
API GatewayのバックエンドにVPCのリソースを指定できるようになりました。re:Inventにてリージョン間ピアリングとかPrivateLinkエンドポイントなど、ネットワークの進化が複数発表されてます! それではまた!