본문 바로가기
AWS 기술/Computing

Lambda를 이용한 Spot Fleet 요청 1/2 편

by 콤텍시스템

[개요]

많은 분들이 연구의 목적으로 EC2 인스턴스를 활용합니다. 하지만 한 번 분석 모델을 수행하기위해, 높은 사양의 EC2(ex.c5.24xlarge)를 온디멘드로 24시간 가용하는 것은 금액적으로 큰 부담이 되기 때문에 Spot 인스턴스를 활용할 필요가 있습니다. 이번 테스트에서는 모델링 작업을 매일 2번 똑같은 시간(오후 4, 오전 4)에 규칙적으로 수행된다고 가정하고, Spot 요청을 자동화하기 위해 Lambda 스크립트를 작성, Event BridgeLambdaTrigger 합니다. 단일 스팟 인스턴스 요청(Spot Instance Request)capacity 로 인해 작업도중 취소 되는 리스크가 있습니다. 그래서 Spot 요청을 단일 인스턴스 유형(c5.24xlarge)이 아닌 Fleet으로 요청하여 복수의 인스턴스 유형(c5.24xlarge, m5.24xlarge)으로 Spot 요청을 함으로서, Spotno capacity 문제를 보완할 것을 기대하고 테스트를 진행하였습니다.

[테스트]

1.    인스턴스 AMI 준비

-       Spot 요청 시 사용될 인스턴스 AMI를 준비합니다.

2.    IAM 역할 만들기

LambdaSpot Fleet 요청을 하기 위해선 2개의 IAM 역할이 필요합니다.

-       IAM 서비스에서 역할을 선택하고 역할 만들기를 클릭합니다.

-       역할 서비스에서 ‘EC2’를 선택하고, 세부선택에서 ‘EC2-Spot Fleet’를 선택합니다.

-       별도의 설정변경없이 다음을 눌러 역할을 생성합니다. 첫번째 역할arn은 추후에 작성하는 Lambda 함수에 사용되니 미리 복사합니다.

-       다시 역할 만들기를 클릭합니다. 이번에는 Lambda 서비스를 선택하고 다음을 클릭합니다.

-       정책 필터에서 ‘spot’을 검색합니다. 정책 중에 ‘AmazonEC2SpotFleetTaggingRole’, ‘AWSThinkboxDeadlineSpotEventPluginAdminPolicy’ 2개를 선택하고 다음으로 넘어갑니다. 역할의 Name 태그, 이름, 설명을 추가 입력하고 역할을 만듭니다. 방금 생성한 두번째 역할이 바로 다음 차례에 생성할 Lambda의 역할이 됩니다.

 

다음편 이어서

 

 

 

댓글