EC2 인스턴스를 쉽게 예약하는 방법(시작/중지)

9668 단어 awsec2lambdapython
누구나 EC2 인스턴스를 예약하고 몇 달러를 절약하고 싶어합니다. 오늘은 여러분을 도울 수 있는 작은 Python을 가져왔습니다. 단계는 다음과 같습니다.

1단계. ec2_scheduler라는 람다 함수 생성

2단계. 다음 코드를 복사하여 붙여넣습니다.

import boto3
import os
import json

region = os.environ['REGION']
ec2 = boto3.client('ec2', region_name=region)

instances = []

def lambda_handler(event, context):
    action = event['Action']
    response = ec2.describe_instances(Filters=[{'Name' : 'instance-state-name','Values' : [action]}, {'Name': 'tag-key', 'Values': ['auto-scheduled']}])
    reservations = response['Reservations']
    for reservation in reservations:
        for instance in reservation['Instances']:
            instanceId = instance['InstanceId']
            for tag in instance['Tags']:
                if tag['Key'] == 'auto-scheduled' and tag['Value'] == 'true':
                    instances.append(instanceId)

    if (action == 'stopped'):
        if (len(instances) > 0):
            ec2.start_instances(InstanceIds=instances)
    else
        if (len(instances) > 0):
            ec2.stop_instances(InstanceIds=instances)


3단계. 값이 true로 할당된 auto-scheduled라는 EC2 인스턴스에 태그를 설정합니다.

4단계. 다음을 포함하는 Lambda의 구성 및 권한 섹션에 새 정책을 추가합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:Describe*"
            ],
            "Resource": "*"
        }
    ]
}


5단계. 다음과 같은 cron 표현식을 사용하여 Lambda를 트리거로 예약합니다.
  • 시동용: cron(0 6 ? * MON-FRI *)
  • 정지용: cron(0 16 ? * MON-FRI *)

  • 6단계. 시작 또는 중지 여부를 알 수 있도록 다음 표현식이 포함된 JSON를 설정합니다.
  • 시작:

  • {
        "Action": "stopped"
    }
    


  • 중지:

  • {
        "Action": "running"
    }
    


    그리고 그게 다야!

    나를 팔로우하세요:




    링크드인
    유튜브
    인스 타 그램
    사이버 예언자
    당신의 이야기를 공유










    배너 크레딧:

    https://tridentsys.net/howto-schedule-ec2/

    좋은 웹페이지 즐겨찾기