各動作はAmazon Web Servicesより提供されているAWS CLIより実行されます。
起動処理(restore)
- 以下のコマンドにて、Route 53のAレコードに設定されているIPアドレスをAWS CLIで取得します。
# aws --output text --cli-connect-timeout AWSCLI_CONNECT_TIMEOUT --cli-read-timeout AWSCLI_READ_TIMEOUT route53 list-resource-record-sets --hosted-zone-id $zoneId --query \"ResourceRecordSets[?Name == \'$fqdn.\']\" 2>&1
上記コマンドの実行に失敗した場合は、起動処理はエラーで終了します。
上記コマンドの実行に成功した場合は、次の項目2. の処理へ移行します。
- Route 53リソースと依存関係があるIPリソースからIPアドレスを取得します。
Route 53のAレコードで設定されているIPアドレスとIPリソースのIPアドレスを比較して一致した場合は、正常と判断して起動処理は成功で終了します。
一致しなかった場合は、次の項目3. の処理へ移行します。
- 以下のコマンドにて、Route 53のAレコードを更新します。何も設定されていない場合は、Aレコードを新規作成します。
# aws --output text --cli-connect-timeout AWSCLI_CONNECT_TIMEOUT --cli-read-timeout AWSCLI_READ_TIMEOUT route53 change-resource-record-sets --hosted-zone-id $zoneId --change-batch \'$upsertJSON\' 2>&1
更新および作成に失敗した場合は、異常と判断し起動処理はエラーで終了します。
成功した場合は、次の項目4. の処理へ移行します。
- 以下のコマンドにて、Aレコードの更新、新規作成処理のステータスが“INSYNC”となっていることを確認します。
INSYNCとなっていない場合は、ROUTE53_CHANGEID_INTERVALの値(デフォルト値:20秒)の間隔でで最大でROUTE53_CHANGEID_TRY_COUNTの値(デフォルト値:5回)の回数実施します。
# aws --output text --cli-connect-timeout AWSCLI_CONNECT_TIMEOUT --cli-read-timeout AWSCLI_READ_TIMEOUT route53 get-change --id /change/$changeId 2>&1
INSYNCとならなかった場合は、異常と判断し起動処理はエラーで終了します。
INSYNCとなった場合は、次の項目5. の処理へ移行します。
- 再度、項目1. と同様の処理を行います。
- 再度、項目2. と同様の処理を行います。
前の項目5. で取得したIPアドレスとIPリソースのIPアドレスが一致した場合は、正しいIPアドレスがAレコードに登録できたと判断し起動処理は成功で終了します。
一致しなかった場合は、起動処理はエラーで終了します。
AWS CLIから応答がない場合はROUTE53_RESTORE_TIMEOUTの値(デフォルト値:140秒)でタイムアウトします。
停止処理(remove)
Route 53リソースに関する処理はありません。
監視処理(quickCheck)
- 以下のコマンドにて、Route 53のAレコードに設定されているIPアドレスをAWS CLIで取得します。
# aws --output text --cli-connect-timeout AWSCLI_CONNECT_TIMEOUT --cli-read-timeout AWSCLI_READ_TIMEOUT route53 list-resource-record-sets --hosted-zone-id $zoneId --query \"ResourceRecordSets[?Name == \'$fqdn.\']\" 2>&1
上記コマンドの実行に失敗した場合は、監視処理はエラーで終了します。
上記コマンドの実行に成功した場合は、次の項目2. の処理へ移行します。
- Route 53リソースと依存関係があるIPリソースからIPアドレスを取得します。
Route 53のAレコードで設定されているIPアドレスとIPリソースのIPアドレスを比較して一致した場合は、正常と判断して起動処理は成功で終了します。
一致しなかった場合は、監視処理はエラーで終了します。
AWS CLIから応答がない場合はROUTE53_QUICKCHECK_TIMEOUTの値(デフォルト値:25秒)でタイムアウトします。ただし、タイムアウトではリソース障害とは判断しません。
回復処理(recover)
起動処理と同じ処理を実行します。
AWS CLIから応答がない場合はROUTE53_RECOVERY_TIMEOUTの値(デフォルト値:140秒)でタイムアウトします。
Recovery Kit for Route 53のパラメーターについて
処理概要の中で使用されているRecovery Kit for Route 53のパラメーターについては、Route53パラメータ一覧 をご参照ください。
このトピックへフィードバック