5
2

More than 3 years have passed since last update.

1つのALBでWebサーバとAPIサーバをドメインで出し分ける

Last updated at Posted at 2020-05-25

やりたいこと

  • 図のようにWebサーバとAPIサーバを1つのALBで出し分けてほしい
  • 各サーバは負荷分散を行う可能性もあるため複数台登録にも対応してほしい
  • IPは固定していないので,IPが変化しても大丈夫なようにする

Untitled Diagram (1).png

今回やること

  • Route 53でWebサーバとAPIサーバ用のドメインを用意する
  • ALBでドメインによってWebサーバ及びAPIサーバのターゲットグループを切り替えるように設定
  • 今回は便宜上,Webサーバ用のドメインをhoge.com,APIサーバ用のサブドメインをapi.hoge.comとして説明します

Untitled Diagram.png

前提条件

  • Webサーバ及びAPIサーバのEC2がある
  • ALB及びRoute 53でドメインが用意されていることとします

→ ドメインの登録方法はこちらを参考にしましょう

ロードバランサーの設定

まずは,ALBの作成を行います.
AWSのコンソールからEC2を選択し,
ロードバランサー -> ロードバランサーの作成を押します

0-2.png

今回はロードバランサーとしてALBを選択
0-1.png

名前:hoge-alb
VPC:作成したパブリックサブネットを選択
アベイラビリティーゾーン:今回はaとcのパブリックサブネットを選択
1.png

セキュリティーグループの設定

セキュリティグループの割当:新しいセキュリティグループを作成するを選択
セキュリティグループ名:hoge-sg
説明:hoge-sg
※名前は適切なものを書きましょう

2.png

ルーティンググループの設定

ターゲットグループ:新しいターゲットグループを選択
名前:hoge-web-tg
※ 適切な名前を書きましょう

3.png

Webサーバのターゲットグループの設定

ターゲットの登録を行います

Webサーバを選択 -> 登録済みに追加

4.png

最後に確認を押してALBの作成及びWebサーバへのターゲットグループを作成します.

APIサーバのターゲットグループ作成

次に,APIサーバのターゲットグループを作成します.

EC2のコンソールから,
ターゲットグループ -> ターゲットグループの作成を選択

名前:hoge-api-tg
※ 適切な名前を書きましょう

作成を押してターゲットグループを作ります

5.png

APIサーバのターゲットグループの設定

作成したターゲットグループを選択してAPIサーバを登録します.

hoge-api-tgを選択 -> ターゲット -> 編集

6.png

APIサーバを選択 -> 登録済みに追加 -> 保存
7.png

Route 53の設定

ドメインとALBを紐付ける

すでにドメインhoge.comがある状態でALBと紐付けます

コンソールからRoute 53を選択 -> 作成したドメインを選択 -> レコードセットの作成
14.png

エイリアスではいを選択 -> 作成したALB(hoge-alb)を選択

最後に作成を押しましょう
18.png

APIサーバのサブドメイン作成

API用のサブドメインを作成してALBと紐付けます

名前:api
エイリアス:はい
エイリアス先:作成したALB(hoge-alb)を項目の中から選択します

最後に作成を押してサブドメインを作ります
15.png

ルーティングの設定

APIサーバのルーティングをALBに設定

EC2のコンソールから
ロードバランサー -> 作成したhoge-albを選択 -> ルールの表現/編集
8.png

プラスボタンを選択 -> ルールの挿入
9.png

条件の追加 -> ホストヘッダー
10.png

Route 53で作成したAPI用のサブドメインを入力します
ホストヘッダー:api.hoge.com

次に,入力したホストヘッダーからの通信があった場合の転送先を設定します
アクションの追加 -> 転送先
11.png

hoge-api-tgを選択 -> 保存
12.png

最終的にはこのようになっています
13.png

結果

hoge.comでwebページが表示され,api.hoge.comでAPIサーバと通信することが出来ました

19.PNG

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2