본문 바로가기

Other Service

[Tip] 고정 IP를 제공하여 Amazon EMR을 생성하는 방법 알아보기

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 Amazon EMR을 생성할 때 고정 IP로 생성이 되도록 하는 조치에 대해서 알아보도록 하겠습니다.

EMR 클러스터는 EC2와 같은 일시 중단 기능 미지원하며, 비용 이슈로 사용할 때만 배포해야 하는 상황입니다. 그런데 문제는 EMR 생성 시마다 IP가 변경되었고, BI 도구가 EMR 클러스터의 HIVE에 접속할 때 IP 변경 작업을 후속으로 취해야 한다는 것입니다. 그에 따라 AWS 프리미엄 지원 가이드 콘텐츠를 보면서 EMR을 생성할 때 고정 IP를 할당하도록 설정하는 과정입니다.


 

 

Assign a static private IP address to the master node of an Amazon EMR cluster

I want to create a static private IP address and associate it with the master node of an Amazon EMR cluster using a bootstrap action.

aws.amazon.com

IAM 권한 부여 

IAM 권한 없이 진행 시 발생되는 오류 메시지

2022-05-28T02:04:56.983Z ERROR Source: BOOTSTRAP_ACTION | ErrorCode: SCRIPT_EXECUTION_FAILED_CODE | Execution for s3://s3-scriptfile-location/script/assign_private_ip.py failed with code '1'

IAM > Role > EMR_EC2_DefaultRole > authority (tab) > Add permission > Directly attach an existing policy > AmazonEC2FullAccess > Next > ... 

EMR 기본 정책이 보이지 않는 경우 aws cli로 생성하는 명령어 : aws emr create-default-roles
AmazonEC2FullAccess 권한을 부여하지 않으려면 ec2:AssignPrivateIpAddresses를 인라인 정책으로 추가해야 한다.

EMR 생성 시 부트스트랩 수정 

EMR 생성 시 "Step 3: General Cluster Setup" > Bootstrap action > Add bootstrap action(customaction) > configure and add > Settings below >  add

구분 Name Script location optional arguments
내용 assign_private_ip.py s3://s3-scriptfile-location/script/assign_private_ip.py 10.0.0.47 ap-northeast-2
assign_private_ip.py : AWS 프리미엄 지원 가이드 콘텐츠에서 제공합니다.
다운 받은 assign_private_ip을 저장한 S3 버킷 경로 :
s3-scriptfile-location/script/
EMR에 지정하고 싶은 static ip : 10.0.0.47

EMR을 생성하고자 하는 region  ap-northeast-2

EMR 생성 후, Static IP(고정 IP) 확인 

EMR > 마스터노드 인스턴스 정보 > Networking (tab) > Secondary private IPv4 addresses

EMR이 생성될 때 위 그림처럼 2개의 인터페이스가 생성됩니다. Private Ipv4 addresses는 유동적으로 생성이 되는 인터페이스이고, Secondary private IPv4 addresses는 고정으로 생성되는 인터페이스입니다. 우리는 앞으로 고정으로 생성되는 인터페이스와 통신이 되도록 구성해 놓으면 됩니다.

 

반응형