以下を和訳してみた。日本語版が出るまでの参考にして頂きたい。
原文
またAPIは更新される事があるので、参考にしていただく際は編集日もご注意を。
分かりにくい点はご容赦を。
Amazon Route 53 DNSで設定しているDNS情報の作成、更新、削除のためにChangeResourceRecordSetsをつかう。以下のPOSTリクエストを送る。
2013-04-01/hostedzone/(Amazon Route 53 hosted zone ID)/rrset
リクエストのbodyにはChageResourceRecordSetsRequestエレメントで構成されるXMLドキュエントを持っている。リクエストのbodyには、変更するものの要素を含んでいる。変更一覧は処理の為の変更であると考えられる。リソースレコードセット変更の為にAmazon Route 53 APIをつかうときにAmazon Route 53変更がたくさん書いてあるリクエストにて全てへんこうするかもしくは全く変更しない。これは、部分て意図する処理が部分的にに変更されるのを避ける。
例えば、CNAMEレコードを削除する編集処理群リクエストを作成すること、そして「www.example.com」のエイリアスリソースレコードセットを作ることを考える。Amazon Route 53は最初のレコード一覧を削除して同じ処理で次のレコードセットを作成する。もし「削除」と「作成」のどちらかが失敗した場合、両方の処理(更に他の処理が有る場合はそれも)は失敗とされ、元のCNAMEの設定はそのままとなる。
NOTE
複雑な設定でResouceRecordSetを作る為に、AWSコンソールのRoute53のメニューか、APIのどちらでも使える。AWSコンソールのRoute53メニューで設定を保存する場合、「example.com」といったドメインを複数管理できるし、「www.example.com」といったサブドメインも同じhosted zone内もしくは別のhosted zoneにて管理できる。加えて、設定が予期した動きより上手く行かない場合は修正をロールバックもできる。その他にAmazon Route53 API ReferenceのUsing Traffic Flow to Route DNS Trafficとこのドキュメント内のActions on Traffic Policies and Traffic Policy Instanceを参照とする。
以下のオペレーションをするにあたり「ChangeResourceRecordSetsRequest」を使うことができる。
- CREATE:指定した値のレコードセットを作る
- DELETE:存在するレコードセットを削除する。その場合、Name、Type、SetIdentifier(レイテンシー、重さ、位置情報そしてフェールオーバー時のリソースレコードセットのためのもの)、そしてTTL(aliasの場合は除く。DNSクエリの参照経路を決定するものとして決められる情報である)といった阿多を指定する。
- UPSET:もしレコードセットが存在してない場合は作成する。もし存在している場合は、リクエストの値をもとにアップデートを行う。Route53はNAME、TYPE、SetIdentifier(レイテンシー、重さ、位置情報そしてフェールオーバー時のリソースレコードセットのためのもの)がマッチするもの全てをアップデートすることができる。
ChangeResourceRecordSetsリクエストを送信したとき、変更処理の最初のステータスがPENDINGとなる。これは、全てのAmazonRoute 53にあるDNSサーバに変更処理が伝わっていないことを意味する。変更処理の伝播が終わったとき、Amazon Route 53は「INSYNC」ステータスを返す。
変更リクエストを送った後、全てのAmazon Route 53のネームサーバへ完全に伝播したことを確認することを進める。通常数分で全てのAmazon Route 53のネームサーバへ広がる。まれに、この拡散が30分かかることもある。更に情報が必要な場合は「GET GetChange」を参照す
ChageResourceRecordSetsリクエストには以下のような制限が有る。
- 100以上の要素を一度に変更できない。
- 1000以上のレコードをもてない。
- リクエストの全value要素の文字数(スペースも含む)は32000までとする。
NOTE
ChangeResourceRecordSetsリクエストのAction要素に値がUPSERTであり、リソースレコードセットが存在しているならば、Amazon Route53は自動的にDELETEリクエストとCREATEリクエストを行う。Amazon Route 53は編集処理リクエストのValueエレメントの文字数を計算するとき、削除されるリソースレコードセットのvalue要素と作成されるリソースレコードセットのvalue要素を合計します。 - 一つの処理内で同じレコードセットを削除することはできない。