各動作は Amazon Web Services より提供されている AWS CLI より実行されます。
起動処理 (restore)
- 以下のコマンドにて、Route53 の 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. の処理へ移行します。
- Route53 リソースと依存関係がある IP リソースから IP アドレスを取得します。
Route53 の A レコードで設定されている IP アドレスと IP リソースの IP アドレスを比較して一致した場合は、正常と判断して起動処理は成功で終了します。
一致しなかった場合は、次の項目3. の処理へ移行します。
- 以下のコマンドにて、Route53 の 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)
Route53 リソースに関する処理はありません。
監視処理 (quickCheck)
- 以下のコマンドにて、Route53 の 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. の処理へ移行します。
- Route53 リソースと依存関係がある IP リソースから IP アドレスを取得します。
Route53 の A レコードで設定されている IP アドレスと IP リソースの IP アドレスを比較して一致した場合は、正常と判断して起動処理は成功で終了します。
一致しなかった場合は、監視処理はエラーで終了します。
AWS CLI から応答がない場合は ROUTE53_QUICKCHECK_TIMEOUT の値(デフォルト値 : 25秒)でタイムアウトします。ただし、タイムアウトではリソース障害とは判断しません。
回復処理 (recover)
起動処理と同じ処理を実行します。
AWS CLI から応答がない場合は ROUTE53_RECOVERY_TIMEOUT の値(デフォルト値 : 140秒)でタイムアウトします。
Recovery Kit for Route53 のパラメーターについて
処理概要の中で使用されている Recovery Kit for Route53 のパラメーターについては、Route53パラメータ一覧 をご参照ください。
このトピックへフィードバック