やりたいこと
- 図のようにWebサーバとAPIサーバを1つのALBで出し分けてほしい
- 各サーバは負荷分散を行う可能性もあるため複数台登録にも対応してほしい
- IPは固定していないので,IPが変化しても大丈夫なようにする
今回やること
- Route 53でWebサーバとAPIサーバ用のドメインを用意する
- ALBでドメインによってWebサーバ及びAPIサーバのターゲットグループを切り替えるように設定
- 今回は便宜上,Webサーバ用のドメインをhoge.com,APIサーバ用のサブドメインをapi.hoge.comとして説明します
前提条件
- Webサーバ及びAPIサーバのEC2がある
- ALB及びRoute 53でドメインが用意されていることとします
→ ドメインの登録方法はこちらを参考にしましょう
ロードバランサーの設定
まずは,ALBの作成を行います.
AWSのコンソールからEC2を選択し,
ロードバランサー -> ロードバランサーの作成を押します
名前:hoge-alb
VPC:作成したパブリックサブネットを選択
アベイラビリティーゾーン:今回はaとcのパブリックサブネットを選択
セキュリティーグループの設定
セキュリティグループの割当:新しいセキュリティグループを作成するを選択
セキュリティグループ名:hoge-sg
説明:hoge-sg
※名前は適切なものを書きましょう
ルーティンググループの設定
ターゲットグループ:新しいターゲットグループを選択
名前:hoge-web-tg
※ 適切な名前を書きましょう
Webサーバのターゲットグループの設定
ターゲットの登録を行います
Webサーバを選択 -> 登録済みに追加
最後に確認を押してALBの作成及びWebサーバへのターゲットグループを作成します.
APIサーバのターゲットグループ作成
次に,APIサーバのターゲットグループを作成します.
EC2のコンソールから,
ターゲットグループ -> ターゲットグループの作成を選択
名前:hoge-api-tg
※ 適切な名前を書きましょう
作成を押してターゲットグループを作ります
APIサーバのターゲットグループの設定
作成したターゲットグループを選択してAPIサーバを登録します.
hoge-api-tgを選択 -> ターゲット -> 編集
Route 53の設定
ドメインとALBを紐付ける
すでにドメインhoge.comがある状態でALBと紐付けます
コンソールからRoute 53を選択 -> 作成したドメインを選択 -> レコードセットの作成
エイリアスではいを選択 -> 作成したALB(hoge-alb)を選択
APIサーバのサブドメイン作成
API用のサブドメインを作成してALBと紐付けます
名前:api
エイリアス:はい
エイリアス先:作成したALB(hoge-alb)を項目の中から選択します
ルーティングの設定
APIサーバのルーティングをALBに設定
EC2のコンソールから
ロードバランサー -> 作成したhoge-albを選択 -> ルールの表現/編集
Route 53で作成したAPI用のサブドメインを入力します
ホストヘッダー:api.hoge.com
次に,入力したホストヘッダーからの通信があった場合の転送先を設定します
アクションの追加 -> 転送先
結果
hoge.comでwebページが表示され,api.hoge.comでAPIサーバと通信することが出来ました