AWS CLI を使って Amazon Route 53 に簡単なリソースレコードセットを作成するにはどうすればよいですか?

所要時間2分
0

 AWS コマンドラインインターフェース (AWS CLI) を使って Amazon Route 53 にシンプルなリソースレコードセットを作成したいと考えています。

解決策

リソースレコードセットの作成、削除、変更 (upsert) を行うには、Route 53 API への ChangeResourceRecordsets リクエストを使用してください。

注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使っているかどうかを確認してください

ChangeResourceRecordSets リクエストを作成します

ChangeResourceRecordsets リクエストを使用すれば、次のアクションを実行することができます:

  • CREATE(作成): 指定された値のレコードセットをホストゾーンに作成します。
  • **DELETE(削除):**指定された値のレコードセットをホストゾーンから削除します。
  • UPSERT(アップサート): 指定された値の新しいレコードセットを作成します。または、そのレコードセットが既に存在する場合は、レコードセットは指定された値で更新されます。

シンプルなレコードセット A の作成、削除、変更する手順を、以下の JSON ファイル例 (sample.json) を修正することで示します。リクエスト本文には、変更バッチと呼ばれる変更項目のリストが含まれています:

{
            "Comment": "CREATE/DELETE/UPSERT a record ",
            "Changes": [{
            "Action": "CREATE",
                        "ResourceRecordSet": {
                                    "Name": "a.example.com",
                                    "Type": "A",
                                    "TTL": 300,
                                 "ResourceRecords": [{ "Value": "4.4.4.4"}]
}}]
}

ホストゾーンでドメインのリソースレコードセットを作成するには、Route 53 API と change-resource-record-sets コマンドを使用します。sample.json ファイルには、レコード作成用の値が指定されています:

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.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"
    }
}

PENDING(保留中)の ステータスを指定しても Id が表示されない場合は、JSON ファイルにエラーがあります。

変更ステータスを確認するには、change-resource-record-sets レスポンスの Id 値を指定して API コール get-change を実行します:

  • PENDING(保留中) は、このリクエスト内の変更がまだ必ずしもすべての Route 53 DNS サーバーに伝播されていないことを示しています。こちらはすべての変更バッチリクエストの初期ステータスです。
  • INSYNC は、変更がすべての Route 53 DNS サーバーに伝播されたことを示しています。

伝播前である PENDING(保留中)の ステータスを次に示します:

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"
    }
}

伝播後である INSYNC ステータスを次に示します:

$ 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"
    }

同時リクエストを作成

同時リクエストごとに、独立したアクションキーを使用する必要があります。例えば、1 回のリクエストでレコード A と レコード MX を作成することはできません。代わりに、同じドメイン名に対して 2 つのレコードセットを、それぞれ以下の構文の 1 つで作成する必要があります:

{
                "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 を使って Route 53 リソースレコードセットを作成するときに受信したエラーのトラブルシューティングはどのように行えばよいですか?

コメントはありません

関連するコンテンツ