やりたいこと

  • 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にアクセスしたいというケースはレアケースかもしれませんが、どなたかのお役にたてば幸いです。

元記事はこちら

AWSでALBを共有するがサブドメインごとに別々のEC2にアクセスしたい
著者:
@ksawada1979


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://www.iret.co.jp/contact/service/form/