はじめに
フェイルオーバーした際に、その事実を速やかに把握できるようにしたい。
"Amazon RDS イベント通知"で検知および通知ができるようなので、使ってみる。
Amazon RDS イベント通知 とは
概要
Amazon RDS では、Amazon RDS のイベントが発生したときに、Amazon Simple Notification Service (Amazon SNS) を使用して通知を送信します。
(出典:Amazon RDS イベント通知の操作 | AWS)
対象となるRDSリソース
マネジメントコンソールの
Aurora and RDS > イベントサブスクリプション > イベントサブスクリプションの作成
画面にて選択できるのは以下。
- スナップショット
- クラスタースナップショット
- インスタンス
- パラメータグループ
- セキュリティグループ
- クラスター
- カスタムエンジンバージョン
- RDS プロキシ
- ブルー/グリーンデプロイ
- DBシャードグループ
- ゼロの ETL 統合
対象となるRDSイベント
RDSリソースごとに大量に用意されていて載せきれない。
一覧ページはこちら。
イベント通知を設定してみる
Amazon SNSにてトピックおよびサブスクライブを作成。
Amazon RDSにて該当のトピックをターゲットとしてイベントサブスクリプションを作成することで、
通知ができる状態となる。
Amazon SNSの概要についてはこちら
Amazon SNSにてトピックおよびサブスクライブを作成
まずはトピックから。
マネジメントコンソールの
Aurora SNS > トピック
画面にて"トピックの作成"をクリック。

遷移先にて、
タイプは"スタンダード"を選択、
名前(トピックのリソース名)、
表示名(通知メールのFrom: ヘッダーにおける送信者名)
を入力したら"トピックの作成"をクリック。

作成したトピックの詳細画面に遷移するので、"サブスクリプションの作成"をクリック。

遷移先にて、
プロトコルとして"E メール"を選択。
選択するとエンドポイント入力欄が出現するので、
ここに通知先メールアドレスを入力して、
"サブスクリプションの作成"をクリック。

通知先メールアドレスにサブスクリプション確認メールが飛ぶので、
"Confirm subscription"をクリック。

Subscription confirmed!となり、作成したサブスクリプションのステータスが保留中→確認済みとなった。

Amazon RDSにて該当のトピックをターゲットとしてイベントサブスクリプションを作成
マネジメントコンソールの
Aurora and RDS > イベントサブスクリプション
画面にて"イベントサブスクリプションの作成"をクリック。

遷移先にて、
任意の名前を入力、
ターゲットとして"Amazon リソースネーム (ARN)"を選択のうえ、作成済みのAmazon SNSのトピックを指定。
ソースタイプに"インスタンス"を選択すると、対象のインスタンスおよびイベントが表示されるので、それぞれ"すべてのインスタンス"、"特定の イベントカテゴリ を選択" > "failover"を指定して、"作成"をクリック。

参考:
Amazon RDS イベント通知の概要 > Amazon RDS イベント通知にサブスクライブする基本的な手順は次のとおりです。 | AWS
Amazon SNS トピックを作成する > AWS Management Consoleを使用してトピックを作成するには | AWS
Amazon SNS トピックのサブスクリプションの作成 | AWS
イベント通知を試してみる
マネジメントコンソールにてRDSをフェイルオーバーして再起動。

確認をクリックすると確認画面に遷移することなくすぐに再起動が開始されるので注意。
フェイルオーバーを行うとダウンタイムが発生するので注意。
フェイルオーバーの開始時点、完了時点、それぞれでメール通知が届いた。
※"SourceId"はRDSインスタンスのDB識別子

