1. システムとオフィスの融合
  2. media
  3. AWS
  4. EC2のAuto Recovery設定を整理してみた

QESブログ

EC2のAuto Recovery設定を整理してみた

AWS
  • LINEで送る
  • このエントリーをはてなブックマークに追加
みなさん、こんにちは。
システムソリューション営業本部 矢口と申します。

AWS における EC2 は AWS が提供している仮想サーバーホストマシン上で稼働しています。本仮想サーバーホストマシンやAWSの管理する環境で障害が発生した場合、EC2 が異常となり継続利用できなくなってしまいます。

AWS ではこの異常を検知し、EC2を正常な状態に復帰させるための仕組みを Auto Recovery として提供しています。
本記事では2つある方式の特徴や、Auto Recovery 実行時の通知設定などについて整理したいと思います。

1. Auto Recovery の種類

2022/12現在、Auto Recoveryの種類は2種類あります。
従来から存在している方式が「Amazon CloudWatch アクションに基づく復旧」方式。
2022/03にAWSのアップデートにより追加された方式として「インスタンス構成に基づく簡易自動復旧」方式となります。
https://aws.amazon.com/jp/about-aws/whats-new/2022/03/amazon-ec2-default-automatic-recovery/

方式として 2 種類ありますが、いずれの方式を選択したとしても EC2 が復旧される結果についての差異はありません。
細かい設定は AWS ドキュメントをご参照ください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-recover.html

2. 各方式の特徴

2種類の Auto Recovery 方式ではそれぞれ次のような特徴があります。

項目 【従来方式】
CloudWatch アクション
【追加された方式】
インスタンス構成
関連するAWSリソース CloudWatch ( メトリクス, アラーム )
SNS
EC2
SNS
EventBridge
特徴 設定対象の EC2 が増えるごとに CloudWatch アラームを追加設定が必要となるため運用の手間が発生する。 EC2 の設定項目として盛り込まれているので設定は簡単。
ただし、通知設定を別途 EventBridge を利用して設定が必要となる。
選定基準 従来稼働済みの EC2 に対して CloudWatch アラームを作成済みであれば、そのまま継続利用してもよい。

ただし、下記 2 点のことを考慮すると「インスタンス構成に基づく簡易自動復旧」に寄せる方が運用の手間を削減できるのでお勧め。
  • EC2 が増えるごとに CloudWatch アラーム追加設定の運用が必要。
  • 「インスタンス構成に基づく簡易自動復旧」と混在させると、どちらの方式を適用しているかわからずに管理が煩雑となる点は注意。
今後新規に構築するEC2であれば、EC2以外の新規リソース作成が不要な本方式が推奨。

EC2個別にアクション結果の通知設定が必要なら、新規リソースとして EventBridge の設定が必要。

 

3. 2つの方式を設定している場合の影響は? 

2022/03のアップデート時点で「Amazon CloudWatchアクションに基づく方式」を設定している EC2 は「インスタンス構成に基づく簡易自動復旧」の設定もされている二重設定の状態となっています。

この場合、「どっちの方式が優先して実行されるの?」 「それぞれの方式が実行されて複数回再起動されるのでは?」といった不安があるかと思います。
そこで、2つの方式を設定している場合にどのような動作をするのか AWS サポートへ問い合わせてみました。
回答としては、「2つの方式を設定していても複数回実行されないようになっている。ただし、どちらが実行されるかは不定」との回答を受けました。
※ 公式ドキュメントとして明記されている情報ではないので、不安な方は AWS サポートへ問い合わせいただくのがおすすめです。

どちらが実行されるかが不定であるため、Auto Recovery の実行を検知したい!! といった場合には、双方の方式に従い通知設定をしておかなければ、通知自体を検知できない、といった懸念があります。
そのため、EC2 の運用担当者がどちらの方式を採用するのかを明確に決めて、その方式の設定をすることが推奨となります。

4. Auto Recoveryの通知設定

従来の「Amazon CloudWatch アクションに基づく復旧」方式では、CloudWatch アラーム設定の一環で通知設定が可能です。

なので、本項目では「インスタンス構成に基づく簡易自動復旧」方式での通知設定について掘り下げます。
通知設定は EventBridge ルールを使用することで、設定することができます。

成功、失敗でそれぞれイベントが分かれています。
  • AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS ― 成功したイベント
  • AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_FAILURE ― 失敗したイベント

アカウント内で発生した Auto Recovery 実行すべてを通知したい場合

アカウント内を管理している管理者がすべての通知を把握したい場合には本設定を実施します。そのうえで、通知を受信したい SNS トピックを通知先として指定します。
{
  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": {
    "service": ["EC2"],
    "eventTypeCategory": ["accountNotification"],
    "eventTypeCode": ["AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_FAILURE", "AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS"]
  }
}

アカウント内で発生した特定 EC2 の Auto Recovery 実行を通知したい場合

アカウント内で特定の通知を把握したい場合にはすべての通知設定に加え「resources」の指定を追加します。そのうえで、通知を受信したい SNS トピックを通知先として指定します。
{
  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": {
    "service": ["EC2"],
    "eventTypeCategory": ["accountNotification"],
    "eventTypeCode": ["AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_FAILURE", "AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS"]
  },
  "resources": ["i-xxxxxxxxxxxxxxxxx"]
}
 
実際の EventBridge ルール設定画面は下記イメージとなります。

 

SNS経由で通知されるサンプルはこのようなメッセージとなります。 ( ※ 2022/12 時点で発生したサンプルです。東京リージョンにて設定した場合の通知となります。 )
{"version":"0","id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","detail-type":"AWS Health Event","source":"aws.health","account":"xxxxxxxxxxxx","time":"YYYY-MM-DDThh:mm:ssZ","region":"ap-northeast-1","resources":["i-xxxxxxxxxxxxxxxxx"],"detail":{"eventArn":"arn:aws:health:ap-northeast-1::event/EC2/AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS/AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESSxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","service":"EC2","eventTypeCode":"AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS","eventTypeCategory":"accountNotification","startTime":"Week, DD Month YYYY hh:mm:ss GMT","eventDescription":[{"language":"en_US","latestDescription":"One of your Amazon EC2 instances associated with your AWS account in the ap-northeast-1 Region was successfully recovered after a failed System status check. \\n\\nThe Instance ID is listed in the 'Affected resources' tab.\\n\\n* What do I need to do?\\nYour instance is running and reporting healthy. If you have startup procedures that aren't automated during your instance boot process, please remember that you need to log in and run them.\\n\\n* Why did Amazon EC2 auto recover my instance?\\nYour instance was configured to automatically recover after a failed System status check. Your instance may have failed a System status check due to an underlying hardware failure or due to loss of network connectivity or power. \\n\\nPlease refer to https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#auto-recovery-configuration for more information.\\n\\n* How is the recovered instance different from the original instance?\\nThe recovered instance is identical to the original instance, including the instance ID, private IP addresses, public IP address, Elastic IP addresses, attached EBS volumes and all instance metadata. The instance is rebooted as part of the automatic recovery process and the contents of the memory (RAM) are not retained.\\n\\nYou can learn more about Amazon EC2 Auto Recovery here: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html\\n\\nIf you have any questions or concerns, you can contact the AWS Support Team on the
community forums and via AWS Premium Support at: https://aws.amazon.com/support"}],"affectedEntities":[{"entityValue":"i-xxxxxxxxxxxxxxxxx"}]}}


5. その他

Auto Recovery設定の動作確認はテストする手段が存在しません。
そのため、設定内容が正しく動作するかは実際に Auto Recovery が動作する状況を待つ必要がある点にご注意ください。

6. おわりに

今回は、2つある Auto Recovery 方式の特徴や、Auto Recovery 実行時の通知設定などについて整理してみました。
「インスタンス構成に基づく簡易自動復旧」は EC2 内の設定のみで完了するためとても便利ですが、通知のためには個別に追加設定が必要なのでご注意ください。

また、よろしければ以下のリンクもご覧ください!

<QES関連ソリューション/ブログ>

<QESが参画しているAWSのセキュリティ推進コンソーシアムがホワイトペーパーを公開しました>

※Amazon Web Services、”Powered by Amazon Web Services”ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

お気軽にお問い合わせください。

ページのトップへ