Amazon EventBridge のルールが稀に失敗する原因について教えてください

2023.09.26

困っていた内容

【Amazon EventBridge(rules)】 → 【AWS Systems Manager(Automation runbook) : AWS-StopEC2Instance】 → 【StopEC2Instance】 のように、EventBridge ルールを構成しています。

上記の構成にて毎日定時に実行するようにルールを設定しましたが、稀に実行されない時があります。

稀に実行されない原因や、こちらの事象についてどのように対応すれば良いか教えてください。

どう対応すればいいの?

再試行ポリシーの設定をご検討ください。

Amazon EventBridge では、ルールで指定されたターゲットにイベントが正常に配信されないことが仕様として AWS 公式ドキュメントに記載されております。

ルールで指定されたターゲットにイベントが正常に配信されないことがあります。例えば、ターゲットリソースが使用できない場合や、EventBridge にターゲットリソースへのアクセス許可がない場合、またはネットワーク状態が原因で発生します。再試行可能なエラーのためにイベントがターゲットに正常に配信されない場合、EventBridge はイベントの送信を再試行します。ターゲットの再試行ポリシー設定で、再試行する時間の長さと再試行回数を設定します。デフォルトでは、EventBridge はエクスポネンシャルバックオフとジッタ、つまりランダム化された遅延を使用して、イベントの送信を 24 時間、最大 185 回再試行します。

ターゲットリソースが使用できない場合、EventBridge にターゲットリソースへのアクセス許可がない場合、またはネットワークの一時的な問題等の状況によりターゲットにイベントが正常に配信されないことがあるため、前述の再試行ポリシーの設定をご検討ください。

補足

「稀に発生」であることを確認するために、当該事象を観測された時間帯以外の日時において、実行された記録(証跡)をお調べいただくことも必要に応じてご検討ください。

例えば、冒頭で示している EventBridge ルールの構成の場合、当該事象を観測された時間帯以外の日時における下記 CloudWatch メトリクスや CloudTrail のイベント(API)等の記録の有無や内容について調査することで、当該事象の記録と比較して、本当に稀に発生しているかの切り分けが可能と考えられます。

下記メトリクスや API については本ブログ末尾の参考資料より適宜ご参照ください。

  • CloudWatch メトリクス: InvocationsFailedInvocations

  • CloudTrail (右記 API の証跡を確認): StartAutomationExecutionStopInstances

参考資料