【AWS】Route 53をDNSサービスとして使用するサブドメインの作成
Amazon Route 53にてドメインを管理している状態で、ドメインを管理しているアカウントとは別のアカウントでサブドメインを作成し、ACMにてSSL証明書を発行したい場合、あれ?どうやるんだったけ?と忘れることがあるので、備忘録として残しておく。
概要
定義
- 親ドメインアカウント:Route 53にてドメインを管理しているアカウント
- アプリ開発アカウント:サブドメインを作成し、ACMにてSSL証明書を発行したいアカウント
- hogehoge.com:Route 53にて管理しているドメイン
- sample-api.hogehoge.com:作成したいサブドメイン
今回、ドメインをアプリ開発アカウントに移行することなく、親ドメインアカウントでドメインを管理しつつも、アプリ開発アカウントでサブドメインを作成し、ACMにてSSL証明書を発行できるようにする。
サブドメイン作成
アプリ開発アカウントのRoute 53にてサブドメインを作成する。
「ホストゾーンの作成」ボタンから以下の設定でホストゾーンを作成する。
ホストゾーンを作成すると、NSレコードとSOAレコードが作成される。 NSレコードを親ドメインアカウント側に追加して更新する必要があるので、NSレコードをコピーしておく。
サブドメインのネームサーバーレコードでDNS サービスを更新する
親ドメインアカウントのRoute 53にて、hogehoge.com
のホストゾーンにサブドメインのネームサーバーレコードを追加する。
- レコード名:sample-api(hogehoge.com)
- レコードタイプ:NS-ホストゾーンのネームサーバー
- 値:サブドメインのNSレコード
- TTL :300(default)
- ルーティングポリシー:シンプルルーティング(default)
ACMから証明書発行
アプリ開発アカウントのAWS Certificate Manager(ACM)にて証明書の発行をリクエストする。
- 証明書タイプ:パブリック証明書をリクエスト
- ドメイン名:sample-api.hogehoge.com(サブドメイン名を入力)
- 検証方法を選択:DNS検証 - 推奨(default)
- タグ:(必要であれば追加)
作成した証明書の詳細を確認すると、ステータスは「保留中の検証」となっている。
「Route 53 でレコードを作成」→「レコードを作成」を実行する。これにより、Route 53のサブドメインに、CNAMEレコードが追加される。
あとは、DNS検証が完了するのを待つのみ。数分経過すると、「発行済み」のステータスになる。
以降は、通常の設定と同様である。
ロードバランサーの作成
- Application Load Balancer(ALB)(HTTP / HTTPS)を選択する
- リスナー「ロードバランサーのプロトコル」に、"HTTPS"を追加する
- セキュリティ設定で、SSL証明書を登録する
- ターゲットの登録で、使用するEC2インスタンスを登録する
- 使用するEC2インスタンスのセキュリティグループに、HTTPを許可するルールを追加し、ソースには作成したELBのセキュリティグループを指定する。
Route53 ロードバランサー紐付け
サブドメインに、以下のレコードを追加する
- レコード名:(空欄のまま)
- レコードタイプ:A - IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。
- エイリアスを「有効」にする
- トラフィックのルーティング先:「Application Load Balancer と Classic Load Balancerへのエイリアス」→ ALBのリージョンを選択 → 作成したALBを選択する
まとめ
無事、ドメインをアプリ開発アカウントに移行することなく、親ドメインアカウントでドメインを管理したまま、アプリ開発アカウントでサブドメインを作成し、ACMにてSSL証明書を発行できるようにすることができた。
何度かやっているのに、毎回忘れて調べているので、メモとして残しておく。