スマートワークロードリカバリ機能を使用したシステムはAPIやサービス異常により、切替えが中断される場合があります。切替えが中断された場合の対処方法について説明します。
注意
本対処方法で切替え中断の事象が解消されない場合は、調査用の情報を採取し、当社技術員(SE)までご連絡ください。調査情報の採取方法については、“PRIMECLUSTER 活用ガイド<トラブルシューティング編>”の“スマートワークロードリカバリ機能に関するトラブル情報収集”を参照してください。
切替えが中断された場合は、“A.3.2.1 エラーメッセージの確認”を参照し、エラーメッセージを確認してください。確認したメッセージの対処方法に従って、“A.3.2.2 インスタンスの状態に応じた復旧”または“A.3.2.3 切替え先AZの設定変更”を実施してください。
なお、切替え中断の対処は、AWSマネジメントコンソールを利用します。AWSマネジメントコンソールの操作手順については、AWSの公式ドキュメントを参照してください。
スマートワークロードリカバリ機能を使用したシステムの運用中に切替えが中断した場合、切替え中断に関したエラーメッセージをLambda関数のログから確認します。エラーメッセージの確認では、AWSマネジメントコンソールを使用し、以下の手順を実施します。
リージョン名が表示されたドロップダウンリストから、運用中のシステムが動作するリージョンを選択します。
Amazon CloudWatchサービスの管理画面を開き、サイドバーから“ログ”と表示されたドロップダウンリストの中から“ロググループ”を選択します。
画面に表示されたロググループの一覧から、運用中のシステムで使用しているLambda関数名が含まれた以下の形式のロググループ名を選択します。
/aws/lambda/<Lambda関数名>
“ログストリーム”ブロック内に表示されたログストリームの一覧から、運用中のシステムで切替え中断が発生した時刻付近のログが含まれた項目を選択します。該当のログが含まれているログストリームであるかどうかは、“Last event time”列に表示された時刻から確認してください。
画面に表示されたメッセージの一覧から、エラーメッセージを確認します。
“PRIMECLUSTER 活用ガイド<メッセージ集>”の“8.1.4 エラー(ERROR)メッセージ”を参照し、手順5で確認したエラーメッセージに従って、対処してください。
“A.3.2.1 エラーメッセージの確認”で確認したエラーメッセージの対処に従い、インスタンスの復旧が必要である場合、切替えが中断されたインスタンスを復旧します。インスタンスの復旧では、AWSマネジメントコンソールを使用し、以下の手順を実施します。
切替え元インスタンスを削除するため、AWSマネジメントコンソールを使用し、以下の手順を実施します。
Amazon EC2サービスの管理画面を開き、表示されたインスタンスの一覧に、切替え元インスタンスが存在しない、またはすでに切替え元インスタンスの状態が終了済(terminated)の場合、本手順は不要です。
切替え元インスタンスのタグ“fujitsu.pclswr.is_recovery_target”の値をfalseに設定します。
切替え元インスタンスを停止します。
インスタンスの状態が停止済み(stopped)の場合は、不要です。
手順2で停止した切替え元インスタンスのタグ“fujitsu.pclswr.id”のクラスタノードを識別する整数値を控えます。控えた整数値は、エラーメッセージから切替え元インスタンスのクラスタノードを識別する整数値を確認できない場合に“A.3.2.2.5 切替え先インスタンスの作成”で使用します。エラーメッセージから確認できる場合は、使用しません。
手順2で停止したインスタンスを終了します。
切替え先インスタンスの存在を確認するため、AWSマネジメントコンソールを使用し、エラーメッセージに「new_instance_id=<new_instance_id>」が含まれるか否かを確認し、以下のどちらかの手順を実施します。
エラーメッセージに「new_instance_id=<new_instance_id>」が含まれる場合
エラーメッセージに「new_instance_id=<new_instance_id>」が含まれない場合
エラーメッセージに「new_instance_id=<new_instance_id>」が含まれる場合
<new_instance_id>に記載された切替え先インスタンスのインスタンスIDの値に応じて、以下を実施してください。
<new_instance_id>の値がNone以外の場合
同じインスタンスIDのインスタンスが存在するかを確認します。
Amazon EC2サービスの管理画面を開き、サイドバーから“インスタンス”を選択します。
表示されたインスタンスの一覧から、“インスタンスID”列の中に切替え先インスタンスのインスタンスIDと同じインスタンスIDが存在するかを確認します。同じインスタンスIDが見つかった場合、切替え先インスタンスは存在します。
以下の表に従い、切替え先インスタンスの存在有無に応じた手順に進みます。
切替え先インスタンスの有無 | 次の手順 |
---|---|
切替え先インスタンスが存在する | “A.3.2.2.3 切替え先インスタンスの状態に応じた対処”に進んでください。 |
切替え先インスタンスが存在しない | “A.3.2.2.5 切替え先インスタンスの作成”に進んでください。 |
<new_instance_id>の値がNoneの場合
同じクラスタノードを識別する整数値のタグをもつインスタンスが存在するかを確認します。
Amazon EC2サービスの管理画面を開き、サイドバーから“タグ”を選択します。
<タグの管理>ボタンを選択します。
フィルタのドロップダウンリストで“インスタンス”が選択されていることを確認します。
表示されたインスタンスの一覧から、“fujitsu.pclswr.id”列の値が“A.2.3.1 クラスタノードのインスタンスの作成”で設定した、以下のタグと同じ値のインスタンスを確認し、“インスタンスID”列の値を控えます。
キー | 値 |
---|---|
fujitsu.pclswr.id | メッセージ中のsystem_idの値と同じ |
サイドバーから“インスタンス”を選択し、表示されたインスタンスの一覧から、“インスタンスID”列の中に手順4で控えたインスタンスIDと同じインスタンスIDが存在するかを確認します。同じインスタンスIDが見つかった場合、切替え先インスタンスは存在します。
下表に従い、切替え先インスタンスの存在有無に応じた手順に進みます。
切替え先インスタンスの有無 | 次の手順 |
---|---|
切替え先インスタンスが存在する | “A.3.2.2.3 切替え先インスタンスの状態に応じた対処”に進んでください。 |
切替え先インスタンスが存在しない | “A.3.2.2.5 切替え先インスタンスの作成”に進んでください。 |
エラーメッセージに「new_instance_id=<new_instance_id>」が含まれない場合
切替え先インスタンスは存在しません。
“A.3.2.2.5 切替え先インスタンスの作成”に進んでください。
“A.3.2.2.2 切替え先インスタンスの存在確認”で確認したインスタンスの状態を確認し、状態に応じた処置を実施します。手順を以下に示します。
切替え先インスタンスの状態を確認します。
AWSマネジメントコンソールからAmazon EC2サービスの管理画面を開き、表示されたインスタンスの一覧から“インスタンスの状態”列を確認します。
切替え先インスタンスの状態に応じた処置を実施します。
以下の表に従い、切替え先インスタンスの状態に応じた処置を実施します。
インスタンスの状態 | 処置内容 |
---|---|
終了済み(terminated) | 切替え先インスタンスが存在しないため、“A.3.2.2.5 切替え先インスタンスの作成”の手順1に進んでください。 |
実行中(running) | 切替え先インスタンスが正常に作成されているため、“A.3.2.2.5 切替え先インスタンスの作成”の手順2に進んでください。 エラーメッセージの<new_instance_id>から切替え先インスタンスのインスタンスIDを控えてください。 |
保留中(pending) | 切替え先インスタンスが正常に作成されていないため、“A.3.2.2.4 切替え先インスタンスの削除”に進んでください。 |
上記以外 | インスタンスの作成中に予期せぬ異常が発生した可能性があるため、調査情報を採取し、当社技術員(SE)に連絡してください。 なお、システムの切替えを急ぐ際は、調査情報を採取後、“A.3.2.2.4 切替え先インスタンスの削除”に進んでください。 調査情報の採取方法は、“PRIMECLUSTER 活用ガイド<トラブルシューティング編>”の“スマートワークロードリカバリ機能に関するトラブル情報収集”を参照してください。 |
切替え先インスタンスを削除するため、AWSマネジメントコンソールを使用し、以下の手順を実施します。
Amazon EC2サービスの管理画面を開き、サイドバーから“インスタンス”を選択します。
表示されたインスタンスの一覧から、インスタンスのチェックボックスにチェックを入れます。
“インスタンスの状態”のドロップダウンリストから“インスタンスを終了”を選択します。
切替え先インスタンスを作成するため、AWSマネジメントコンソールを使用し、以下の手順を実施します。
AMIから切替え先インスタンスを作成します。
“A.2.3.1 クラスタノードのインスタンスの作成”に従って、切替え先インスタンスを作成した後、インスタンスIDを控えます。この切替え先インスタンスのインスタンスIDは、手順2、“A.3.2.2.6 CloudWatchアラームの設定”、および“A.3.2.2.7 Amazon DynamoDBのテーブルの設定”の手順2で使用します。
ELBのターゲットグループを設定します。
切替え先インスタンスがすでにELBのターゲットグループに追加されている場合は、本手順は不要です。
ELBのターゲットグループに切替え先インスタンスのインスタンスIDを追加してください。
ターゲットグループの設定については、“A.2.3.2 ネットワーク引継ぎの設定”を参照してください。ただし、“A.2.3.2 ネットワーク引継ぎの設定”の手順1は実施せずに、すでにあるターゲットグループに追加してください。
“A.3.2.2.3 切替え先インスタンスの状態に応じた対処”の手順2で切替え先インスタンスのインスタンスIDを控えた場合、そのインスタンスIDをターゲットグループに追加します。
CloudWatchアラームを設定します。
切替え先インスタンスが、すでにCloudWatchアラームに設定されている場合は、本手順は不要です。
CloudWatchアラームのインスタンス名(InstanceID)に切替え先インスタンスのインスタンスIDを設定してください。
CloudWatchアラームの設定については、“A.2.4.3 CloudWatchアラームの設定”を参照してください。
“A.3.2.2.3 切替え先インスタンスの状態に応じた対処”の手順2で切替え先インスタンスのインスタンスIDを控えた場合、そのインスタンスIDをCloudWatchアラームに設定してください。
Amazon DynamoDBのテーブルを確認します。
テーブル“Fujitsu-Pclswr-DB-Switcher”に以下の項目があるかを確認します。
属性名 | 値 |
---|---|
SystemID | クラスタノードのインスタンスのタグ“fujitsu.pclswr.id”と同じ値 |
InstanceID | エラーメッセージに出力されている切替え元インスタンスの<instance_id>と同じ |
手順1の確認結果に応じて、Amazon DynamoDBのテーブルを更新します。
手順1で確認した項目が存在する場合
テーブル“Fujitsu-Pclswr-DB-Switcher”の手順1で確認した項目を更新します。
属性“InstanceID”の値を切替え先インスタンスのインスタンスIDに更新します。
“A.3.2.2.3 切替え先インスタンスの状態に応じた対処”で切替え先インスタンスのインスタンスIDを控えた場合、そのインスタンスIDを属性“InstanceID”に設定してください。
属性“State”の値がSWITCHINGの場合、属性“State”の値をNOT_SWITCHEDに更新します。
属性名 | 値 |
---|---|
SystemID | クラスタノードのインスタンスのタグ“fujitsu.pclswr.id”と同じ値 |
InstanceID | 切替え先インスタンスのインスタンスID |
State | NOT_SWITCHED |
手順1で確認した項目が存在しない場合
テーブル“Fujitsu-Pclswr-DB-Switcher”に以下の項目を追加します。“A.3.2.2.3 切替え先インスタンスの状態に応じた対処”で切替え先インスタンスのインスタンスIDを控えた場合、そのインスタンスIDを属性“InstanceID”に設定してください。
属性名 | 値 |
---|---|
SystemID | クラスタノードのインスタンスのタグ“fujitsu.pclswr.id”と同じ値 |
InstanceID | 切替え先インスタンスのインスタンスID |
State | NOT_SWITCHED |
“A.3.2.1 エラーメッセージの確認”で確認したエラーメッセージの対処に従い、AZの資源枯渇による切替え中断が発生した場合の対処を実施します。AZの資源枯渇が発生しているため、切替え先AZから資源枯渇が発生したAZのサブネットを外します。また、切替え先AZに資源枯渇が発生していないAZのサブネットを追加します。AWSマネジメントコンソールを使用し、以下の手順を実施します。
切替え元AZで“A.3.2.2.5 切替え先インスタンスの作成”に従って、インスタンスを作成します。
資源枯渇が発生しているAZの切替え先サブネットのタグ“fujitsu.pclswr.is_recovery_target”の値をfalseに変更します。
資源枯渇が発生しているAZの切替え先サブネットのタグ“fujitsu.pclswr.idlist”からクラスタノードを識別する整数値を控えます。クラスタノードを識別する整数値は、複数の値が指定されている場合もあります。この整数値は、手順4で使用します。
AZを切替え先として設定するため、サブネットの設定を実施します。
新たに切替え先のサブネットを追加する場合
“A.2.1 仮想システムの作成”に従って、切替え先のサブネットを含む仮想システムを作成します。作成したサブネットからAPIエンドポイントやEFSのマウントターゲットが使用できるように設定してください。
“A.2.3.2 ネットワーク引継ぎの設定”に従って、ネットワーク引継ぎを設定します。作成したサブネットでNLBやALBが使用できるように設定してください。
サブネットのタグ“fujitsu.pclswr.idlist”に手順3で控えたクラスタノードを識別する整数値を追加します。すでに追加されている場合、本手順は不要です。
サブネットのタグ“fujitsu.pclswr.is_recovery_target”をtrueに変更します。すでに変更されている場合、本手順は不要です。
すでに切替え先のサブネットがある場合
サブネットのタグ“fujitsu.pclswr.idlist”に設定されている値と手順3で控えたクラスタノードを識別する整数値をもとに、切替え先が複数のAZに設定されるように、切替え元および切替え先のサブネットのタグに設定するクラスタノードを識別する整数値を検討してください。
サブネットのタグ“fujitsu.pclswr.is_recovery_target”をtrueに変更します。
例
サブネットのタグ“fujitsu.pclswr.idlist”の設定では、以下を参考にしてください。
SubnetBのAZで資源枯渇が発生した場合の設定変更の例を以下に示します。
なお、SubnetA、SubnetB、およびSubnetCはそれぞれ異なるAZのサブネットです。
例1) 設定済のサブネットが1つだけある場合
SubnetBのタグ“fujitsu.pclswr.is_recovery_target”の値をfalseに変更し、SubnetCのタグ“fujitsu.pclswr.is_recovery_target”をtrueに変更します。
以下に変更前と変更後の設定値を示します。
サブネット名 | タグ“fujitsu.pclswr.idlist”の値 | タグ“fujitsu.pclswr.is_recovery_target”の値 |
---|---|---|
SubnetA | 1,2,3,4 | true |
SubnetB | 1,2,3,4 | true |
SubnetC | タグ“fujitsu.pclswr.idlist”の値 | false |
サブネット名 | タグ“fujitsu.pclswr.idlist”の値 | タグ“fujitsu.pclswr.is_recovery_target”の値 |
---|---|---|
SubnetA | 1,2,3,4 | true |
SubnetB | - | false |
SubnetC | 1,2,3,4 | true |
例2) 設定済のサブネットが2つ以上ある場合
SubnetBのタグ“fujitsu.pclswr.is_recovery_target”の値をfalseに変更します。
以下に変更前と変更後の設定値を示します。
サブネット名 | タグ“fujitsu.pclswr.idlist”の値 | タグ“fujitsu.pclswr.is_recovery_target”の値 |
---|---|---|
SubnetA | 1,3,4 | true |
SubnetB | 1,2,4 | true |
SubnetC | 2,3,4 | true |
サブネット名 | タグ“fujitsu.pclswr.idlist”の値 | タグ“fujitsu.pclswr.is_recovery_target”の値 |
---|---|---|
SubnetA | 1,2,3,4 | true |
SubnetB | - | false |
SubnetC | 1,2,3,4 | true |