【AWS】RDS入門/イベントをメールで通知してみよう
はじめに
こんにちは植木和樹です。Amazon RDS(Relational Database Service)はMySQLやOracle、Microsoft SQLServerを利用することができ、クリックだけでデータベースが用意できてしまうという優れもののRDBMSサービスです。バックアップを取ったり、別のアベイラビリティゾーン(データセンター)に自動的にフェイルオーバーする設定もクリックだけで簡単に設定できてとても便利です。
さてRDSではデータベースが起動したり、フェイルオーバーしたり、バックアップが実行されたりすると「イベント」という形で通知されます。この通知は初期状態ではマネージメントコンソールからしか見る方法がありません。でも常にマネージメントコンソールの前に張り付いているわけにもいきませんので、やっぱりイベントが起きたらメールなどでお知らせがきてもらいたいですよね。
本日は「Amazon RDS Announces Support for DB Event Notifications via Email and SMS」で紹介されている方法を使って、RDSになにかイベントが起きたらメールで通知させてみたいと思います。
RDSのイベントをメールで通知できます
RDSではDBインスタンスや、パラメータグループや、セキュリティグループや、DBスナップショットになにかしらイベントが発生した時に、メール(やSMS)で通知を受け取ることができます。例えば、スナップショットからのデータベースリストが完了した時や、Multi-AZ構成のインスタンスでフェイルオーバーが発生した場合などです。現時点で40を超えるイベントがサポートされており、RDSのコンソール画面やCLIやAPIを使ってDBイベントサブスクリプションを登録することができます。イベント通知はRDSがサポートしているすべてのデータベースエンジン(MySQL、Oracle、SQLサーバー)で提供されています。さらに、すべてのリージョンでメール通知がサポートされていて、SMS通知についてはUS Eastリージョン(Northern Virginia)でのみ提供されています。
サポートされているイベントの一覧についてや, DBイベントの登録についてさらに詳しく知りたいときは「Amazon RDS User Guide」のイベントの項を参照してください。
Amazon RDSについて、さらに詳しく知りたいときは、「RDSのページ」、 「 ユーザーガイド 」、「FAQ」を訪れてみてください。
RDSのイベントをメールで通知してみよう
それではRDSでイベントが発生したらメールで通知してみましょう。設定はマネージメントコンソールのRDSの画面にある「Event Subscriptions」で行います。「Create Event Subscription」ボタンをクリックして新しくイベント通知を登録します。
「create topic」のリンクをクリックすると、新しくSNSのトピックを作成することができます。「Recipient type」に「Email」を選び、宛先メールアドレスを入力します。
「SourceType」は通知できるイベントの大分類です。「db-instance」「db-security-group」「db-parameter-group」「db-snapshot」の4つから選ぶことができます。SourceTypeを選ぶと「Event Categories」の内容が変化します。各カテゴリーにどんなイベントがあるのかは「Amazon RDS Event Categories and Event Messages」に一覧があります。
db-instance
db-security-group
db-parameter-group
db-snapshot
ひとまずdb-instanceのSelect Allを選んでおきましょう。
最後に対象のインスタンスを選びます。これもSelect Allですべてのインスタンスのイベントが通知されるようにします。「Yes Create」ボタンをクリックするとイベント通知が作成されます。作成までには5分程度かかるのでしばらくお待ちください。
SNSでトピックを作成して通知する際には、登録確認メールが送られてきています。メール本文のURLをクリックして登録確認をしておきましょう。
You have chosen to subscribe to the topic: arn:aws:sns:ap-northeast-1:123456789012:rds-topic To confirm this subscription, click or visit the link below (If this was in error no action is necessary): Confirm subscription(←クリックすると確認処理が行われるリンク) Please do not reply directly to this e-mail. If you wish to remove yourself from receiving all future SNS subscription confirmation requests please send email to sns-opt-out
以上でイベント通知設定は終わりです。以降RDSのインスタンスに何かしらのイベントが発生するとメールが送られてきます。
以下はRDSインスタンスがフェイルオーバーした時に送られてくるメールです。なおフェイルオーバーの際には「Multi-AZ instance failover started」「Multi-AZ instance failover completed」「DB instance restarted」と3つのイベントが通知されます。
Subject: RDS Notification Message Event Source : db-instance Identifier Link: https://console.aws.amazon.com/rds/home?region=ap-northeast-1# SourceId: testdb Notification time : 2013-08-15 12:37:03.094 Message : Multi-AZ instance failover started Event ID : http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Events.html#RDS-EVENT-0013
まとめ
今回はRDSで発生するイベントをメールで通知されるよう設定しました。インスタンスの作成にしろ、変更にしろ、スナップショットからのリストアにしろ、RDSの操作というのは時間がかかります。画面リロードしながら待っている時間ももったいないので、処理が完了したらメールで教えてもらうよう設定しておくのが良いでしょう。