AWS Associate Developer 자격증을 준비하면서 EC2 관련 실습을 해보고 있습니다.
최근 EC2 인스턴스를 생성하면서 부트스트래핑될 때 특정 기능을 수행하도록 사용자 데이터를 추가해주었는데, 생성된 인스턴스의 Public IP로 액세스가 안되는 문제가 발생했습니다..
뒤늦게 사용자 데이터가 잘못 쓰였음을 깨닫고 수정을 했으나 아무리 재부팅을 반복해도 접근되지 않는겁니다.. 하하 결국엔 새로운 EC2 인스턴스를 만들자 바로 접근이 되었습니다.
알고보니, EC2 생성시에 작성한 사용자 데이터는 부팅 주기에 실행되지만 최초 한 번의 주기에만 실행되는 것이 기본값이라고 합니다. 만약 주기를 변경하고자 한다면 MIME 멀티파트 타입 파일을 통해 실행 빈도를 재정의할 수 있습니다. 이와 관련된 공식 문서를 아래에 첨부해놓습니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/execute-user-data-ec2/
EC2 인스턴스를 처음 시작한 후 사용자 데이터 실행
닫기 Tanvi 씨의 동영상을 통해 자세히 알아보기(3:15)
aws.amazon.com
기본적으로 cloud-init에서는 사용자 데이터에서 한 번에 하나의 콘텐츠 유형만 허용합니다. 그러나 멀티파트 파일을 통해서는 여러 컨텐츠 유형의 정보를 전달할 수 있습니다. 이 파일에 User Data를 전달하되, 이 User Data를 실행시키는 빈도를 변경하는 스크립트를 포함하면 됩니다.
아래 셸 스크립트는 공식 문서에서 제공하는 예시입니다. 중간에 #cloud-config를 통해 실행시키는 cloud_final_modules의 인자를 보면 scripts-user과 always가 전달되고 있습니다. 이는 사용자 스크립트가 인스턴스 시작시 매번(always) 실행되게 하라는 의미입니다.
만약 인스턴스 재시작마다 수행하고 싶은 작업이 있다면 아래 코드의 맨 아래에 bin/bash를 통해 실행시키는 부분의 코드를 해당 내용으로 대체하면 됩니다.
'AWS' 카테고리의 다른 글
AWS) DBeaver에서 SSH를 이용해 Private RDS 터널링하기 (0) | 2024.04.15 |
---|