EC2 Windows 인스턴스 시작 중 작업을 수행하도록 EC2Launch v1 에이전트 사용하기
EC2 Windows 인스턴스 시작 중 작업을 수행하도록 EC2Launch v1 에이전트 사용하기
Windows Server 2016과 2019용 Amazon 관리 AMI에는 EC2Launch라는 Windows PowerShell 스크립트 집합이 포함돼 있어요. 이 절에서 EC2Launch가 수행하는 작업과 디렉터리 구조, 텔레메트리에 대해 살펴볼게요.
출처: 문서
본문
Windows Server 2016과 2019용 Amazon 관리 AMI에는 EC2Launch라는 Windows PowerShell 스크립트 집합이 포함돼 있어요. EC2Launch는 초기 인스턴스 부팅 중에 작업을 수행해요. AWS Windows AMI에 포함된 EC2Launch 버전에 대한 정보는 AWS Windows AMI Reference를 참고하세요.
참고
Windows Server 2016 이상 운영 체제 버전의 최신 시작 에이전트는 EC2Launch v2예요. EC2Config와 EC2Launch를 모두 대체하며, 이름이 EC2LaunchV2-Windows_Server-*로 시작하는 AWS Windows Server 2016·2019 AMI에 미리 설치돼 있어요. Windows Server 2016·2019에 에이전트를 수동으로 설치·구성할 수도 있어요. 자세한 내용은 Install EC2Launch v2를 참고하세요.
IMDSv2와 함께 EC2Launch를 사용하려면 버전이 1.3.2002730 이상이어야 해요.
다음 Windows PowerShell 명령으로 설치된 EC2Launch 버전을 확인할 수 있어요.
Test-ModuleManifest -Path "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1" | Select Version
EC2Launch 작업
EC2Launch는 초기 인스턴스 부팅 중에 기본적으로 다음 작업을 수행해요.
- 인스턴스에 대한 정보를 렌더링하는 새 바탕 화면 화면을 설정해요.
- 컴퓨터 이름을 인스턴스의 개인 IPv4 주소로 설정해요.
- 인스턴스 정보를 Amazon EC2 콘솔로 보내요.
- RDP 인증서 지문(thumbprint)을 EC2 콘솔로 보내요.
- 관리자 계정에 임의 비밀번호를 설정해요.
- DNS 접미사를 추가해요.
- 파티션되지 않은 공간을 포함하도록 운영 체제 파티션을 동적으로 확장해요.
- user data를 실행해요(지정된 경우). user data 지정에 대한 자세한 내용은 Run commands when you launch an EC2 instance with user data input을 참고하세요.
- 메타데이터 서비스와 AWS KMS 서버에 도달하도록 영구 정적 경로를 설정해요.
중요
이 인스턴스에서 사용자 지정 AMI를 만들면 이러한 경로가 OS 구성의 일부로 캡처되고, AMI에서 시작된 모든 새 인스턴스는 서브넷 배치와 관계없이 같은 경로를 유지해요. 경로를 업데이트하려면 Update metadata/KMS routes for Server 2016 and later when launching a custom AMI를 참고하세요.
다음 작업은 EC2Config 서비스와의 이전 버전 호환성을 유지하는 데 도움이 돼요. EC2Launch가 시작 중에 이러한 작업을 수행하도록 구성할 수도 있어요.
- 보조 EBS 볼륨을 초기화해요.
- Windows 이벤트 로그를 EC2 콘솔 로그로 보내요.
- Windows is ready to use 메시지를 EC2 콘솔로 보내요.
EC2Launch 디렉터리 구조
EC2Launch는 Windows Server 2016 이상 AMI의 C:\ProgramData\Amazon\EC2-Windows\Launch 루트 디렉터리에 기본으로 설치돼요.
참고
기본적으로 Windows는 C:\ProgramData 아래의 파일과 폴더를 숨겨요. EC2Launch 디렉터리와 파일을 보려면 Windows 탐색기에 경로를 입력하거나 폴더 속성을 변경해 숨김 파일·폴더를 표시해야 해요.
Launch 디렉터리에는 다음 하위 디렉터리가 포함돼요.
Scripts– EC2Launch를 구성하는 PowerShell 스크립트가 포함돼요.Module– Amazon EC2 관련 스크립트를 빌드하기 위한 모듈이 포함돼요.Config– 사용자 지정할 수 있는 스크립트 구성 파일이 포함돼요.Sysprep– Sysprep 리소스가 포함돼요.Settings– Sysprep 그래픽 사용자 인터페이스용 애플리케이션이 포함돼요.Library– EC2 시작 에이전트용 공유 라이브러리가 포함돼요.Log– 스크립트용 하위 디렉터리와 스크립트가 생성하는 로그 파일이 포함돼요.
텔레메트리
텔레메트리는 AWS가 내 요구 사항을 더 잘 이해하고, 문제를 진단하고, AWS 서비스 경험을 개선하는 기능을 제공하는 데 도움이 되는 추가 정보예요.
EC2Launch 버전 1.3.2003498 이상은 사용량 지표와 오류 같은 텔레메트리를 수집해요. 이 데이터는 EC2Launch가 실행되는 Amazon EC2 인스턴스에서 수집돼요. 여기에는 AWS가 소유한 모든 Windows AMI가 포함돼요.
EC2Launch가 수집하는 텔레메트리 유형은 다음과 같아요.
- 사용 정보 – 에이전트 명령, 설치 방법, 예약 실행 빈도
- 오류 및 진단 정보 – 에이전트 설치·실행 오류 코드
수집된 데이터의 예:
2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true
2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsUserDataScheduledPerBoot=true
2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandCode=1
2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandErrorCode=5
2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallCode=2
2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallErrorCode=0
텔레메트리는 기본적으로 활성화돼요. 언제든 텔레메트리 수집을 비활성화할 수 있어요. 텔레메트리가 활성화되면 EC2Launch는 추가 고객 알림 없이 텔레메트리 데이터를 보내요.
텔레메트리를 활성화할지 비활성화할지에 대한 내 선택이 수집돼요. 텔레메트리 수집을 옵트인하거나 옵트아웃할 수 있어요. 텔레메트리에 대한 옵트인/옵트아웃 선택은 내 텔레메트리 옵션을 준수하도록 보장하기 위해 수집돼요.
텔레메트리 가시성
텔레메트리가 활성화되면 Amazon EC2 콘솔 출력에 다음과 같이 나타나요.
2021/07/15 21:44:12Z: Telemetry: <Data>
인스턴스에서 텔레메트리 비활성화
시스템 환경 변수를 설정해 텔레메트리를 비활성화하려면 관리자 권한으로 다음 명령을 실행합니다.
setx /M EC2LAUNCH_TELEMETRY 0
설치 중 텔레메트리를 비활성화하려면 install.ps1을 다음과 같이 실행합니다.
. .\install.ps1 -EnableTelemetry:$false