【アップデート】AWS CodeDeployのプッシュ通知サポート

AWS CodeDeploy

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

渡辺です。

AWS CodeDeployは、アプリケーションのデプロイを自動化するサービスです。 複数のEC2インスタンスなどにアプリケーションをデプロイする時に便利なサービスですが、真骨頂はAutoScalingに対応していることでしょう。 2016年2月17日にデプロイイベントのプッシュ通知機能が追加されました。 プッシュ通知がサポートされたことで、より自動化された運用を行えるようになります。

デプロイイベントのプッシュ通知

デプロイは何らかの理由で失敗する可能性があります。 デベロッパーやオペレータが意図したタイミングでCodeDeployによるデプロイをする場合には問題がありません。 なぜならば、デプロイ結果はその時に確認するため、失敗したならば対応するからです。 しかし、問題はAutoScalingなどで意図しないタイミングでデプロイが発生した場合です。 マネジメントコンソールでデプロイの成否は確認できますが、いちいちログインして確認しなければいけないのです。

今回追加された、プッシュ通知(トリガー)を利用すれば、デプロイイベントが発生した時にSNSトピックへのプッシュ通知ができるようになります。 デプロイが失敗した時などにプッシュ通知(トリガー)を設定しておけば、早く問題に気付くことができます。

プッシュ通知の設定

プッシュ通知の設定は、デプロイメントグループ毎に行います。 あらかじめSNS Topicを作成しておいてください。

codedeploy-trigger2

トリガーで「トリガーの作成」をクリックします。

codedeploy-trigger1

トリガー名、イベント、Amazon SNSトピックをそれぞれ指定します。 ここでは、デプロイ失敗(Deployment fails)のみを対象としました。 複数のイベントを選択できるため、トラッキングシステムなどにデプロイイベントをすべて記録することも可能です。

通知を受けてみる

早速デプロイを失敗させて、プッシュ通知(SNS経由のメール通知)をしてみました。

FAILED: AWS CodeDeploy d-ZZZZZZZZZID in ap-northeast-1 to sample-app

Hello,
The status of the following AWS CodeDeploy deployment is: FAILED
More info: https://console.aws.amazon.com/codedeploy/home?region=ap-northeast-1#/deployments/d-ZZZZZZZZZID
Application name: sample-app
Deployment ID: d-ZZZZZZZZZID
Deployment group name: Production
Region: ap-northeast-1
Start time: Thu Feb 25 08:16:44 UTC 2016
End time: Thu Feb 25 08:16:47 UTC 2016
Status: FAILED

こんなメールがプッシュ通知されてきています。

なお、LambdaやSQSにプッシュ通知した場合は、デプロイの詳細情報はJSONデータとして通知されます。

まとめ

CodeDeployのプッシュ通知は地味な機能ですが、AutoScalingで運用を自動化していくならば失敗通知は必須と考えて良いのではないでしょうか。 他にもデプロイイベントを監視システムやBacklogと連携させるなど、使い道は多いと思います。

AWS Cloud Roadshow 2017 福岡