やりたいこと
- ALBを共有したい
- サブドメインごとに別々のEC2にアクセスさせたい
- HTTPSでアクセスしたい
今回の例では
aaa.ksawada1979.com
bbb.ksawada1979.com
というドメインを使用して設定します。
LinuxのVirtualホストを使って実現することが多いかと思いますが、今回はALBを共有して別々のEC2にアクセスさせます。
前提条件
- EC2上でApacheが起動済み
- ALBの基本設定は完了済み
- Certificate Manager(ACM)でSSL証明書が発行済みであるものとします。
- *.ksawada1979.comのワイルドカード証明書を発行
- Route53でaaa.ksawada1979.comとbbb.ksawada1979.comのレコードは登録済み
構成図
ターゲットグループ作成
ALBの基本的な設定はできている前提のためいきなりですがターゲットグループを作成します。
aaa.ksawada1979.com用とbbb.ksawada1979.com用の2つのターゲットグループを作成します。
VPC内部はhttpで通信するためにTargetのポートは80番になります。
ルール設定
次にALBのルール設定をします。
ロードバランサー設定の「リスナー」タブを選択し「ルールの表示/編集」をクリックします。
上記のように2つのターゲットグループを作成します。
次に+をクリックして「ルールの挿入」→「条件の追加」→「ホストヘッダー」を選択して「aaa.ksawada1979.com」を入力します。
次に「アクションの追加」選択、さらに「転送先」をクリックして先ほど作成したターゲットグループaaa.ksawada1979.comを選択します。
同様にbbb.ksawada1979.com用の設定も入れて最終的に以下のように設定します。
上記でルールの設定は完了です。
確認
実際にブラウザでaaa.ksawada1979.comとbbb.ksawada1979.comにアクセスできるか確認します。
それぞれアクセスすることができました。
ちょっとこの画面だけだとそれぞれのEC2アクセスできているかわかりにくいですが、それぞれのEC2の/var/www/html/index.htmlをそれぞれ書き換えて確認しました。
ALBを共有するがサブドメインごとに別々のEC2にアクセスしたいというケースはレアケースかもしれませんが、どなたかのお役にたてば幸いです。