AWS Systems Manager で複数の EC2 インスタンスを 1 台ずつ停止・起動してみた #reinvent
re:Invent 2017 会期中、AWS Systems Manager が発表になりました。
【速報】AWS環境をまとめて管理!新サービス「AWS Systems Manager」が発表されました! #reinvent
一見すごそうにみえますが、とはいえ落ち着いて考えてみると、 「EC2 Systems Manager じゃないの?」 「今まである機能とどう違うの? まとめただけ?」 という疑問がでてくると思います。わたしもそうだったので、とりあえず試してみました。
使ってみる
まずは、3台起動している EC2 インスタンスを順番に停止・起動してみましょう。 これらには予め、「Group」というタグに共通の「evaluation」という値が設定してあるとします。
マネジメントコンソールの「サービス」から、Systems Manager を選択します。
左上のハンバーガーアイコン( [三] )をクリックするとメニューが開きます。
リソースグループの作成
まずは 3台の EC2 インスタンスを「リソースグループ」として登録します。
ちなみに AWS Systems Manager になってリソースグループの概念が新しくなっています。こちらの記事も参照して下さい。
左メニューから「Find Resources」を選択し、「リソースの検索」画面を開きます。
- リソースタイプ : AWS::EC2::Instance
- タグキー : Group
- タグの値 : evaluation
これを入力して、入力欄右の「+」をクリックします。
右上「クエリ結果の表示」をクリックすると、検索が行われ、下に結果が表示されます。
意図通りのものが表示されたら、「クエリをグループとして保存」しましょう。
- グループ名 : evaluation-group
最低限これだけ指定して「グループの作成」をクリックします。
停止・起動のオートメーション実行
では、今回作成したリソースグループに対して「オートメーションの実行」を行います。
今回は停止・起動が目的なので、「 AWS-RestartEC2Instance 」を選択します。
必要な情報は概ね入力された状態で次の画面が開きますが、一ヶ所だけ、 「ターゲットとレート制御」のところの「パラメータの選択」で「Instance Id」を選択して下さい。
また、そのすぐしたの「同時実行数」が「1ターゲット」になっていることが分かると思います。 つまりこの自動時刻処理は、1台ずつ順に行われることになります。
問題が無ければ一番右下、「オートメーションの実行」をクリックします。
実行が開始されました。試しに EC2 のマネジメントコンソールをみてみると、ちゃんと 1台ずつ停止・起動しているのがわかると思います。
一度に全台同時に再起動されるわけでなく順番に、というところが、運用で使いやすいツールになっていると感じました。
同時並行に実行する数は必要に応じて、2台にしたり、「全体のn%」みたいな指定も出来るのが嬉しいですね。
実行結果の確認
改めて左メニューの「Automation」をクリックすると、いま実行した処理の結果が確認できます。全体 + 個々のインスタンスの再起動処理ということで、4つの記録が確認できます。
それぞれ、いつ、誰が、何のアクションを実行したのか、結果はどうかが表示されていて、ひとめで分かります。
今回実行したドキュメントの中身
ちなみに、とくに説明もなく「 AWS-RestartEC2Instance 」を選択しました。タイトルだけみると「停止・起動じゃなくて再起動なのでは?」と思えてくるので、念のためドキュメントの中身を確認します。
左メニュー「Documents」をクリックし、今回実行した「 AWS-RestartEC2Instance 」を探して「詳細を表示」してみます。
「コンテンツ」タブをクリックすると、今回の処理が JSON で記述されていたことが分かります。
ちゃんと、stopInstances
して startInstances
していますね。
所感
いままでは開発が必要だったり、いくつかのコンソールを行ったり来たりしなくてはならなかった機能が、AWS Systems Manager を見るだけで出来るようになりました。統合環境的といいますか、AWS のダッシュボードとして使えるサービスかと思います。
EC2 の利用がメインである環境で、運用を行うには非常に使いやすい作りになっていると感じたので、これからどんどん触っていきたいと思います!