사용자 데이터를 활용하여 Amazon EC2 Linux 인스턴스를 다시 시작할 때마다 스크립트를 자동으로 실행하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 다시 시작할 때마다 사용자 데이터를 사용하여 스크립트를 실행하려고 합니다. 어떻게 해야 하나요?

간략한 설명

기본적으로 사용자 데이터 스크립트 및 cloud-init 명령은 EC2 인스턴스가 시작될 때 첫 부팅 주기 중에만 실행됩니다. 그러나 MIME 멀티파트 파일을 사용하여 사용자 데이터 스크립트 및 cloud-init 명령을 구성할 수도 있습니다. mime 멀티파트 파일을 사용하면 cloud-init 패키지에서 사용자 데이터를 실행하는 빈도를 스크립트로 재정의할 수 있습니다. 그런 다음 파일에서 사용자 스크립트를 실행합니다. MIME 멀티파트 파일에 대한 자세한 내용은 cloud-init 웹 사이트의 MIME 멀티파트 아카이브를 참조하세요.

참고: 다음 해결 방법을 진행하기 전에 인스턴스의 스냅샷을 생성하는 것이 가장 좋습니다.

해결 방법

경고: 이 절차를 시작하기 전에 다음 사항에 검토하십시오.

1.    cloud-init의 최신 버전이 EC2 인스턴스에 설치되어 있고 올바르게 작동하는지 확인합니다.

2.    보안을 위해 ModifyInstanceAttribute API를 통해 사용자 데이터를 추가하거나 제거할 수 있는 사용자를 제한하도록 IAM 정책을 생성합니다.

3.    Amazon EC2 콘솔을 엽니다.

4.    인스턴스를 중지합니다.

5.    [작업]을 선택하고 [인스턴스 설정]을 선택한 다음 [사용자 데이터 편집]을 선택합니다.

6.    사용자 스크립트를 [사용자 데이터 편집] 상자에 복사하고 [저장]을 선택합니다.

다음은 /tmp 디렉터리의 testfile.txt 파일에 "Hello World"라는 텍스트를 쓰는 셸 스크립트의 예입니다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World" >> /tmp/testfile.txt
--//--

기본적으로 cloud-init에서는 사용자 데이터에서 한 번에 하나의 콘텐츠 유형만 허용합니다. 그러나 이 예제에서는 MIME 멀티파트 파일의 text/cloud-configtext/x-shellscript 콘텐츠 유형 모두를 보여줍니다.

text/cloud-config 콘텐츠 유형은 SCRIPTS-USER 파라미터를 ALWAYS로 설정하여 cloud-init 패키지에서 사용자 데이터가 실행되는 빈도를 재정의합니다.

text/x-shellscript 콘텐츠 유형은 cloud-init cloud_final_modules 모듈에 의해 실행될 실제 사용자 스크립트를 제공합니다. 이 예제에서는 다음과 같은 하나의 줄만 실행됩니다. /bin/echo "Hello World." >> /tmp/testfile.txt.

참고: /bin/echo "Hello World." >> /tmp/testfile.txt 줄을 인스턴스 부팅 중에 실행할 셸 스크립트로 바꿉니다.

7.    EC2 인스턴스를 다시 시작하고 스크립트가 올바르게 실행되는지 확인합니다.


관련 정보

시작 시 Linux 인스턴스에서 명령 실행

시작 시 Windows 인스턴스에서 명령 실행

AWS Systems Manager Automation

User-Data Formats

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠