내용으로 건너뛰기

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

3분 분량
0

사용자 데이터를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 다시 시작될 때마다 스크립트를 실행하게 하고 싶습니다.

간략한 설명

기본적으로 사용자 데이터 명령 및 cloud-init 지시문은 EC2 인스턴스를 실행할 때 첫 부팅 주기 동안만 실행됩니다. 이 구성을 덮어쓰려면 Multipurpose Internet Mail Extensions(MIME) 멀티파트 파일을 사용하여 사용자 데이터 명령 및 cloud-init 지시문을 구성하십시오. 자세한 내용은 cloud-init 웹 사이트의 MIME 멀티파트 아카이브를 참조하십시오. 그런 다음 파일을 인스턴스에 추가합니다.

참고: 모든 인스턴스의 인스턴스 사용자 데이터를 볼 수 있습니다. 단, 인스턴스 사용자 데이터를 업데이트하려면 인스턴스를 중지해야 합니다.

해결 방법

인스턴스 중지 및 시작 구성

참고: 인스턴스를 중지할 때 및 시작할 때 해당 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 인스턴스로 외부 트래픽을 라우팅하려면 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하는 것이 좋습니다. Amazon Route 53을 사용하는 경우, 퍼블릭 IP 주소가 변경될 때 Route 53 DNS 레코드를 업데이트해야 할 수 있습니다. 중지 및 시작은 인스턴스 재부팅과는 다릅니다. 자세한 내용은 EC2 인스턴스 중지 및 시작 작동 방식을 참조하십시오.

인스턴스를 중지하고 시작하기 전에 다음 작업을 수행하십시오.

다시 시작할 때마다 인스턴스가 스크립트를 실행하도록 구성

다음 단계를 완료하십시오.

  1. 인스턴스에 cloud-init의 최신 버전을 설치했는지 확인합니다. 최신 cloud-init 버전을 확인하려면 GitHub 웹 사이트의 릴리스 정규/cloud-init을 참조하십시오.
  2. 사용자 또는 역할의 AWS Identity and Access Management(IAM) 정책에 ec2:ModifyInstanceAttribute 권한이 있어야 합니다. IAM 정책을 수정하는 단계는 IAM 정책 편집(콘솔)을 참조하십시오.
  3. 인스턴스를 중지합니다.
  4. Amazon EC2 콘솔을 엽니다.
  5. 인스턴스를 선택하고, 해당 인스턴스를 선택합니다.
  6. 작업을 선택하고 인스턴스 설정을 선택합니다.
  7. 사용자 데이터 편집을 선택하고 사용자 명령을 MIME 멀티파트 파일로 입력합니다.
    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="cloud-config.txt"
    
    #!/bin/bash
    /bin/echo "Hello World" >> /tmp/testfile.txt
    --//--
    참고: /bin/echo "Hello World" >> /tmp/testfile.txt 섹션을 인스턴스가 시작될 때 실행하려는 쉘 명령으로 바꾸십시오. 앞선 예시 명령은 Hello World를 /tmp 디렉터리의 testfile.txt 파일에 작성합니다. MIME 멀티파트 파일을 사용하면 사용자 데이터에 콘텐츠 유형 여러 개를 동시에 추가할 수 있습니다. 앞선 예시 명령은 text/cloud-config 및 text/x-shellscript 콘텐츠 유형을 둘 다 사용합니다. scripts-user 파라미터를 always로 설정하여 text/cloud-config 콘텐츠 유형이 사용자 데이터가 cloud-init 패키지에서 실행되는 빈도를 재정의하게 합니다. text/x-shellscript 콘텐츠 유형이 cloud-init cloud_final_modules 모듈을 실행하는 사용자 명령을 제공합니다.
  8. 저장을 선택합니다.
  9. 인스턴스를 시작하고 스크립트가 실행되는지 확인합니다.
    참고: 스크립트가 예상한 대로 실행되지 않으면 /var/log/cloud-init-output.log 파일에서 스크립트를 디버그하는 데 사용할 수 있는 정보를 확인하십시오. 자세한 내용은 cloud-init 웹 사이트에서 cloud-init 디버그 방법을 참조하십시오.

관련 정보

사용자 데이터 입력으로 EC2 인스턴스를 시작할 때 명령 실행

새 EC2 Windows 인스턴스를 시작할 때 명령을 실행하려면 어떻게 해야 합니까?

인스턴스를 재부팅하거나 시작할 때 기존 EC2 Windows 인스턴스에서 명령을 실행하려면 어떻게 해야 합니까?

cloud-init 웹 사이트의 User-data 형식

AWS 공식업데이트됨 8달 전
1 댓글

This article was reviewed and updated on 2026-02-16.

전문가

답글을 게시함 2달 전