본문 바로가기

AWS Lambda ƛ/Lambda

AWS 람다를 이용하여 정해진 시간에 EC2를 시작 및 종료하기

728x90
반응형

# 실습내용

1. IAM 정책과 역할을 생성하자

2. 람다로 코드를 작성하자

3. 클라우드 와치에서 규칙을 생성하자

4. 참고 사이트 : cholol.tistory.com/506

 

- IAM 설정화면으로 이동한 뒤 정책 → 정책생성을 클릭하여 새로운 정책을 생성하자.

- 위의 화면처럼 EC2에 대한 시작과 종료 작업을 사용 할 수 있도록 설정한 뒤 권한추가를 눌러 추가 권한을 부여하자. 

- 클라우드와치에서 트리거역할과 실행 결과를 로그에 담아야 하니 위의 화면처럼 구성을 해주자.

- 다음을 클릭하여 해당 정책의 이름을 정해주자.

- 그 다음으로는 생성한 정책을 역할과 연결해주기 위해 역할을 클릭, 역할 만들기를 클릭하여 역할을 생성하자.

- AWS 서비스, 그리고 람다를 선택한다.

- 이전에 생성한 정책을 찾아 역할과 연결해 준다.

- 역할 이름을 입력하고, 역할을 생성한다.

- 람다함수의 이름과 런타임 버전을 선택하고 함수를 생성한다.

- 코드에서 lambda_function.py 를 선택 후 자동 스타트 파이썬 코드를 넣어준다.

 

[Start 코드]

import boto3

region = 'ap-northeast-2'

instances = ['인스턴스 ID']

ec2 = boto3.client('ec2', region_name=region)

 

def lambda_handler(event, context):

     ec2.start_instances(InstanceIds=instances)

     print('started your instances: ' + str(instances))

 

- 코드를 입력한 뒤 배포를하고, 구성탭으로 이동한 뒤 권한을 클릭한다.

- 권한설정에서 우리가 이전에 만든 역할을 선택하고 저장을 누른다.

- stop도 동일하게 해준다.

 

[Stop 코드]

import boto3

region = 'ap-northeast-2'

instances = ['i-0013d1b642951cb56']

ec2 = boto3.client('ec2', region_name=region)

 

def lambda_handler(event, context):

     ec2.stop_instances(InstanceIds=instances)

     print('stoped your instances: ' + str(instances))

 

- 트리거 역할을 할 클라우드 와치를 설정하자.

- 규칙메뉴로 이동한 뒤 규칙생성을 클릭한다.

- 일정탭으로 변경 후 Cron 표현식을 선택 후 스케중을 넣어준다.

- 대상은 람다함수이고, 함수이름을 선택하고 세부 정보구성으로 넘어간다.

- 시작 규칙 이름을 정해주고 규칙을 생성한다.

- 인스턴스 중지도 위에 시작과 동일하게 구성해준다.

- 중지 규칙 이름을 정해준다.

- 모든것이 완료되면 위와같이 규칙이 생성이되며, Cron표현식에 설정된 스케줄에 따라 실행된다.

- 실행 결과는 클라우드와치 → 로그그룹에서 확인이 가능하다.

728x90
반응형