「EC2: インスタンスを起動」アクションにリトライの機構を追加しました

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

こんにちは、Cloud Automatorの柳瀬です。

Cloud Automatorは、AWS の運用を自動化するウェブサービスですが、各アクションでは AWS の API を単純に使って操作しているわけではありません。
2014年10月に「リソースの終了ステータスをチェックする」オプションをリリースし、API リクエストの実行正否だけでなく、対象の AWS リソースが操作した状態に変化したかをチェック出来るオプションをリリースしました。2016年8月には「EC2: AMIを作成」アクションにおいて、AMI ステータス Failed 時にイメージを再作成するオプションをリリースしました。
このことは Cloud Automator が AWS の運用を単純に自動化しているだけではなく、信頼性をあげる取り組みをしていることを意味しております。
そして、本日のリリースにより「EC2: インスタンスを起動」アクションを使ったジョブにおいて、EC2 インスタンスが API 実行後も stopped となっている場合にリトライするようになりました。

リリースの背景

「EC2: インスタンスを起動」は AWS の StartInstances API を実行して EC2 インスタンスを起動します。
そして、API リクエストが成功すると AWS 内部で EC2 インスタンスが起動されます。正常に処理された場合は EC2 インスタンスが起動されステータスが available となり、EC2 インスタンスにアクセス可能な状態となります。しかしながら AWS 側の一時的に不具合などで極稀に API リクエストが成功したにも関わらず EC2 インスタンス が起動しない場合がございます。
この時、EC2 インスタンスのステータスは stopped となっており、EC2 インスタンスにアクセス出来ない状態となります。

これまでも、「リソースの終了ステータスをチェックする」オプションをご利用頂くことで、API リクエストが成功したにも関わらず EC2 インスタンス が起動しなかったことを検知することは出来ておりましたが、その後に手動でEC2 インスタンスを起動して頂く必要がございました。
このような状態となった場合に EC2 インスタンスの起動リトライして欲しいというご要望を頂いていたこともあり、リトライ処理の機構をリリースするに至りました。

ご利用方法

リトライ処理をご利用頂くためには「リソースの終了ステータスをチェックする」オプションをご利用頂いていることが前提条件となります。
そのため、このオプションが無効となっているジョブについては、オプションを有効にするようにジョブを編集して下さい。すでにオプションが有効となっているジョブについては、ジョブの編集をすることなく適用されております。

まとめ

本日リリースしました、「EC2: インスタンスを起動」アクションにおけるリトライの機構をご紹介致しました。
今後とも AWS の自動化や信頼性の向上に取り組んで参りますのでよろしくお願い致します。

Cloud Automator(クラウドオートメーター)とは、バックアップや災害対策、AWS費用の削減といった「ジョブ」と、AWSがガイドライン通りに運用されていることを継続的に確認する「構成レビュー」という2つのAWS運用を自動化し、AWSの利用メリットを最大限に引き出すサービスです。

Cloud Automator

AWS運用自動化サービス「Cloud Automator」