AWS コマンドラインインターフェイス (AWS CLI) を使用して Amazon Route 53 でシンプルなリソースレコードセットを作成するにはどうすればよいですか?
簡単な説明
Route 53 API への ChangeResourceRecordSets リクエストを使用して、リソースレコードセットを作成 、削除、または変更 (upsert) できます。
解決方法
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
ChangeResourceRecordSets リクエストを作成する
ChangeResourceRecordSets リクエストを使用すると、次のアクションを実行できます。
- CREATE は、ホストゾーンに指定された値を持つレコードセットを作成します
- DELETE は、ホストゾーン内の指定された値を持つレコードセットを削除します
- UPSERT は、指定された値を持つ新しいレコードセットを作成するか、そのレコードセットがすでに存在する場合は、指定された値でレコードセットを更新します
次のサンプルの JSON ファイル (sample.json) を変更して、シンプルな A レコードセットを作成、削除、または変更します。リクエストの本文には、変更バッチと呼ばれる変更アイテムのリストが含まれます。
{
"Comment": "CREATE/DELETE/UPSERT a record ",
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{ "Value": "4.4.4.4"}]
}}]
}
change-resource-record-sets コマンドを用いて Route 53 API を使用して、ホストゾーンでドメインのリソースレコードセットを作成します。sample.json ファイルは、レコード作成の値を指定します。
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json
JSON ファイルにエラーがない限り、PENDING というステータスは一意の ID で返されます。
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXX --change-batch file://sample.json
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
}
get-change API 呼び出しを、change-resource-record-sets の応答の Id 値とともに使用して、変更のステータスを確認します。
- PENDING は、このリクエストの変更がまだすべての Route 53 DNS サーバーに伝達されていないことを示します。これは、すべての変更バッチリクエストの初期ステータスです。
- INSYNC は、変更がすべての Route 53 DNS サーバーに伝達されることを示します。
伝達前:
aws route53 get-change --id /change/C3QYC83OA0KX5K
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
}
伝達後:
$ aws route53 get-change --id /change/C3QYC83OA0KX5K
{
"ChangeInfo": {
"Status": "INSYNC",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
同時リクエストを作成する
同時リクエストごとに個別の Action キーを使用する必要があります。例えば、A レコードと MX レコードを 1 つのリクエストで作成することはできません。代わりに、次の形式を使用して、同じドメイン名に対して 2 つのレコードセットを作成する必要があります。
{
"Comment": "CREATE/DELETE/UPDATE",
"Changes": [ {
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "5.5.5.5"}]
}},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "MX",
"TTL": 300,
"ResourceRecords": [{"Value": "10 example.com"}]
}}
]
}
関連情報
AWS CLI を使用して Amazon Route 53 のリソースレコードセットを作成するときのエラーをトラブルシューティングするにはどうすればよいですか?