プログラミングとうさぎのおとぎ話

37歳にして未経験からプログラミング勉強を始めました。

AWSのインスタンスの起動と停止の自動化

本日、学習した内容は「AWSインスタンスの起動と停止の自動化」です。

なぜ自動化したのかというと、

 

①チーム開発でデプロイを担当でAWSに公開用のインスタンスを生成している。

AWSのEC2利用は、750時間/月であれば無料を選択しているが、24時間インスタンスが実行中なので、気付いたら80%使用してますよアラームが届く。

③その度にAWSへログインしてインスタンスの停止や実行をするのではめんどいな。

 

以上の理由で自動化にTRYして見ました😎

 

AWSの詳しい料金体系はこちらで確認してください👇

AWS の料金モデルとクラウドによるコスト削減 | AWS

aws.amazon.com

 

■ 自動化の手順

1, ロールの作成

AWSのアカウントを作成してある前提で進めます。

AWSにログインしたら、

左上のサービスを選択→検索欄にIAMと入力→IAMへ移動。

IAMのサイドバーのロールを選択→ロールの作成を選択。

f:id:chacha-boy:20201129003024p:plain

 

続いて、AWSサービスのEC2を選択して、次のステップへ。
f:id:chacha-boy:20201129003112p:plain

 

検索欄にAmazonSSMAutomationRoleを入力して、チェックボックスにチェックを入れて次のステップへ。(すいません🙇‍♂️画像ではチェック入っていませんね💦チェック入れてください)

f:id:chacha-boy:20201129003642p:plain

 

タグの追加は何もなしで、次のステップへ。

 

ロール名を好きなように入力して、ロール作成。

f:id:chacha-boy:20201129004201p:plain

 

 

IAMのサイドバーのロールを選択すると上記で作成したロール名が出てきます。

作成したロールを選択する。

選択したら、信頼関係のタグを選択して、信頼関係の編集を選択する。

f:id:chacha-boy:20201129004653p:plain

 

下図のように編集して、信頼ポリシーの更新を選択。

f:id:chacha-boy:20201129004946p:plain

 

すると信頼されたエンティティにevents.amazonaws.comが追加される。

f:id:chacha-boy:20201129005242p:plain

 

これでロールの作成が完了!

 

2, CloudWatchを利用してインスタンスの停止 

左上のサービスを選択→検索欄にCloudWatchと入力→CloudWatchへ移動。

IAMのサイドバーのルールを選択→ルールの作成を選択。

f:id:chacha-boy:20201129010130p:plain

 

ルールの作成は、

①スケジュールを選択。

②Cron式を選択。

③停止する日時をCron式で記述。

Cron式の書き方はこちら→ルールのスケジュール式 - Amazon CloudWatch Events

日時はUTC世界標準時)で記述するため、日本時間はマイナス9時間にする。

(例;日本時間午後12時→UTC午後3時となる)

ターゲットの追加を選択。

④ターゲット:SSM Automation を選択。

⑤ドキュメント:AWS-StopEC2Instanceを選択。

⑥定数を選択。

⑦InstanceId:停止したいインスタンスIDを入力。

⑧既存のロールを使用を選択。

⑨先ほど作成したロール名を選択。

⑩設定の詳細を選択。

f:id:chacha-boy:20201129010824p:plain

 

ルール名と説明文が記入できるので好きに記入する。

ルールを作成すると一覧に作成したルールが表示される。

f:id:chacha-boy:20201129012110p:plain

3, CloudWatchを利用してインスタンスの起動

起動は停止と同じようにルールを作成する。ただし以下の点を変更する。

①起動させる日時。Cron式は同じ。

②ドキュメント:AWS-StopEC2Instanceを選択。

 

ルールの一覧を確認すると、停止と起動が表示されている。

f:id:chacha-boy:20201129012808p:plain


以上でインスタンスの自動化の完了です。

お疲れ様です😎

 

AWSは便利な機能がいっぱいあるようですね😂