LoginSignup
2
0

More than 3 years have passed since last update.

インスタンスの停止を自動化してみる

Posted at

設定してみる

概要

  • 目次
    • IAM
    • lambda
    • (Cloudwatch Events)
    • (EC2)

IAM

lambda用のIAMロール作成

  • ロールの作成

ロールの作成をしていきます

1IAM Management Console - Google Chrome 2021-04-23 16.22.09.png

  • ロールの詳細を選択

2IAM Management Console - Google Chrome 2021-04-23 16.22.56.png

  • ポリシーを選択

AmazonEC2ReadOnlyAccess

3IAM Management Console - Google Chrome 2021-04-23 16.26.28.png

  • タグの設定

タグの設定は今回はしません

  • ロールの名前

ロールの名前を start_stop_ec2 にし、ほかはそのままでロールを作成しました。

1IAM Management Console - Google Chrome 2021-04-24 16.16.01.png

  • ロールの作成完了

ロールが作成されました。

2IAM Management Console - Google Chrome 2021-04-24 16.17.16.png

  • インラインポリシーの追加

start_stop_ec2 の概要を確認し、インラインポリシーの追加を行います。

3IAM Management Console - Google Chrome 2021-04-24 16.19.29.png

ポリシーをJSONにし、以下のポリシーを追加します。

4IAM Management Console - Google Chrome 2021-04-24 16.20.18.png

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*"
        }
    ]
}
  • ポリシーの作成

概要を確認し、名前を記載します。

5IAM Management Console - Google Chrome 2021-04-24 16.21.25.png

  • ポリシーの追加完了

ポリシーが追加されました

5IAM Management Console - Google Chrome 2021-04-24 16.22.08.png

lambda

  • lambda関数を作成

コンソール > lambdaへ行き、関数を作成します。

1関数 - Lambda - Google Chrome 2021-04-24 16.23.32.png

  • 関数の詳細を設定

一から作成 を行い、
関数名 : start_stop_ec2
ランタイム(言語) : Python3.6 で設定を行います。

実行ロールは先ほど作成した start_stop_ec2 ロールを使用します。

2Lambda - Google Chrome 2021-04-24 16.25.25.png

  • 関数の完了

関数が作成されました

3start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.27.36.png

  • ソースコードの追加

参考にさせていただきました (こちらのサイト)[https://techblog.forgevision.com/entry/2018/06/25/112507] をご確認ください

4start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.35.34.png

  • 環境変数の変更

タイムゾーン変更のため、環境変数を変更します

5start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.36.34.png

タイムゾーン(TZ)を Asia/Tokyo にしました

6環境変数の編集 (start_stop_ec2) - Lambda - Google Chrome 2021-04-24 16.38.01.png

  • トリガーを設定

設定 > トリガー > トリガーを追加します

7start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.38.57.png

トリガーの設定をします。

8Lambda - Google Chrome 2021-04-24 16.40.38.png

スケジュール式のcronのタイプを記載して、追加します。

22Lambda - Google Chrome 2021-04-24 17.11.13.png

トリガーが設定されました

10start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.43.19.png

  • タイムゾーンの変更

12start_stop_ec2 - Lambda - Google Chrome 2021-04-24 16.56.46.png

編集を行う

13Amazon EventBridge - Google Chrome 2021-04-24 16.57.45.png

ローカルタイムゾーンを変更して、保存します

14Amazon EventBridge - Google Chrome 2021-04-24 16.58.39.png

動作確認

  • EC2のタグを設定

インスタンスのタグを以下のように設定しました。
start に 開始時間、
stop に 終了時間を設定します。

11インスタンス _ EC2 Management Console - Google Chrome 2021-04-24 16.45.11.png

  • 確認

実行されました!

111インスタンス _ EC2 Management Console - Google Chrome 2021-04-24 17.26.55.png

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0