Blog

Amazon RDSのメンテナンスイベントをSlackに通知するようにした

はじめに

こんにちは。ニフティ株式会社の添野翔太です。
今回はAmazon RDSのメンテナンスイベントをSlackに通知する機構を作成した話を共有します。

背景

先日、Amazon RDSのメンテナンスを原因として、とあるアプリケーションが一時的にダウンしました。振り返る中でメンテナンスイベントを見逃していたという課題が上がり、再発防止策の一環として、メンテナンスイベントの通知を行う機構を作成しました。

Amazon RDSのメンテナンスイベントをSlackに通知する

チームで慣れている人が多いGoを利用してプログラムを作成しました。またAWS Lambdaを基盤とし、定期的に発火させるためにAmazon EventBridgeを利用しました。
アーキテクチャは、以下の通りです。

ディレクトリ構成は以下の通りです。なお単体テスト用のファイルやREADME.mdなどは除いています。

次に、src/lib/logger.go、src/go.sum以外のコードを以下に示します。
まずはsrc/main.goです。こちらではセッション作成など実施しています。

次にsrc/lib/get_events.goを示します。こちらではDescribePendingMaintenanceActionsを呼び出し、データ形式を整えた上で呼び出し元にデータを返却します。

次にsrc/lib/slack.goを示します。こちらでは取得できたメンテナンスイベントをもとにSlackへ通知を行います。なお情報を瞬時に確認できるよう、DescriptionとCurrentApplyDateのみを返却するようにしました。

最後にsrc/go.modを示します。

通知の見た目は以下の通りです。
もしメンテナンスイベントがある場合は、

となり、無い場合には以下の通りです。

おわりに

本記事では、Amazon RDSのメンテナンスイベントをSlackに通知する機構を作成した話について述べました。この機構によりメンテナンスイベントを見逃すリスクが減ります。

参考記事

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!