AWSのELBの中で ALB(Aplication Load Balancing)には、ホストベースルーティングの機能があります。HTTPヘッダのホストフィールドを見てリクエストのルーティングが可能になります。
今回、このホストベースルーティングを使って、同じドメインで複数サブドメインを持つサービスのEC2を1つのALB配下に配置します。
ワイルドカードSSL証明書の取得
まずは、ワイルドカードSSL証明書を取得します。手順については以下を参照してください。
ロードバランサーの初期作成
SSL証明書の準備ができたら、以下の記事の通りまずはホストベースルーティングなしのロードバランサーを作成します。
振り分け先のターゲットの追加
ここまでで、ターゲットグループは1つです。振り分け先のもう1つのターゲットグループを追加します。追加はAWSダッシュボードでターゲットグループメニューから「ターゲットグループの追加」ボタンを押して追加します。
ターゲットグループを追加したら「ターゲット」タブより「編集」ボタンでターゲットとなるEC2インスタンスを登録します。
ターゲットに追加するインスタンスを選択して「登録済みに追加」ボタンで追加します。
ルーティングルールの追加
ALBのダッシュボードのリスナータブからルールの表示/編集をクリックします。
「+」マークをクリックすると、「+ルールの挿入」が表示されるので、そこをクリックしてルーティングルールを追加します。
ルール入力画面が表示されるので、IFぼ部分にホスト名を記入し、転送先欄に転送するターゲットグループを選択します。
さらに、別ターゲットへ転送するルーティングルールを追加すると、以下のような転送ルールが表示されます。
これで、ホストによって設定された転送先のターゲットグループ(に登録されているEC2インスタンス)へアクセスが転送されます。