【小ネタ】RDSイベントは直近1日分しか表示されないのでAWS CLIで確認しよう

Amazon RDS

西澤です。ブログネタに困ったら、AWS CLI小ネタを書くようにしているのですが、RDSイベントの表示についての小ネタです。RDSイベントの表示については、公式ページに書いてある通りなので、下記ページの内容を実用的にまとめただけの内容です。

RDSイベントのAMCでの表示期間

RDSイベントは、DBインスタンス(クラスタ含む)、DBスナップショット、DBセキュリティグループ、DBパラメータグループに関連するイベントのレコードを記録して通知、表示する機能です。ただし、RDSイベントは、AWS Management Consoleでは過去24時間分しか表示されない仕様となっています。その為、週末発生した異常を月曜日に確認するときには、既にAWS Management Consoleではログが流れてしまっているなんていうことがよくありますので、ご注意ください。

RDSイベント通知設定については、古い記事ですが下記をご覧ください。今回の趣旨からは逸れますが、こちらも原則設定しておいた方が安心かと思います。

【AWS】RDS入門/イベントをメールで通知してみよう

AWS CLIでRDSイベントを確認する

ということで、直近1日よりも以前のイベントの確認は、AWS CLIでやってみましょう。直近14日間が取得できる最長期間となりますので、それを取得してみます。

$ aws rds describe-events \
    --duration $(bc <<< "60 * 24 * 14")
{
    "Events": [
        {
            "EventCategories": [
                "backup"
            ],
            "SourceType": "db-instance",
            "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:db:rds-instance01",
            "Date": "2017-06-12T18:09:31.006Z",
            "Message": "Backing up DB instance",
            "SourceIdentifier": "rds-instance01"
        },
        {
            "EventCategories": [
                "backup"
            ],
            "SourceType": "db-instance",
            "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:db:rds-instance02",
            "Date": "2017-06-12T18:10:32.303Z",
            "Message": "Backing up DB instance",
            "SourceIdentifier": "rds-instance02"
        },
:::
        {
            "EventCategories": [
                "backup"
            ],
            "SourceType": "db-instance",
            "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:db:rds-instance01",
            "Date": "2017-06-25T18:15:26.455Z",
            "Message": "Finished DB Instance backup",
            "SourceIdentifier": "rds-instance01"
        }
    ]
}

結果は取得できましたが、特に異常が無いと、EventCategories=backupのイベントばかりで重要なものが見づらくなってしまいます。"EventCategoriesがbackup以外"の条件で、もう少しフィルタして重要なもののみ表示するようにしてみましょう。

$ aws rds describe-events \
    --duration $(bc <<< "60 * 24 * 14") \
    --query "Events[?EventCategories[0]!=\`backup\`]"
[
    {
        "EventCategories": [
            "configuration change"
        ],
        "SourceType": "db-instance",
        "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:db:rds-instance02",
        "Date": "2017-06-13T17:30:09.311Z",
        "Message": "Applying modification to database instance class",
        "SourceIdentifier": "rds-instance02"
    },
    {
        "EventCategories": [
            "failover"
        ],
        "SourceType": "db-cluster",
        "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:cluster:rds-cluster01",
        "Date": "2017-06-13T17:40:48.087Z",
        "Message": "Started failover to DB instance: sst-rds-v-dbaws0721",
        "SourceIdentifier": "rds-cluster01"
    },
:::
    {
        "EventCategories": [
            "availability"
        ],
        "SourceType": "db-instance",
        "SourceArn": "arn:aws:rds:ap-northeast-1:123456789012:db:rds-instance03",
        "Date": "2017-06-26T01:40:13.613Z",
        "Message": "DB instance restarted",
        "SourceIdentifier": "rds-instance03"
    }
]

最後に、表示する項目を絞りつつ、outputをtextモードにして見やすくしておきます。

$ aws rds describe-events \
    --duration $(bc <<< "60 * 24 * 14") \
    --query "Events[?EventCategories[0]!=\`backup\`].[Date,SourceType,SourceIdentifier,EventCategories[0],Message]" \
    --output text
2017-06-13T17:30:09.311Z    db-instance rds-instance02  configuration change    Applying modification to database instance class
2017-06-13T17:40:47.665Z    db-instance rds-cluster01   availability    DB instance shutdown
:::
2017-06-26T01:40:13.613Z    db-instance rds-instance03  availability    DB instance restarted

まとめ

AWS Management Consoleだけでは、情報が不足しているというときには、AWS CLIをぜひ活用してもらえればと思います。

どこかの誰かのお役に立てば嬉しいです。

AWS Cloud Roadshow 2017 福岡