인스턴스를 재부팅하거나 시작할 때 기존 Amazon Elastic Compute Cloud(Amazon EC2) Windows 인스턴스에서 사용자 지정 스크립트를 실행하고 싶습니다. 어떻게 해야 하나요?
간략한 설명
인스턴스가 재부팅되거나 시작된 후에 실행되는 스크립트를 실행하려면 이를 사용자 데이터에 추가할 수 있습니다. 사용자 데이터는 EC2Config(Windows Server 2012 R2 이하) 또는 EC2Launch(Windows Server 2016 이상)에서 처리됩니다.
해결 방법
사용자 데이터에 스크립트를 추가할 때는 특수 태그 안에 스크립트를 묶어야 합니다. 이 태그는 명령이 명령 프롬프트 창에서 실행되는지 아니면 Windows PowerShell에서 실행되는지를 결정합니다. 자세한 내용은 시작 시 Windows 인스턴스에서 명령 실행을 참조하세요.
인스턴스가 실행 중이라면 사용자 데이터를 추가하거나 변경할 수 없지만 볼 수는 있습니다. 사용자 데이터를 추가하거나 변경하려면 인스턴스가 중지 상태여야 합니다. 사용자 데이터는 인스턴스를 재부팅하거나 시작할 때 자동으로 실행되지 않습니다. 다음번에 사용자 데이터가 실행되도록 활성화할 수도 있고, 인스턴스를 재부팅하거나 시작할 때마다 실행되도록 할 수도 있습니다.
경고: 인스턴스를 중지하기 전에 다음 사항에 유의하세요.
- 탄력적 IP 주소를 사용하지 않는 경우 인스턴스를 중지하면 퍼블릭 IP 주소가 릴리스됩니다.
- 이 인스턴스에 인스턴스 스토어 볼륨이 있는 경우 인스턴스가 중지되면 해당 인스턴스의 모든 데이터가 유실됩니다.
- [instance shutdown behavior]가 [Terminate]로 설정된 경우 인스턴스는 중지 시 종료됩니다.
- 인스턴스가 Auto Scaling 그룹의 일부인 경우 먼저, 해당 인스턴스를 Auto Scaling 그룹에서 분리하세요. 그리고 인스턴스를 중지했다가 시작한 후, 인스턴스를 Auto Scaling 그룹에 다시 연결하세요.
자세한 내용은 인스턴스 중지 및 시작을 참조하세요.
1. EC2 Windows 인스턴스에 연결합니다.
2. Windows Server 2016 이상의 경우 Windows PowerShell 명령 창을 열고 다음 명령을 실행합니다.
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule
Windows Server 2012 R2 이전의 경우 C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigServiceSetting.exe를 엽니다.
그런 다음 [User Data]에서 [Enable UserData execution for next service start]를 선택합니다.
참고: 앞의 명령은 인스턴스가 시작할 때마다 해당 인스턴스의 로컬 관리자 암호를 변경합니다. [키 페어 없음(No Key Pair)] 옵션을 선택한 상태로 AMI를 사용 중인 경우, 다시 시작하면 인스턴스에 대한 액세스가 손실될 수 있습니다.
3. Amazon EC2 콘솔에서 인스턴스를 중지합니다.
4. 인스턴스를 선택합니다. 그런 다음 [작업(Actions)], [인스턴스 설정(Instance Settings)], [사용자 데이터 편집(Edit User Data)]을 선택합니다.
5. 사용자 데이터를 추가하거나 업데이트한 다음 [Save]를 선택합니다.
참고: 인스턴스를 재부팅하거나 다시 시작할 때마다 사용자 데이터 스크립트를 실행하려면 다음을 추가합니다.
<persist>true</persist>
6. 인스턴스를 시작합니다. 사용자 데이터 스크립트는 인스턴스 시작 프로세스의 일부로 실행됩니다.
추가적인 문제 해결을 위해 EC2Launch 및 EC2Config 로그 파일에는 표준 출력 및 표준 오류 스트림의 출력이 포함되어 있습니다. 로그 파일은 다음과 같이 배치됩니다.
- EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
- EC2Config: C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2Config.log
관련 정보
새로운 EC2 Windows 인스턴스에서 시작 시 명령을 실행하려면 어떻게 해야 하나요?