タイトルの通りです。同じVPCの中で複数のサーバーにドメインを割り当てたい時、その分ドメインを取得したり、証明書を発行しないといけないわけではないんです。
手順
- お名前.comでドメイン取得
- Route 53に登録
- お名前.comのNS
- ACMで証明書発行
- ターゲットグループの作成
- ALBの作成
- Route 53にAレコード、CNAMEを登録
- サブドメイン作成
- ECSにてサービス作成
お名前.comでドメインを取得
ドメイン取得自体は特に難しくないので、ドメイン登録画面からお好きなドメインを検索して取得する。
UI/UXがうざ徹底されていて何かとお金を発生させようとしますが迷うことなくドメイン取得のみを行ってください。
Route 53に登録
取得したドメインをAWSのRoute 53に登録します。
作成したらNSレコードが作成されるのでこれをお名前.comに登録する。
赤枠の箇所にRoute 53のNSレコードの情報4つ全てを登録します。
(例)
ns-xxx1.awsdns-53.co.uk.
ns-xxx2.awsdns-33.org.
ns-xxx3.awsdns-33.net.
ns-xxx4.awsdns-55.com.
これ以降はお名前.comの設定を触ることはありません。
最大72時間かかるとか言われるが大体5分くらいで完了する。
完了したらnslookupコマンドで確認できます。
下のように登録したAWSのネームサーバーが表示されればOK。
% nslookup -type=NS [対象ドメイン]
# 結果
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
[対象ドメイン] nameserver = ns-xxx1.awsdns-55.com.
[対象ドメイン] nameserver = ns-xxx2.awsdns-33.net.
[対象ドメイン] nameserver = ns-xxx3.awsdns-33.org.
[対象ドメイン] nameserver = ns-xxx4.awsdns-53.co.uk.
ACMで証明書の発行
SSL接続するために証明書を発行します
パブリック証明書をリクエストを選んで次へ
今回はサブドメインの分の証明書も発行するので画像のように登録します。
「hoge-site.com」というドメインを取得していた場合、ワイルドカードを利用して「*.hoge-site.com」も登録することで「api.hoge-site.com」や「web.hoge-site.com」のようなサブドメインでもSSL接続ができます。
一度証明書を発行すると後から編集できないので、とりあえずサブドメインの設定もする。で良いと思います。
リクエストしたら下記ボタンからレコードを作成。
ボタンを押すとRoute 53にCNAMEというレコードが作成されます。これをしないと証明書のリクエストが保留中から進みません。
ターゲットグループの作成
EC2 > ロードバランシング > ターゲットグループに移動
ターゲットグループの作成を選択
下記のように設定
- ターゲットタイプの選択: IPアドレス
- ターゲットグループ名: 好きな名前
- プロトコル : ポート: HTTP:80
- IP アドレスタイプ: IPv4
- VPC: 1.1で作成したVPC
- プロトコルバージョン: HTTP1
- ヘルスチェックプロトコル: HTTP
- ヘルスチェックパス: /
- ターゲット登録は何もせずにターゲットグループの作成を選択
この手順を繰り返して、サブドメイン用のターゲットグループも作成してください。
ターゲットグループ名だけ変えればOKです。
ALBの作成
ロードバランサータイプ:Application Load Balancer
ロードバランサー名: 好きな名前
スキーム: インターネット向け
IPアドレスタイプ: IPv4
VPC: 1.1で作成したVPC
マッピング:2個のパブリックサブネットを選択(作成していなければ作成必要)
セキュリティグループ: HTTPとHTTPSを許可、ソースはAnywhere-IPv4
リスナープロトコル,ポート: HTTPS/443
デフォルトアクション: ルートドメイン用のターゲットグループ
セキュリティカテゴリ: 全てのセキュリティポリシー
ポリシー名: 推奨のもの
証明書の取得先: ACMから
証明書(ACMから): 先ほど作成したACMを選択
サブドメイン用のルールを追加
ターゲットグループへ転送を選択
サブドメイン用のターゲットグループを選択して次へ
リソースマップで確認して以下のような感じになってればOK
80番ポートのリスナーがあった方が良いかも
80番ポートのリスナーがあれば以下のようになる。
Route 53にAレコード追加
Route 53 に戻ってAレコードの作成
画像の通り作成。ロードバランサーは先ほど作成したALBを選択
サブドメイン作成
最初にドメインを作成した時と手順は変わりません。「hoge-site.com」というルートドメインに対してたとえば「web.hoge-site.com」というサブドメインを作成できます。
次にレコードを作成してAレコードとCNAMEをルートドメインと全く同じ設定にしてください
最後に、このサブドメインのNSレコードの情報をルートドメインのNSレコードとして登録します。
ECSにてサービス作成
最後にECSでサービスを作成する際のネットワーキングの箇所で
作成したALBを選択してターゲットグループを振り分ければサブドメインとECSを紐付けできる。