[Linux] Route53 Recovery Kit 処理概要

Route53 Recovery Kit が提供する監視機能と起動処理、停止処理、リカバリ処理についてご説明します。
各動作は Amazon EC2 より提供されている AWS CLI より実行されます。
 
 
対象製品
Route53 Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.2.2 に付属するリカバリキットをもとに作成しています。

Recovery Kitの詳細については、以下ドキュメントサイトより
アプリケーションリカバリーキット → 「Route53 Recovery Kit 管理ガイド」
をご参照ください。

http://jpdocs.us.sios.com/#SPS4L
 
 
監視処理
/etc/default/LifeKeeper 内の LKCHECKINTERVAL で設定されている間隔で監視を実行します。
(デフォルト値は120秒です)

(1) 以下コマンドにて、Route53 の Aレコードで設定されているIPアドレスを AWS CLI で取得します。
  取得に失敗した場合は、ROUTE53_RECORDCHECK_INTERVAL の値の間隔で3回リトライされます。
  (デフォルト値:2秒)
 

      aws route53 --output text list-resource-record-sets --hosted-zone-id $self->{'ZoneID'} --query \"ResourceRecordSets[?Name == \'$self->{'FQDN'}.\']\"|tr '\n' '\t' 2>&1

  取得できなかった場合は、AWS CLIからの応答がないと判断し監視処理を終了します。
  取得できた場合は、(2) へ進みます。

(2) Route53 リソースと依存関係がある IP リソースから IP アドレスを取得します。
  Route53 の Aレコードで設定されている IPアドレスと IPリソースの IPアドレスを比較し一致した場合、
  正常と判断して処理を正常終了します。

チェック時に AWS CLI から応答が無い場合は ROUTE53_QUICKCHECK_TIMEOUT の値でタイムアウトします。
(デフォルト値:25秒)

ただしタイムアウトではリソース障害とは判断致しません。
Route53 の Aレコードで設定されている IPアドレスと IPリソースの IPアドレスを比較し、一致しなかった場合、
異常と判断しリソース障害となります。
 
 
起動処理
(1) 以下コマンドにて、Route53 の Aレコードに設定されているIPアドレスを AWS CLI で取得します。
  取得に失敗した場合は、ROUTE53_RECORDCHECK_INTERVAL の値の間隔で3回リトライされます。
  (デフォルト値:2秒)
 

      aws route53 --output text list-resource-record-sets --hosted-zone-id $self->{'ZoneID'} --query \"ResourceRecordSets[?Name == \'$self->{'FQDN'}.\']\"|tr '\n' '\t' 2>&1

  取得できなかった場合は、AWS CLIからの応答がないと判断し起動処理を終了します。
  取得できた場合は、(2) へ進みます。

(2) Route53 リソースと依存関係がある IP リソースから IP アドレスを取得します。
  Route53 の Aレコードで設定されている IPアドレスと IPリソースの IPアドレスを比較し、
  一致した場合、正常と判断し処理を正常終了します。

  (1)で取得したIPアドレスと、IPリソースのIPアドレスが一致した場合は、既に正しいIPアドレスがAレコードに
  登録済みと判断し起動処理を正常終了します。
  一致しなかった場合は、(3) へ進みます。

(3) 以下コマンドにて、Route53 の Aレコードを更新します。何も設定されていない場合は、Aレコードを新規作成します。
  更新および作成に失敗した場合は、ROUTE53_RECORD_INTERVAL の値の間隔で2回リトライされます。
  (デフォルト値:2秒)
 

      aws route53 --output text change-resource-record-sets --hosted-zone-id $self->{'ZoneID'} --change-batch '$upsertJSON' 2>&1

  更新および作成に失敗した場合は、異常と判断し起動処理を終了します。
  成功した場合は、(4)へ進みます。

(4) 以下コマンドにて、Aレコードの更新、新規作成処理のステータスが”INSYNC”となっていることを確認します。
  INSYNCとなっていない場合は、ROUTE53_CHANGEID_INTERVAL の値の間隔で4回リトライされます。
  (デフォルト値:20秒)
 

      aws route53 --output text get-change --id /change/$self->{'changeId'} 2>&1

  INSYNCとならなかった場合は、異常と判断し起動処理を終了します。
  INSYNCとなった場合は、(5)へ進みます。

(5) 再度、(1)と同様の処理を行います。

(6) 再度、(2)と同様の処理を行います。

  (5)で取得したIPアドレスと、IPリソースのIPアドレスが一致した場合は、正しいIPアドレスがAレコードに
  登録できたと判断し起動処理を正常終了します。
  一致しなかった場合は、リソース起動に失敗し起動処理が異常終了します。

Route53 CLI から応答が無い場合は ROUTE53_RESTORE_TIMEOUT の値でタイムアウトします。
(デフォルト値は140秒です)
 
 
停止処理
Route53 リソースに関する処理は何も行いません。
 
 
回復処理
起動処理と同じ処理を実行します。

Route53 CLI から応答が無い場合は ROUTE53_RECOVERY_TIMEOUT の値でタイムアウトします。
(デフォルト値は140秒です)
 
 
パラメータ
各パラメータは「Route53 Recovery Kit」のドキュメント内の「Recovery Kit for EC2 のチューニング」を参照ください。

Route53 Recovery Kit のチューニング

「AWS Direct Connect 接続クイックスタートガイド」にも同様の記載がございます。

Route53 リソースのチューニング項目



改訂履歴
[公開日:2018年5月8日]

return top