Amazon Web Services ブログ

EC2 Run Command のアップデート – 通知を使用したコマンド実行の監視

AWS が昨年末に EC2 Run Command を立ち上げてから、クラウドやオンプレミス環境で同機能をご利用されているお客様の様子を目にすることができ大変喜ばしく思っています。本機能のリリース直後には Linux インスタンスのサポートコマンドの管理と共有をよりパワフルに、そしてハイブリッドとクロスクラウド管理を追加しました。そして本日より、中国(北京) と アジアパシフィック (ソウル) リージョンで EC2 Run Command をご利用いただけるようになりました。AWS のお客様は、定期的に行うシステム管理タスクを自動化したりカプセル化するために EC2 Run Command を使用しています。ローカルユーザーやグループの作成、該当の Windows アップデートの検索とインストール、サービス管理やログファイルのチェックなどを行っています。こうしたお客様は EC2 Run Command を基本的な構成要素として使用しているため、実際に実行するコマンドの進行状況をより把握しやすいように可視性の改善を求めています。また、各コマンドや各コードブロック実行の開始時、コマンド実行の完了時、そしてどのように完了したのかといった詳細情報を素早く取得できることを希望されています。このように非常に重要なユースケースに対応するため、コマンド内のコマンドやコードブロックで変更があった場合にステータス状況を通知できるようにしました。さらに、複数の異なる統合オプションを提供するにあたり、CloudWatch Events または SNS を通じて通知を受信できるようにしました。こうした通知により、EC2 Run Command を基本的な構成要素として使用できるようになります。コマンドをプログラムで呼び出し、結果が戻り次第プロセスを進めることができます。例えば、各インスタンスで重要なシステムファイルやメトリックスのコンテンツをキャプチャするコマンドを作成し実行することができます。コマンドが実行すると EC2 Run Command は S3 で出力を保存します。通知ハンドラーは S3 からオブジェクトを取得し、該当アイテムまたは確認が必要なアイテムをスキャンしてから不適切だと思われる点があれば通知を作成します。

Amazon SNS を使用して実行するコマンドをモニタリング

EC2 インスタンスでコマンドを実行し SNS を使用して進行状況を監視してみましょう。手順 (モニタリングコマンド) に従い、S3 バケット (jbarr-run-output)、SNS トピック (command-status)、オンインスタンスエージェントが代理で通知を送信できるようにする IAM ロール (RunCommandNotifySNS) を作成しました。SNS トピックに自分のメールアドレスを追加し、コマンドを入力しました。

次にバケット、トピック、ロール (Run a command ページの下方にあります) を特定しました。

すべてのステータス変更 (進行状況、成功、タイムアウト、キャンセル、失敗など) の通知を受信できるようにすべてを選択しました。各インスタンスのステータスに関する通知も届くように呼び出しも選択しました。呼び出しの代わりにコマンドを選択してコマンドレベルで通知を受信する方法もあります。実行をクリックしたら、選択した各インスタンスでコマンドが実行され次第、一連のメールが届きました。サンプルは次をご覧ください。

実際の環境では、通知の受信とプロセスはプログラムで行います。

CloudWatch Events を使用して実行するコマンドをモニタリング
CloudWatch Events を使用してコマンド実行を監視することもできます。SQS キューの AWS Lambda 関数もしくは AWS Kinesis ストリームに通知を送信することもできます。分かりやすく説明するため、この例では非常にシンプルな Lambda 関数を使用しました。

Run Command が発行するすべての通知の関数すべてを呼び出すルールを作成しました (下記を見ればお分かりのように必要に応じてさらに具体的なものにすることもできます)。

ルールを保存してから別のコマンドを実行し、数秒後に CloudWatch のメトリックスを確認しました。

CloudWatch のログも確認しコードの出力も検査しました。

 

今すぐご利用いただけます
この機能は本日よりご利用可能になりました。SNS を使用したモニタリングは アジアパシフィック (ムンバイ) と AWS GovCloud (US) を除くすべての AWS リージョンでお使いいただけます。CloudWach Events からのモニタリングは アジアパシフィック (ムンバイ)、中国(北京)、AWS GovCloud (US) を除くすべての AWS リージョンでご利用いただけます。

Jeff