[ec2]lambda를 이용한 자동 재부팅 시스템

코드왕·2024년 12월 31일
  1. EC2 인스턴스 아이디 파악

2.IAM 이동

  1. 정책으로 이동

JSON을 선택하고 내용을 입력한다

{  "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:RebootInstances"
      ],
      "Resource": "*"
    }
  ]
}

  1. 역할로 이동

아까 만들었던 정책을 찾아서 선택한다

이름과 설명을 입력한다.

  1. LAMBA로 이동

이름, 런타임, 실행역할, 기존역할을 선택해준다.(아까 만든거 선택)

람다 안에 파이썬 코드를 안에 넣는다.(인스턴스 아이디도 정확히 넣기)

import boto3
region = 'ap-northeast-2'
instances = ['여러분의 인스턴스ID']
ec2 = boto3.client('ec2', region_name=region)

def lambda_handler(event, context):
    ec2.reboot_instances(InstanceIds=instances)
    print('stopped your instances: ' + str(instances))

구성으로 이동

이제까지 리부트 함수를 만들었습니다.

이거를 eventbridge를 이용해서 주기적으로 재부팅 되게 하면 됩니다.

그리고 재부팅 후에는 systemd를 이용해서 재부팅 시 실행되게 하면 됩니다.
링크텍스트

profile
CODE DIVE!

0개의 댓글