お名前.comで取得したドメインをRoute53に登録。サブドメインも作ってECSごとに振り分ける

タイトルの通りです。同じVPCの中で複数のサーバーにドメインを割り当てたい時、その分ドメインを取得したり、証明書を発行しないといけないわけではないんです。

![スクリーンショット 2024-10-13 17.03.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/2d7da894-8026-4bed-1df7-38d6eed70d3c.png)


# 手順
- お名前.comでドメイン取得
- Route 53に登録
- お名前.comのNS
- ACMで証明書発行
- ターゲットグループの作成
- ALBの作成
- Route 53にAレコード、CNAMEを登録
- サブドメイン作成
- ECSにてサービス作成

# お名前.comでドメインを取得
ドメイン取得自体は特に難しくないので、ドメイン登録画面からお好きなドメインを検索して取得する。
UI/UXが~~うざ~~徹底されていて何かとお金を発生させようとしますが迷うことなくドメイン取得のみを行ってください。
![スクリーンショット 2024-10-09 11.59.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/37a32192-a0d6-48f0-c468-d4e149420f77.png)

# Route 53に登録
取得したドメインをAWSのRoute 53に登録します。
- ドメイン名・・・お名前.comで取得したドメイン
- 説明・・・任意
- タイプ・・・パブリックホストゾーン
![スクリーンショット 2024-10-09 12.08.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/24da9fa8-5bb3-628d-c856-e16d93aa3d8a.png)

作成したらNSレコードが作成されるのでこれをお名前.comに登録する。
![スクリーンショット 2024-10-09 12.12.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/d7f31d0a-ac9f-c779-f31e-5befcc999372.png)

ネームサーバー設定>ネームサーバーの変更
![スクリーンショット 2024-10-09 12.16.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/72320d1c-1c8f-d6f8-f7ce-f160459feafd.png)

赤枠の箇所に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の設定を触ることはありません。
![スクリーンショット 2024-10-09 12.17.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/140790ca-4662-9816-bb02-ad440876643d.png)

最大72時間かかるとか言われるが大体5分くらいで完了する。
完了したらnslookupコマンドで確認できます。
下のように登録したAWSのネームサーバーが表示されればOK。

```bash
% 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接続するために証明書を発行します
![スクリーンショット 2024-10-12 10.23.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/a5ed7d72-f7aa-faaa-b254-150e25fc48ea.png)
パブリック証明書をリクエストを選んで次へ
![スクリーンショット 2024-10-12 12.08.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/69881e64-25e8-2f04-61db-e63330e362e5.png)

今回はサブドメインの分の証明書も発行するので画像のように登録します。
「hoge-site.com」というドメインを取得していた場合、ワイルドカードを利用して「*.hoge-site.com」も登録することで「api.hoge-site.com」や「web.hoge-site.com」のようなサブドメインでもSSL接続ができます。

![スクリーンショット 2024-10-12 12.08.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/256f66d0-3072-dc1c-ee89-e8015177251f.png)

:::note warn
一度証明書を発行すると後から編集できないので、とりあえずサブドメインの設定もする。で良いと思います。
:::

リクエストしたら下記ボタンからレコードを作成。
ボタンを押すとRoute 53にCNAMEというレコードが作成されます。これをしないと証明書のリクエストが保留中から進みません。
![スクリーンショット 2024-10-12 12.56.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/ea5420f0-6bb1-2a04-878f-b70f51e4a877.png)

CNAMEが追加されたことを確認
![スクリーンショット 2024-10-12 13.02.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/29ce872d-d401-819d-fa5a-5f8efd9cb8e5.png)


# ターゲットグループの作成

![スクリーンショット 2024-10-12 12.36.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/0ca7b724-9333-6772-c3dc-2700c55ed132.png)

EC2 > ロードバランシング > ターゲットグループに移動
ターゲットグループの作成を選択

下記のように設定
- ターゲットタイプの選択: IPアドレス
- ターゲットグループ名: 好きな名前
- プロトコル : ポート: HTTP:80
- IP アドレスタイプ: IPv4
- VPC: 1.1で作成したVPC
- プロトコルバージョン: HTTP1
- ヘルスチェックプロトコル: HTTP
- ヘルスチェックパス: /
- ターゲット登録は何もせずにターゲットグループの作成を選択

この手順を繰り返して、サブドメイン用のターゲットグループも作成してください。
ターゲットグループ名だけ変えればOKです。

# ALBの作成
![スクリーンショット 2024-10-12 12.37.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/92d3a8fe-559c-cd3e-615a-3c68b5c2890e.png)
ロードバランサータイプ:Application Load Balancer
ロードバランサー名: 好きな名前
スキーム: インターネット向け
IPアドレスタイプ: IPv4
VPC: 1.1で作成したVPC
マッピング:2個のパブリックサブネットを選択(作成していなければ作成必要)
セキュリティグループ: HTTPとHTTPSを許可、ソースはAnywhere-IPv4
リスナープロトコル,ポート: HTTPS/443
デフォルトアクション: ルートドメイン用のターゲットグループ
セキュリティカテゴリ: 全てのセキュリティポリシー
ポリシー名: 推奨のもの
証明書の取得先: ACMから
証明書(ACMから): 先ほど作成したACMを選択

# サブドメイン用のルールを追加
作成したALBの画面からルールを追加します。
![スクリーンショット 2024-10-13 10.24.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/d0f36333-36d6-7c3f-a52b-a85ec1dd89eb.png)

お好きな名前
![スクリーンショット 2024-10-13 10.25.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/c9bc1ff4-9bba-4068-a26e-8eb76c5ee36c.png)

条件を追加→ホストヘッダー
![スクリーンショット 2024-10-13 10.31.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/c080f182-eca2-e499-a1fb-042351894b7e.png)

サブドメインを入力
![スクリーンショット 2024-10-13 10.32.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/63054aa7-7c0c-5834-a9bf-b6810e2aab17.png)

ターゲットグループへ転送を選択
サブドメイン用のターゲットグループを選択して次へ
![スクリーンショット 2024-10-13 10.33.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/957278d8-5b7b-9997-6d8b-3c42c8a49270.png)

優先度はとりあえず2で作成
![スクリーンショット 2024-10-13 10.34.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/78f0f451-2547-269f-5049-2303af49df0f.png)

リソースマップで確認して以下のような感じになってればOK
80番ポートのリスナーがあった方が良いかも
![スクリーンショット 2024-10-13 10.36.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/339ef06b-3c6b-9e8f-46ed-1616dffab55f.png)
80番ポートのリスナーがあれば以下のようになる。
![スクリーンショット 2024-10-13 10.38.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/a5b90e75-4731-a7e5-40a0-24222ba07926.png)

追加する場合は「リスナーの追加」から以下のように設定
![スクリーンショット 2024-10-13 10.39.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/4b9372e1-51ae-506a-279b-d0d551de862c.png)


# Route 53にAレコード追加
Route 53 に戻ってAレコードの作成
画像の通り作成。ロードバランサーは先ほど作成したALBを選択
![スクリーンショット 2024-10-12 12.52.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/5f84d2b1-1133-691a-642b-148dc44772b7.png)

# サブドメイン作成
最初にドメインを作成した時と手順は変わりません。「hoge-site.com」というルートドメインに対してたとえば「web.hoge-site.com」というサブドメインを作成できます。
![スクリーンショット 2024-10-12 13.04.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/9685511b-4a6b-8292-2410-441040908101.png)

次にレコードを作成してAレコードとCNAMEをルートドメインと全く同じ設定にしてください
![スクリーンショット 2024-10-12 13.06.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/5cd84510-c938-4b14-687c-d3f19dfa5335.png)

最後に、このサブドメインのNSレコードの情報をルートドメインのNSレコードとして登録します。

![スクリーンショット 2024-10-12 13.16.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/facfe386-0d33-fb33-779c-090922fa8aca.png)

最終的にルートドメインには5つのレコードがあるはずです
![スクリーンショット 2024-10-12 13.19.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/d0a38761-900a-bef2-8268-b08dd0965e35.png)



# ECSにてサービス作成

最後にECSでサービスを作成する際のネットワーキングの箇所で
作成したALBを選択してターゲットグループを振り分ければサブドメインとECSを紐付けできる。
![スクリーンショット 2024-10-13 10.45.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/7456cc1b-b7cb-3ef1-ee96-2445a3800d7b.png)

![スクリーンショット 2024-10-13 10.47.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/1a50e5ea-cb57-60fe-32e1-fd2f68323bf2.png)