AWSメンテナンスウィンドウを使ってEC2インスタンスのNginxを操作してみた。

この記事を書いたチーム:chocochip
AWSメンテナンスウィンドウを使ってEC2インスタンスのNginxを操作してみた。

今回はAWS メンテナンスウィンドウを使ってEC2インスタンス内のNginxに対して、オートメーションタスクを登録して対象の時間帯にNginxの停止と再起動を行ってみたいと思います。 

手順の流れ 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

  1. EC2インスタンスにIAMロールをアタッチしてSSMのマネージドインスタンス化する 
  2. AWS オートメーションドキュメントを作成する 
  3. AWS メンテナンスウィンドウを作成して、タスクを登録する 

 

手順①:EC2インスタンスにIAMロールをアタッチしてマネージドインスタンスにする

IAMロールを作成してそのIAMロールに「AmazonSSMManagedInstanceCore」のポリシーをアタッチします。 

作成したIAMロールを今回マネージドインスタンス化したいEC2インスタンスに対してアタッチします。 

IAMロールをアタッチする事で数分後にマネージドインスタンス化する事が出来ます。

※この方法でマネージドインスタンス化する事は可能ですが、VPCの設定によってはマネージドインスタンスの一覧に表示されない場合があります。 

 

手順②:AWS SSMのコンソール画面より、オートメーションドキュメントを作成する 

SSMコンソールの左側メニューバーの共有リソース内の「ドキュメント」を選択して、画面内の「ドキュメントを作成」を選択後、「オートメーション」を選択 

作成画面に遷移後に行いたいオートメーションドキュメントを作成します。 

今回は下記の2種類のドキュメントを作成しました。 

・STOP-Nginx 

・RESTART-Nginx 

ドキュメントの内容は今回のメンテナンスウィンドウでタスク登録したいNginxの停止を行うドキュメントとNginxの再起動を行うドキュメントです。 

 

手順③:AWS メンテナンスウィンドウを作成して、タスクを登録する 

ドキュメント作成後、SSMのメニューバーより「メンテナンスウィンドウ」を選択してメンテナンスウィンドウのコンソール画面より「メンテナンスウィンドウの作成」を選択 

今回は下記の内容で作成しました。 

今回は毎日12時15分(Asia/Tokyo)に登録したタスクを最低1回定期的に実行するという設定にしています。 

メンテナンスウィンドウの作成後に詳細画面を確認すると次回実行タイミングを確認する事が出来ます。 

実行時間はUTCの時刻で表示されます。 

 

次にメニューバーより「タスク」を選択してタスクを登録していきます。 

先程、手順②で作成したドキュメントをタスクに登録していきます。 

またこの際に「AmazonSSMAutomationRole」ポリシーをアタッチしたIAMロールをタスクにアタッチします。 

細かい設定について今回は割愛させて頂きます。 

・タスク登録後のタスク一覧画面 

優先度についてはNginx停止のタスクが1番で再起動が2番で登録しました。 

優先度については数字が小さいタスクから優先度が高くなります。 

最後に実際に実行された結果を確認してみます。 

メニューバーより「履歴」を選択してタスク実行履歴を選択すると実行結果の詳細が確認できます。 

・タスク実行結果詳細 

 

・EC2インスタンスのNginxステータス確認 

結果 

タスクの実行詳細画面より、各タスクが成功した事とNginxのログの時刻とタスクの終了時刻がほぼ同じ時刻が表示されている事が分かります。 

とめ 

今回はAWS メンテナンスウィンドウを使って簡単なNginxの操作を行ってみました。 

AWS メンテナンスウィンドウを使う事によってAWSリソースに対して様々な自動化する事が可能になります。 

是非とも一度AWS メンテナンスウィンドウを使って色々試してみる事をオススメします。 

 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス