1つのELBでHTTP(S)とTCPに対応する
概要
例えば、1つのホスト名でWebを公開しつつSSH接続も行いたい。というようなユースケースを想定した時、これをELBで校正する場合すこし複雑な構成になる。
ざっくりと下図のような構成。
CLB(ClassicLoadBalancer)であればウィザードに従うことでこのような構成でも直感的に構築できていたもののCLBが非推奨となった今、これをCLBを使わずに構築するのが意外と複雑なのでそれをまとめておく。
前提条件
- 80番ポートは443番ポートへ転送
- 443番ポートはACMの証明書を設定したhttpsとして公開
- 22番ポートはTCPでSSH向けに公開
ポイント
- 外部向けはNLB(Network Load Balancer)を構築
- TCPはNLBからそのままインスタンスへ
- HTTPはALB(Application Load Balancer)のターゲットグループでALBへ転送
構築手順
Step1: HTTP(S)のALB構築
Step2: ALBのターゲットグループ構築
- ALBのターゲットグループをhttp:80用とhttps:443用の2つ構築