API GatewayからVPCリンクを使用してNLBに接続する

API GatewayからVPCリンクを使用してNLBに接続する

API GatewayのVPCリンクとNLBを使用して、API Gateway経由でプライベートなリソース(EC2とか)にアクセスすることが可能になります。

EC2のマネージドコンソールからNLBを作成します。

「mynlb」のスキームは「内部」とします。

API GatewayからVPCリンクを使用してNLBに接続する

作成したら、API GatewayのVPCリンクを設定します。ターゲットNLBにmynlbを設定します。

API GatewayからVPCリンクを使用してNLBに接続する

「作成」を押して、VPCリンクを作成します。VPCIDは適当に自動生成されて振られます。

※20分ほど作成に時間がかかります

「統合リクエスト」をクリックします。

統合タイプにはVPCリンクを指定します。

VPCリンクにはVPCIDを指定します。

エンドポイントURLはネットワークロードバランサー(NLB)のDNS名を指定します。

API GatewayからVPCリンクを使用してNLBに接続する

これでデプロイすればAPI Gateway経由でプライベートサブネットに配置されているEC2にアクセスすることが可能になります。

API GatewayからVPCリンクを使用してNLBに接続する

EC2のTomcatに転送する

API GatewayからNLB経由でEC2のtomcatアプリに連携する場合は、エンドポイントURLにNLBのDNSを指定します。EC2のターゲットグループでリスナー80にして、転送先をEC2のIPアドレスにして、ポートを8080にします。

これで、API GatewayからNLB経由でEC2のtomcatアプリにアクセスすることが可能になります。

API GatewayからVPCリンク経由でTomcatのAPIを指定するには、エンドポイントURLにNLBのDNS+URIを設定する必要があります。

デプロイするファイル NLBのDNS
aaa.war xxx-yyy.elb.ap-northeast-1.amazonaws.com

以下がエンドポイントURLの例になります。

http://NLBのDNS/と指定した場合は、バックエンドのTomcatアプリのwebapps/ROOT/index.jspが返却されるという事になります。

また、パスパラメータを{hoge}というように渡す場合は、「プロキシ統合の使用」にチェックを入れないと、パスパラメータが渡せないです。500エラーになります。

Private APIの場合VPCリンクが必要か

API GatewayでPrivate APIを作成した場合、エンドポイントがVPC内にある場合は、プライベートであってもVPCリンクから接続する必要があるようです。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA