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://xxx-yyy.elb.ap-northeast-1.amazonaws.com:8080/aaa/hogehoge/{parameter1}/fugafuga/{parameter2}

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

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

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

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

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました