EC2 の状態変更通知で、再起動だけ通知されない事象を回避するには

EC2 の状態変更通知で、再起動だけ通知されない事象を回避するには

Clock Icon2025.07.04

困っていた内容

re:Postをもとに、EC2 インスタンスの状態が変化したときにメール通知する仕組みを構築しました。
AWS マネジメントコンソールから EC2 を停止や開始すると通知されますが、再起動の場合は通知されませんでした。
なぜでしょうか。再起動も通知する方法を教えてください。

https://repost.aws/ja/knowledge-center/ec2-email-instance-state-change

設定したイベントパターン
{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"]
}

どう対応すればいいの?

CloudTrail (AWS API Call via CloudTrail)を利用したイベントパターンに変更してください。

イベントパターンの変更例
{
  "source": ["aws.ec2"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["ec2.amazonaws.com"],
    "eventName": ["RebootInstances", "StopInstances", "StartInstances"],
  }
}

EC2 インスタンスの状態遷移において、起動や停止と異なり、再起動の場合は状態が変化しません。そのため、状態遷移を利用した通知方式では、再起動の場合に通知も行われません。

instance_lifecycle

Amazon EC2 インスタンスの状態変更 - Amazon Elastic Compute Cloudより引用

代替案として、再起動の場合も CloudTrail イベントは発行されるため、状態遷移ではなく、CloudTrail イベントによる通知を設定してください。

参考資料

AWS CloudTrail はインスタンスが再起動されたときの API レコードを作成します。

インスタンスを起動または開始した場合、インスタンスは pending 状態に移行してから、running 状態になります。インスタンスを停止した場合、インスタンスは stopping 状態に移行してから、stopped 状態になります。インスタンスを終了した場合、インスタンスは shutting-down 状態に移行してから、terminated 状態になります。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.