AWSでAPI Gatewayとロードバランサーを組み合わせて使う

[アクセス元]---[API Gateway]---[ロードバランサー]---[EC2のインスタンス]
を想定して接続したい。
試した方法はEC2のインスタンスにセキュリティグループを負わせる。
以下、ロードバランサーをLBと記す。
EC2のインスタンス
普通に作成する。
セキュリティグループ
LBからアクセスできるものを割り当てる。
ターゲットグループ
クラシックなLBはWebサーバーなどを直接的なターゲットとするが、AWSの流儀はEC2のインスタンスを束ねるターゲットグループを設けて、LBのリスナーの転送先としてターゲットグループを指定する。
想定は[LB]---[EC2のインスタンス]だが、この流儀だと[LB]---[ターゲットグループ]---[EC2のインスタンス]という感じで連携する。
ターゲットの種類
「インスタンス」を選択する。
インスタンスの登録
"入れ物"となるターゲットグループをとにかく作り、その後にメニューからインスタンスを登録・解除する設定へ進む。
LB
後に出る「VPCリンク」のために「Network Load Balancer」を作成する。
LBの設定
スキーム
ターゲットへルーティングする方法を指定する
ルーティングする方法であり、LBのアクセス元でないことに気をつける。
インターネット向け
インターネットを経由する。
内部
プライベートIPアドレスを使う。
アベイラビリティーゾーン
仕様で2つ以上アベイラビリティーゾーンを選択する必要がある。
ターゲットが1つだけでもその1つともう1つを適当に選択すればよい。
API Gateway
VPCリンク
AWSの説明にVPC内HTTP(S)リソースへのアクセスを一般のインターネットに直接露出しないように提供します。とあり、この設定が必要になる。
ターゲットNLB
作成したLBを選択する。
API
エンドポイントタイプ
「リージョン」を選択する。
リソース > [メソッド] > 統合リクエスト
統合タイプ
「VPCリンク」を選択する。
VPCリンク
設定したVPCリンクを選択する。
エンドポイントURL
設定したLBのDNS名とリスナーのポートをURLにしたものを指定する。
例: http://xxxxx.elb.region.amazonaws.com:8080/
2019/08/15 21:25
タグ