■対象製品
LifeKeeper for Linux
■対象バージョン
バージョン v9.3.0 未満
v9.3.0 以降の Route53 Recovery Kit の処理概要については、以下のマニュアルページをご参照ください。
https://docs.us.sios.com/spslinux/9.7.0/ja/topic/route53-operations-overview
概要
Route53 Recovery Kit が提供する監視機能と起動処理、停止処理、リカバリ処理についてご説明します。
各動作は Amazon EC2 より提供されている AWS CLI より実行されます。
注意
※本処理概要は LifeKeeper for Linux v9.2.2 に付属するリカバリキットをもとに作成しています。
Recovery Kitの詳細については、以下ドキュメントサイトより
アプリケーションリカバリーキット → 「Route53 Recovery Kit 管理ガイド」
をご参照ください。
https://support.us.sios.com/aspx/jpdocs_us_sios_com_home/#LinuxProductshttp://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 のチューニング」を参照ください。
「AWS Direct Connect 接続クイックスタートガイド」にも同様の記載がございます。
改訂履歴
[公開日:2018年5月8日]
[改訂日:2025年3月31日] v9.3.0 以降の処理概要についてはマニュアル掲載となる旨を追記