2
1

ECSブルーグリーンデプロイメントをゼロから構築する。(その2:ドメイン、証明書設定)

Last updated at Posted at 2023-11-04

はじめに

ECSを使ったブルーグリーンデプロイメントを行うため、前回はブルーグリーンデプロイメント自体の説明とネットワークの設定を行いました。

今回は、ブルーグリーンデプロイメントの設定とは少し離れますが、付随するドメインや証明書の設定を行っていきます。

ドメインの登録

AWSで外部に公開するELBのようなサービスの場合、特に独自ドメインを取得しなくても、リソース作成時にAWS側で自動でDNS名が付与されますが、通常そのまま使用することはせず、独自ドメイン名でアクセスできるようにするのが一般的です。

AWSから直接ドメイン名を購入して設定することもできますが、私は「お名前.com」で購入したドメインを持っているため、サブドメインをAWSRoute53で管理できるようにお名前.comから委任して使用できるようにしたいと思います。

以下参考例。

dns.png

ホストゾーンの作成

取得済みドメインを使用するため、Route53でパブリックホストゾーンを作成します。

Route 53」のダッシュボードから「ホストゾーン」→「ホストゾーンの作成」で新たにホストゾーンを作成します。

Monosnap_20231103_161935.png

今回は、委任されたサブドメインを管理するため、以下表のように設定しました。

Monosnap_20231103_162545.png

項目 設定 備考
ドメイン名 aws.example.com 今回は「aws」というサブドメインとした。
example.comの部分は自環境に合わせて設定。
説明 空欄 今回は未設定
タイプ パブリックホストゾーン
タグ 空欄 今回は未設定

ホストゾーン作成後、自動で登録されているNSレコードの値を控えておきます。

Monosnap_20231103_183949.png

お名前.com側DNSサーバへのレコード登録

委任元となるお名前.comのDNSサーバに、委任先となるAWSの情報を登録するため、お名前.comの管理画面となる、「お名前.com Navi」にログインし、「ネームサーバーの設定」→「ドメインのDNS設定」を選択します。

Monosnap_20231103_180932.png

下画像はマスクしているため、何も書かれていないように見えますが、登録されているドメイン名が表示されるため、レコード登録を行うドメイン名を選択し、「次へ」進みます。

Monosnap_20231103_181022.png

DNSレコード設定を利用する」の「設定する」を選択します。

Monosnap_20231103_181105.png

以下もドメイン部分をマスクしているため見にくいですが、マスクしている箇所にexample.comのようにドメイン名が記載されているため、先程控えたAWS側のNSレコードを1行ずつ赤枠部分に入力して「追加」ボタンで追加します。

また、TTLについては以下AWSのドキュメントに従い、900に指定しています。

なお、Route53のNSレコードは、レコードの最後に「.(ドット)」が含まれていますが、ドットを指定するとエラーとなるため、最後のドットのみ削除して登録してください。

指定するホスト名についてはサブドメイン部分のみ記載すれば良いので、今回の場合、awsと指定します。

AWS側NSレコードは4つありますが、4レコードともに同じホスト名指定でOKです。

Monosnap_20231103_180616.png

しばらく経った後、dignslookup等でサブドメインを確認すると以下のようにAWS側のDNSの値が返されることが確認できるかと思います。

サブドメインのdig表示例
dig NS aws.example.com

; <<>> DiG 9.10.6 <<>> NS aws.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57775
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;aws.aws.example.com.	IN	NS

;; ANSWER SECTION:
aws.example.com.	900	IN	NS	ns-1959.awsdns-52.co.uk.
aws.example.com.	900	IN	NS	ns-581.awsdns-08.net.
aws.example.com.	900	IN	NS	ns-504.awsdns-63.com.
aws.example.com.	900	IN	NS	ns-1427.awsdns-50.org.

;; ADDITIONAL SECTION:
ns-504.awsdns-63.com.	78005	IN	A	205.251.193.248
ns-581.awsdns-08.net.	85911	IN	A	205.251.194.69
ns-1427.awsdns-50.org.	853		IN	A	205.251.197.147
ns-1959.awsdns-52.co.uk. 67702	IN	A	205.251.199.167
ns-504.awsdns-63.com.	84620	IN	AAAA	2600:9000:5301:f800::1
ns-581.awsdns-08.net.	85984	IN	AAAA	2600:9000:5302:4500::1
ns-1427.awsdns-50.org.	86224	IN	AAAA	2600:9000:5305:9300::1
ns-1959.awsdns-52.co.uk. 67702	IN	AAAA	2600:9000:5307:a700::1

;; Query time: 54 msec
;; SERVER: 192.168.151.1#53(192.168.151.1)
;; WHEN: Fri Nov 03 18:56:14 JST 2023
;; MSG SIZE  rcvd: 356

ACM証明書の発行

ドメインの登録ができたので、次はHTTPS通信用のSSL証明書を発行しておきます。

AWS Certificate Manager (ACM)」の「証明書をリクエスト」より「パブリック証明書をリクエスト」を選択し、「次へ」進みます。

Monosnap_20231103_192806.png

以下よりリクエストするパブリック証明書の情報を記入していきますが、今回は委任されたサブドメイン全体を保護するワイルドカード証明書で登録を行います。

ワイルドカード証明書で発行することで、www.aws.example.comapi.aws.example.comのようなaws.example.com配下のドメイン全体を1つの証明書でカバーできます。

但し、ワイルドカード証明書で発行した場合、以下AWSのドキュメントより、aws.example.com自体は保護されないそうで、aws.example.com自体も保護したい場合は追加でaws.example.comも登録する必要があります。

画面上では以下のように設定することで*.aws.example.comaws.example.comを登録することができます。

Monosnap_20231103_193652.png

上記ドメイン名の設定含め、今回は以下表のように設定を行いリクエストを行いました。

項目 設定 備考
完全修飾ドメイン名1 *.aws.example.com 自分のドメイン名に合わせて設定
完全修飾ドメイン名2 aws.example.com 自分のドメイン名に合わせて設定
検証方法 DNS検証 環境に合わせて任意に設定
キーアルゴリズム RSA 2048 今回はテストなのでデフォルトのまま指定
タグ 空欄 今回は未設定

CNAMEの登録

ACM証明書作成後、ステータスを見ると以下のように「保留中の検証」と表示されているかと思いますので、「証明書ID」を選択して詳細画面に移ります。

Monosnap_20231103_200934.png

詳細画面の「ドメイン」→「Route 53でレコードを作成」で、先程登録したドメインのCNAMEを登録します。

Monosnap_20231103_201139.png

少し待つとステータスが変わるので、「発行済み」になれば完了です。

Monosnap_20231103_202027.png

おわりに

今回はブルーグリーンデプロイメントとは少し外れましたが、外部からアクセスするためのドメイン、証明書の準備を行いました。

次回もブルーグリーンデプロイメントの設定を行う前に設定しておく必要があるリソースの作成や、Fargateで使用するコンテナイメージを作成していきたいと思います。

2
1
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
2
1