코알못

[AWS] EMR(hadoop) - 오토 스케일링 해보자! 본문

BIG DATA

[AWS] EMR(hadoop) - 오토 스케일링 해보자!

코린이s 2022. 1. 31. 00:23
728x90

AWS 하둡인 EMR 에는 오토 스케일링이라는 기능이 있다.

이는 하둡에는 없는 기능이며 AWS 에서 제공하는 기능으로 클라우드 서비스에 맞게 서버를 자동으로 스케일링 해주는 기능이다.

쉽게 말하자면 서버를 필요할때 서버를 늘려주고 필요없을때 반납해주는 기능이다.

예를 들어 하둡을 평상시에 사용안하다가 필요한 상황이 생기면 그때 기존 서버수 보다 더 투입하여 빠르게 처리하고 안쓸때 반납하는 기능이다.

오토 스케일링은 클러스터 구성시에도 가능하고 클러스터 구성후에도 설정 가능하며 실습을 진행해보자!

클러스터 생성시에 고급 설정을 들어간뒤, 2단계 하드웨어 설정에 있다.

현재 core 노드 3대, task 노드 3대로 총 6대의 노드 매니저가 작업을 진행할 것이다.

클러스터 스케일링중 EMR 관리자에 의한 스케일링을 선택하면 EMR이 알아서 자동 스케일링을 해준다.

서버를 추가/삭제 에 대한 정책 설정을 커스텀 하게 하는것이 필요하다면 아래 커스텀 설정 버튼을 클릭해 설정도 가능하나 우선 EMR 관리자에 의한 자동 조정을 사용해본뒤 부적절하다고 판단하면 사용하도록 한다. 

위 설정에 대한 예시로 설명 하자면

6대~12대의 서버로 운영하며, 온디맨드 서버는 6대, 코어 노드는 3대로 운영한다. 

그렇다고 하면 아래와 같이 서버가 운영된다.

- 코어 : 3대 온디맨드 / 추가로 투입되는 서버 없음

- 작업 : 3대 온디맨드/ 추가로 투입되는 서버는 최대 6대로 스팟 인스턴스

그다음은 클러스터 생성후 설정하는 방법을 알아본다.

AWS > 콘솔에 로그인 > 클러스터 목록 > 클러스터 선택 > 하드웨어 탭 > 클러스터 스케일링 정책 > Edit

위 경로로 들어가면 쉽게 설정이 가능하다.

자 이제 테스트를 진행해본다!

평상시에 20분 걸리는 작업이 있으며 6개의 서버로 돌아갈때 기준으로 오토 스케일링은 필요할때 최대 6대의 스팟 인스턴스를 할당 받을수 있도록 설정 한다.

테스트 결과는 아래와 같다.

항목 결과
인스턴스 요청은 언제 되는가? 작업 제출시 필요한 만큼 인스턴스 요청이 시작된다. 
인스턴스 요청후 할당 받을때 까지 시간은 얼마나 소요되는가? 최소 06분 ~ 20분 소요 되었다.
(m5.xlarge 스팟 인스턴스 온디맨드 최대 가격 설정 기준)
배치 결과는 어떤가? 30s 단축으로 더 긴 시간의 배치라면 더 단축 됐을 것으로 보인다.
다른 작업과 동시 실행시 결과는 어떤가? 동시 실행시 오토 스케일링 전에는 1시간이 소요되었으나
오토 스케일링 사용후 30분이 소요되어 30분이 단축되었다.
EMR 자동 관리자의 인스턴스 추가, 반납 정책은 ? 인스턴스 추가에 대한 정책은 나와 있지 않으나, 회수 정책은 모든 작업이 완료 되었을시 바로 반납 한다.
(축소 관련 문서 : https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-scaledown-behavior.html)

끝!

728x90
Comments