[OCI]通知サービスとイベントサービスを利用してDBCSのDBノードの起動/停止をメールで通知してみた

# はじめに
[こちら](https://qiita.com/500InternalServerError/items/7221823940ea5bd36bee)の記事で、Always FreeのAutonomous Databaseのみを使用してDBCSインスタンスの自動起動/自動停止をスケジューリングする方法を検証しました。

今回は、通知サービスとイベント・サービスを利用して、DBCSインスタンスの自動起動/自動停止の際に、処理の開始/終了をメールで通知する方法を確認しました。

# 1.通知サービスの準備
コンソールメニューを開き、「アプリケーション統合」内の「通知」をクリックします。
![スクリーンショット 2022-02-15 15.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0c68ac91-4dda-8f7e-1e99-2b3f92582a37.png)
「トピックの作成」をクリックします。
![スクリーンショット 2022-02-15 15.08.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/cab94b0a-c0a2-7545-3d42-59efbc43ab18.png)
トピックの名前を入力し、「作成」をクリックします。
今回はトピック名を「Topic1」としました。
![スクリーンショット 2022-02-15 15.10.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/3df72c7e-b7fa-ff9c-455c-37ba27ef4308.png)
トピック「Topic1」が作成されました。
![スクリーンショット 2022-02-15 15.10.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/f6719b61-e84c-e6b2-b7d1-7733f3bfc368.png)
「サブスクリプション」をクリックします。
![スクリーンショット 2022-02-15 15.10.44のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/abcc4cc5-2233-19be-a9f2-db73232591a9.png)
「サブスクリプションの作成」をクリックします。
![スクリーンショット 2022-02-15 15.12.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/94b7e498-7d56-7b3b-ac9b-8693c7e4745a.png)
サブスクリプション・トピックとして、先ほど作成したトピック「Topic1」を選択します。
プロトコルとして「電子メール」を選択し、「電子メール」にイベントの通知先となるメールアドレスを入力します。
入力が完了したら「作成」をクリックします。
![スクリーンショット 2022-02-15 15.13.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c124c679-f0dc-15a9-7d81-e5cd80d599c2.png)
サブスクリプションが作成されました。
サブスクリプションの状態が「Pending」になっています。
![スクリーンショット 2022-02-15 15.14.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/940c0981-a481-31bf-1f10-923dd3069c97.png)
プロトコルに「電子メール」を選択してサブスクリプションを作成すると、作成時に入力したメールアドレスにこちらのような確認メールが送られます。
メール受信者がメール内の「Confirm subscription」のリンクをクリックして確認を行うまで、サブスクリプションは「Pending」の状態になります。
![スクリーンショット 2022-02-15 15.15.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/39a26d97-5aff-1be2-19d5-68c20e5345b0.png)
メール受信者が確認メール内の「Confirm subscription」をクリックすると、こちらのようなページが表示され、確認が完了します。
![スクリーンショット 2022-02-15 15.18.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/63f09de0-bcac-7710-d263-d34feac44133.png)
メール受信者の確認が完了すると、サブスクリプションの状態が「Active」に変わります。
![スクリーンショット 2022-02-15 15.21.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d925afd7-71d5-0789-9829-f62258a7625d.png)

# 2.DBCSのノードのOCIDの確認

コンソールで対象のDBCSインスタンスの詳細画面に移動します。
![スクリーンショット 2022-02-15 15.24.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/4bd45855-22a5-7af1-285c-0f74960a238e.png)
リソース欄の「ノード」をクリック
![スクリーンショット 2022-02-15 15.26.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6864fcf1-c824-e9e4-4a91-caa943e09b01.png)
ノードのOCIDをコピーし、メモしておきます。
![スクリーンショット 2022-02-15 15.27.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0e9a9a0e-ade2-b74e-a502-d7a7e70f70be.png)

# 3.イベント・ルールの作成
コンソールメニューを開き、「イベント・サービス」内の「ルール」をクリックします。
![スクリーンショット 2022-02-15 15.29.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d589a7cc-69ce-f299-9034-e9f3c6702d7c.png)

まず最初に、DBシステムのノードの起動停止を含む、状態の更新が開始された時に通知を行うルールを作成します。

「ルールの作成」をクリックします。
![スクリーンショット 2022-02-15 15.31.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/75001afd-7c36-8f74-cf3e-ade164908c54.png)
以下のように入力して、「＋別の条件」をクリックします。

|項目|入力値|
|---|---|
|表示名|DB Node Update Start|
|説明|DBノードの変更開始を通知|
|条件|イベント・タイプ|
|サービス名|Database|
|イベント・タイプ|**DB Node - Update Begin**|
![スクリーンショット 2022-02-15 15.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/66063ac2-389f-e17e-8d05-7024cfdabc18.png)
追加された条件のイベント・タイプとして「属性」を選択します。
![スクリーンショット 2022-02-15 15.35.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/5aa8c6a1-9dc6-7c76-80ab-63d0ec705d28.png)
属性名として「resourceId」を選択し、属性値として先ほどコピーした対象となるDBシステムのノードのOCIDを入力します。
※属性値の欄は入力後にEnterキーを押さないと入力が確定しないので注意が必要です。
![スクリーンショット 2022-02-15 15.36.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a526cb47-9bf9-617a-227c-8974a6647574.png)
アクション欄の「アクション・タイプ」として「通知」を選択します。
![スクリーンショット 2022-02-15 15.37.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d2625b10-2d9f-bbef-688f-56add6629ea1.png)
通知コンパートメントとして、先ほどトピックを作成したコンパートメントを選択し、トピックとして先ほど作成したトピック「Topic1」を選択します。
![スクリーンショット 2022-02-15 15.38.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/5251263b-b7e4-7fab-8e9e-733771511fc0.png)
DBシステムのノードの起動停止を含む、状態の更新が開始された時に通知を行うイベント・サービスのルール「DB Node Update Start」が作成されました。
![スクリーンショット 2022-02-15 15.38.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/2147ea1d-a309-2a7e-da34-1340b0d4c0f4.png)
同様に、DBシステムのノードの起動停止を含む、状態の更新が完了した時に通知を行うルールを作成します。
こちらの内容を入力し、「ルールの作成」をクリックします。

|項目|入力値|
|---|---|
|表示名|DB Node Update End|
|説明|DBノードの変更終了を通知|
|条件|イベント・タイプ|
|サービス名|Database|
|イベント・タイプ|**DB Node - Update End**|
|条件|属性|
|属性名|resourceId|
|属性値|DBノードのOCID|
![スクリーンショット 2022-02-15 15.42.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/47adc674-9d15-f4ee-4f15-f9a2fa89c51e.png)
DBシステムのノードの起動停止を含む、状態の更新が開始された時に通知を行うイベント・サービスのルール「DB Node Update End」が作成されました。
![スクリーンショット 2022-02-15 15.43.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/853ab924-4579-d9fa-a58a-b604c2a1b77b.png)

# 4.動作確認

イベント・サービスのルールが作成できたので、対象のDBノードを起動、停止して動作を確認してみます。

DBシステムの詳細画面に移動します。
![スクリーンショット 2022-02-15 15.45.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/50ba7664-9259-9f8f-9c1e-5dcfce13edc7.png)
対象となるDBノードを起動します。
![スクリーンショット 2022-02-15 15.45.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/f6c9ec7c-7e16-1d47-7342-5e6143f28a28.png)
DBノードの状態が「起動中」になりました。
![スクリーンショット 2022-02-15 15.47.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/f7294404-e0c9-0660-58fb-58100e330802.png)
メールボックスを確認すると、こちらのようなメールが届きました。
LifecycleStateが"STARTING"になっており、DBノードの起動が開始されたことが通知されました。
![スクリーンショット 2022-02-15 15.48.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/71aba007-030a-421a-8a7c-29796d22178f.png)
しばらく待つと、DBノードの状態が「使用可能」になります。
![スクリーンショット 2022-02-15 15.47.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/4c31915b-f2a4-f22d-5f08-d874ea0b92c4.png)
メールボックスを確認すると、こちらのようなメールが届きました。
LifecycleStateが"AVAILABLE"になっており、DBノードが使用可能になったことが通知されました。
![スクリーンショット 2022-02-15 15.53.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/330e0860-a632-768a-74b3-0751d2ec96fa.png)
対象となるDBノードを停止します。
![スクリーンショット 2022-02-15 16.03.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/e6639a6b-3a14-7f9b-02b8-89c9084960de.png)
DBノードの状態が「停止中」になりました。
![スクリーンショット 2022-02-15 16.39.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/771d81d5-9626-a23a-36e4-85123087ba8f.png)
メールボックスを確認すると、こちらのようなメールが届きました。
LifecycleStateが"STOPPING"になっており、DBノードの停止が開始されたことが通知されました。
![スクリーンショット 2022-02-15 16.09.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c9cd1cf1-63b7-f49a-c189-fcca85f485c5.png)
しばらく待つと、DBノードの状態が「停止済」になります。
![スクリーンショット 2022-02-15 16.36.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/1c363bbc-49fb-bc6f-cb59-1342181e07a6.png)
メールボックスを確認すると、こちらのようなメールが届きました。
LifecycleStateが"STOPPED"になっており、DBノードが停止されたことが通知されました。
![スクリーンショット 2022-02-15 16.16.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/9c04b72b-db6a-f97a-293b-e84e5eb02321.png)

以上で、通知サービスとイベント・サービスを使用して、DBノードの起動、停止の通知を行えることが確認できました。