EC2スポットインスタンスの中断動作前後をEventBridge+SNSでメール検知してみた
はじめに
こんにちは、なかたです。
EC2スポットインスタンスでは、インスタンスの中断が要求されることがあります。
その後、スポットプールに空きが出たらインスタンスが新たに開始されます。
今回は、この流れをモニタリングしたかったのでEventBridgeとSNSでメール検知してみようと思います。
構築手順
1. SNSトピックの作成
トピックを作成ボタン
を選択します。
トピックタイプはスタンダード
を選択します。
トピックを作成します。
2. EventBridgeルールの作成
ルールを作成
を選択します。
名前を決めます、こちらは適当で大丈夫です。
イベントパターンの画面に注目します。
パターンを編集
ボタンから以下のJSONを貼り付けます。
こちらにより指定したEC2のイベントを検知することを表せます。
{
"source": ["aws.ec2"],
"detail-type": [
"EC2 Spot Instance Request Fulfillment",
"EC2 Spot Instance Interruption Warning"
]
}
EC2 Spot Instance Request Fulfillment イベントとは
このイベントを検知することで、スポットインスタンスが起動されたことを確認できます。
スポットインスタンスリクエストが受理されると、Amazon EC2 は EC2 スポットインスタンスリクエストのフルフィルメントイベントを Amazon EventBridge に送信します。
EC2 スポットインスタンスリクエストのフルフィルメントイベント
EC2 Spot Instance Interruption Warning イベントとは
スポットインスタンスが中断イベントを検知することができます。
Amazon EC2 がスポットインスタンスを中断しようとすると、実際の中断が起こる 2 分前にイベントが発生します (休止の場合は、即時的にその状態に移行するため、中断通知は発行されますが 2 分前には提供されず、このイベントの対象にはなりません)。
EC2 Spot Instance interruption notice
次に、ターゲットタイプでSNSトピックを選択します。
手順1で作成したSNSトピックを選択します。
3. サブスクリプションの登録
作成したSNSトピックを選択します。
サブスクリプションの作成
ボタンを選択します。
プロトコルからEメールを選択します。
エンドポイントにメールアドレスを入力します。
4. メールアドレスの確認
受信メールを確認するとAWSから以下のようなメールが届いていることを確認します。
メールの本文を確認し、リンクを選択します。
メールが確認されました。
サブスクリプション画面でもステータスが確認済み
になっていることがわかります。
まとめ
以上、作成手順でした。
これにより、スポットインスタンの中断動作の監視方法がマネジメントコンソールに張り付くことからメール検知に効率化できるようになります。
また、EventBridgeからSNSを通したメール通知は、色々なサービスのモニタリングに活用できます。
手順も難しくないので、ハンズオンにおすすめです。
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。