Overview
- AWS Route53でドメイン取得
- とりあえずSESでメールアドレス確保して送受信環境構築
はじめに
具体的な構築はなるべくコマンドラインで記載していきます。
普段の業務ではGUIベースで構築することが多いので同じことをやりたくないだけで特に意味はありません。
使用ツール
AWS CloudShellという超絶便利なサービスがあるので活用していきます。
1.ドメイン取得
Route53でも取得可能ですが、今回はもともと購入していたドメインを活用します。
ホストゾーンを作成して連携させます。
2.ホストゾーン作成
aws-cli-v2
aws route53 create-hosted-zone --name "hogehoge.com" --caller-reference "hogehogehogehoge"
return
{
"Location": "https://route53.amazonaws.com/2013-04-01/hostedzone/XXXXXXXXXXXXXXXXXXXXX",
"HostedZone": {
"Id": "/hostedzone/XXXXXXXXXXXXXXXXXXXXX",
"Name": "hogehoge.com.",
"CallerReference": "hogehogehogehoge",
"Config": {
"PrivateZone": false
},
"ResourceRecordSetCount": 2
},
"ChangeInfo": {
"Id": "/change/XXXXXXXXXXXXXXXXXXXXX",
"Status": "PENDING",
"SubmittedAt": "YYYY-MM-DDT06:13:42.844000+00:00"
},
"DelegationSet": {
"NameServers": [
"ns-9999.awsdns-37.co.uk",
"ns-9999.awsdns-17.com",
"ns-9999.awsdns-20.net",
"ns-9999.awsdns-04.org"
]
}
}
外部レジストラーでドメインを取得した場合は、"NameServers"のレコードをレジストラー側のネームサーバー設定に置き換えます。
3.レコード登録
Jsonファイルを作っておいてCliで読み込ませる感じです。
試しにSESで生成された認証用のレコードを手動で登録してみました。
ここで詰まったのが、TXTレコードのValueをそのまま入れようとするとエラーで弾かれてしまいます。
FATAL problem: InvalidCharacterString (Value should be enclosed in quotation marks) encountered with XXXXX
その原因は入力する値自体が"値"である必要があるらしく、エスケープして入力する必要があります。
change-batch.json
{
"Comment": "SES",
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "_amazonses.hogehoge.com",
"Type": "TXT",
"TTL": 300,
"ResourceRecords": [
{
"Value": "\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\""
}
]
}
},
]
}
aws-cli-v2
aws route53 change-resource-record-sets --hosted-zone-id hogehogehogehoge --change-batch file://change-batch.json
return
{
"ChangeInfo": {
"Id": "/change/XXXXXXXXXXXXXX",
"Status": "PENDING",
"SubmittedAt": "YYYY-MM-DDT07:05:38.982000+00:00",
"Comment": "SES"
}
}
※SES側でドメイン作るときに自動でレコード登録してくれるので最後のレコード登録は不要です。なにかの参考にしていただければ幸いです。