EC2Config 서비스로 레거시 Windows 운영 체제 인스턴스 실행 중 작업 수행하기
EC2Config 서비스로 레거시 Windows 운영 체제 인스턴스 실행 중 작업 수행하기
참고: EC2Config는 지원이 종료되었어요. 이 서비스가 실행되는 운영 체제 버전은 Microsoft가 더 이상 지원하지 않습니다. 최신 실행 에이전트로 업그레이드할 것을 강력히 권장합니다.
출처: 문서
본문
Windows Server 2022 이상 운영 체제 버전용 최신 실행 에이전트는 EC2Launch v2로, EC2Config와 EC2Launch를 모두 대체하며 AWS Windows Server 2022 및 2025 AMI에 사전 설치되어 있습니다. Windows Server 2016과 2019에는 에이전트를 수동으로 설치하고 구성할 수도 있어요. 자세한 내용은 Install EC2Launch v2 문서를 참고하세요.
Windows Server 2016 이전 버전의 Windows Server용 Windows AMI에는 선택적 서비스인 **EC2Config 서비스(EC2Config.exe)**가 포함됩니다. EC2Config는 인스턴스가 부팅될 때 시작되어 시작 시와 인스턴스를 중지하거나 시작할 때마다 작업을 수행합니다. EC2Config는 **주문형(on demand)**으로도 작업을 수행할 수 있어요. 일부 작업은 자동으로 활성화되고 다른 작업은 수동으로 활성화해야 합니다. 선택 사항이지만 이 서비스는 다른 방법으로는 사용할 수 없는 고급 기능에 대한 접근을 제공합니다. 이 서비스는 LocalSystem 계정에서 실행됩니다.
EC2Config 서비스는 재사용할 수 있는 커스터마이즈된 Windows AMI를 만들 수 있게 해주는 Microsoft 도구인 Sysprep을 실행합니다. EC2Config가 Sysprep을 호출할 때 %ProgramFiles%\Amazon\EC2ConfigService\Settings의 파일을 사용해 수행할 작업을 결정합니다. 이 파일들은 EC2 Service Properties 시스템 대화 상자를 통해 간접적으로 편집하거나, XML 편집기나 텍스트 편집기로 직접 편집할 수 있어요. 하지만 Ec2 Service Properties 시스템 대화 상자에서 사용할 수 없는 일부 고급 설정은 직접 편집해야 합니다.
설정을 업데이트한 인스턴스에서 AMI를 만들면 새 설정이 새 AMI에서 실행되는 모든 인스턴스에 적용됩니다. AMI 만들기에 대한 정보는 Create an Amazon EBS-backed AMI 문서를 참고하세요.
EC2Config는 설정 파일을 사용해 작업을 제어해요. 그래픽 도구를 사용하거나 XML 파일을 직접 편집해 이 설정 파일을 업데이트할 수 있습니다. 서비스 바이너리와 추가 파일은 %ProgramFiles%\Amazon\EC2ConfigService 디렉터리에 포함되어 있어요.
목차 (Contents)
- EC2Config와 AWS Systems Manager
- EC2Config 작업 (EC2Config tasks)
- EC2Config 설정 파일 (EC2Config settings files)
- 최신 버전의 EC2Config 설치 (Install the latest version of EC2Config)
- EC2Config 서비스용 .NET 프록시 설정 구성 (Configure .NET proxy settings)
- EC2 Windows 인스턴스의 시스템 대화 상자에서 EC2Config 서비스 속성 설정 (Set EC2Config service properties)
- EC2Config 실행 에이전트 문제 트러블슈팅 (Troubleshoot issues)
- EC2Config 버전 기록 (EC2Config version history)
EC2Config와 AWS Systems Manager
EC2Config 서비스는 2016년 11월 이전에 게시된 Windows Server 2016 이전 버전용 AMI에서 만든 인스턴스의 Systems Manager 요청을 처리합니다.
2016년 11월 이후에 게시된 Windows Server 2016 이전 버전용 AMI에서 만든 인스턴스에는 EC2Config 서비스와 SSM Agent가 포함됩니다. EC2Config는 앞서 설명한 모든 작업을 수행하고, SSM Agent는 Run Command와 State Manager 같은 Systems Manager 기능에 대한 요청을 처리합니다.
Run Command를 사용해 기존 인스턴스를 최신 버전의 EC2Config 서비스와 SSM Agent로 업그레이드할 수 있어요. 자세한 내용은 AWS Systems Manager 사용 설명서의 Update SSM Agent using Run Command 문서를 참고하세요.
EC2Config 작업 (EC2Config tasks)
EC2Config는 인스턴스가 처음 시작될 때 초기 시작 작업을 실행한 다음 그 작업들을 비활성화합니다. 이 작업을 다시 실행하려면 인스턴스를 종료하기 전에 명시적으로 활성화하거나 Sysprep을 수동으로 실행해야 해요. 이 작업들은 다음과 같습니다.
- 관리자 계정에 임의의 암호화된 비밀번호를 설정합니다.
- 원격 데스크톱 연결(Remote Desktop Connection)에 사용되는 호스트 인증서를 생성하고 설치합니다.
- 운영 체제 파티션을 동적으로 확장해 분할되지 않은 공간을 포함시킵니다.
- 지정된 사용자 데이터(Cloud-Init이 설치된 경우 Cloud-Init 포함)를 실행합니다. 사용자 데이터 지정에 대한 자세한 내용은 Run commands when you launch an EC2 instance with user data input 문서를 참고하세요.
EC2Config는 인스턴스가 시작될 때마다 다음 작업을 수행합니다.
- 호스트 이름을 16진수 표기법의 프라이빗 IP 주소와 일치하도록 변경합니다(이 작업은 기본적으로 비활성화되어 있으며 인스턴스 시작 시 실행되도록 활성화해야 해요).
- 키 관리 서버(AWS KMS)를 구성하고, Windows 활성화 상태를 확인하며, 필요에 따라 Windows를 활성화합니다.
- 모든 Amazon EBS 볼륨과 인스턴스 스토어 볼륨을 마운트하고 볼륨 이름을 드라이브 문자에 매핑합니다.
- 트러블슈팅에 도움이 되도록 이벤트 로그 항목을 콘솔에 기록합니다(이 작업은 기본적으로 비활성화되어 있으며 인스턴스 시작 시 실행되도록 활성화해야 해요).
- Windows가 준비되었음을 콘솔에 기록합니다.
- 단일 NIC 또는 다중 NIC가 연결될 때 다음 IP 주소를 사용할 수 있도록 기본 네트워크 어댑터에 커스텀 경로를 추가합니다:
169.254.169.250,169.254.169.251,169.254.169.254. 이 주소는 Windows 활성화와 인스턴스 메타데이터 접근 시 사용됩니다.-
참고: Windows OS가 IPv4를 사용하도록 구성되어 있으면 이 IPv4 링크-로컬 주소를 사용할 수 있습니다. Windows OS가 IPv4 네트워크 프로토콜 스택을 비활성화하고 IPv6를 대신 사용하면,
169.254.169.250과169.254.169.251대신[fd00:ec2::250]을 추가하고169.254.169.254대신[fd00:ec2::254]를 추가하세요.
-
EC2Config는 사용자가 로그인할 때마다 다음 작업을 수행합니다.
- 데스크톱 배경에 월페이퍼 정보를 표시합니다.
인스턴스가 실행 중인 동안 EC2Config가 주문형으로 다음 작업을 수행하도록 요청할 수 있습니다.
- Sysprep을 실행하고 인스턴스를 종료해 AMI를 만들 수 있게 합니다. 자세한 내용은 Create an Amazon EC2 AMI using Windows Sysprep 문서를 참고하세요.
EC2Config 설정 파일 (EC2Config settings files)
설정 파일은 EC2Config 서비스의 작업을 제어합니다. 이 파일들은 C:\Program Files\Amazon\Ec2ConfigService\Settings 디렉터리에 있습니다.
ActivationSettings.xml— 키 관리 서버(AWS KMS)를 사용한 제품 활성화를 제어합니다.AWS.EC2.Windows.CloudWatch.json— CloudWatch에 보낼 성능 카운터와 CloudWatch Logs에 보낼 로그를 제어합니다.BundleConfig.xml— EC2Config가 인스턴스 스토어 기반 인스턴스를 AMI 생성을 위해 어떻게 준비하는지 제어합니다.Config.xml— 기본 설정을 제어합니다.DriveLetterConfig.xml— 드라이브 문자 매핑을 제어합니다.EventLogConfig.xml— 인스턴스 부팅 중 콘솔에 표시되는 이벤트 로그 정보를 제어합니다.WallpaperSettings.xml— 데스크톱 배경에 표시되는 정보를 제어합니다.
ActivationSettings.xml
이 파일은 제품 활성화를 제어하는 설정을 포함합니다. Windows가 부팅되면 EC2Config 서비스가 Windows가 이미 활성화되었는지 확인합니다. 활성화되지 않았다면 지정된 AWS KMS 서버를 검색해 Windows를 활성화하려 시도합니다.
SetAutodiscover— AWS KMS를 자동으로 감지할지 나타냅니다.TargetKMSServer— AWS KMS의 프라이빗 IP 주소를 저장합니다. AWS KMS는 인스턴스와 같은 리전에 있어야 해요.DiscoverFromZone— 지정된 DNS 영역에서 AWS KMS 서버를 검색합니다.ReadFromUserData— UserData에서 AWS KMS 서버를 가져옵니다.LegacySearchZones— 지정된 DNS 영역에서 AWS KMS 서버를 검색합니다.DoActivate— 섹션에 지정된 설정으로 활성화를 시도합니다. 이 값은true또는false가 될 수 있습니다.LogResultToConsole— 결과를 콘솔에 표시합니다.
BundleConfig.xml
이 파일은 EC2Config가 인스턴스를 AMI 생성을 위해 어떻게 준비하는지 제어하는 설정을 포함합니다.
AutoSysprep— Sysprep을 자동으로 사용할지 나타냅니다. Sysprep을 사용하려면 값을Yes로 변경합니다.SetRDPCertificate— 원격 데스크톱 서버에 자체 서명된 인증서를 설정합니다. 이를 통해 인스턴스에 안전하게 RDP로 접속할 수 있어요. 새 인스턴스에 인증서가 있어야 한다면 값을Yes로 변경합니다. 이 설정은 자체 인증서를 생성할 수 있는 Windows Server 2016 이전 운영 체제 버전의 인스턴스에는 사용되지 않아요.SetPasswordAfterSysprep— 새로 실행된 인스턴스에 임의의 비밀번호를 설정하고, 사용자 실행 키로 암호화하며, 암호화된 비밀번호를 콘솔에 출력합니다. 새 인스턴스가 임의의 암호화된 비밀번호로 설정되지 않게 하려면 이 설정의 값을No로 변경합니다.
Config.xml
플러그 인 (Plug-ins)
Ec2SetPassword— 인스턴스를 실행할 때마다 임의의 암호화된 비밀번호를 생성합니다. 이 기능은 첫 실행 후 기본적으로 비활성화되어 있어, 이 인스턴스의 재부팅이 사용자가 설정한 비밀번호를 변경하지 않게 합니다. 인스턴스를 실행할 때마다 계속 비밀번호를 생성하려면 이 설정을Enabled로 변경합니다. 이 설정은 인스턴스에서 AMI를 만들 계획이라면 중요해요.Ec2SetComputerName— 인스턴스의 IP 주소를 기반으로 인스턴스 호스트 이름을 고유한 이름으로 설정하고 인스턴스를 재부팅합니다. 직접 호스트 이름을 설정하거나 기존 호스트 이름이 수정되지 않게 하려면 이 설정을 비활성화해야 해요.Ec2InitializeDrives— 시작 중에 모든 볼륨을 초기화하고 포맷합니다. 이 기능은 기본적으로 활성화됩니다.Ec2EventLog— 콘솔에 이벤트 로그 항목을 표시합니다. 기본적으로 시스템 이벤트 로그의 최근 오류 항목 3개가 표시됩니다. 표시할 이벤트 로그 항목을 지정하려면EC2ConfigService\Settings디렉터리의EventLogConfig.xml파일을 편집합니다. 이 파일의 설정에 대한 정보는 Eventlog Key 문서를 참고하세요.Ec2ConfigureRDP— 인스턴스에 자체 서명된 인증서를 설정해 사용자가 원격 데스크톱으로 인스턴스에 안전하게 접속할 수 있게 합니다. 이 설정은 자체 인증서를 생성할 수 있는 Windows Server 2016 이전 운영 체제 버전의 인스턴스에는 사용되지 않아요.Ec2OutputRDPCert— 사용자가 지문(thumbprint)과 대조해 확인할 수 있도록 원격 데스크톱 인증서 정보를 콘솔에 표시합니다.Ec2SetDriveLetter— 사용자 정의 설정에 따라 마운트된 볼륨의 드라이브 문자를 설정합니다. 기본적으로 Amazon EBS 볼륨이 인스턴스에 연결되면 인스턴스의 드라이브 문자로 마운트될 수 있습니다. 드라이브 문자 매핑을 지정하려면EC2ConfigService\Settings디렉터리의DriveLetterConfig.xml파일을 편집하세요.Ec2WindowsActivate— 이 플러그 인은 Windows 활성화를 처리합니다. Windows가 활성화되었는지 확인하고, 활성화되지 않았다면 AWS KMS 클라이언트 설정을 업데이트한 다음 Windows를 활성화합니다. AWS KMS 설정을 수정하려면EC2ConfigService\Settings디렉터리의ActivationSettings.xml파일을 편집하세요.Ec2DynamicBootVolumeSize— Disk 0/Volume 0을 확장해 분할되지 않은 공간을 포함시킵니다.Ec2HandleUserData— Sysprep 실행 후 인스턴스가 처음 실행될 때 사용자가 만든 스크립트를 만들고 실행합니다. script 태그로 감싼 명령은 배치 파일로 저장되고, PowerShell 태그로 감싼 명령은 .ps1 파일로 저장됩니다(Ec2 Service Properties 시스템 대화 상자의 User Data 확인란에 해당).Ec2ElasticGpuSetup— 인스턴스가 Elastic GPU와 연결되어 있으면 Elastic GPU 소프트웨어 패키지를 설치합니다.Ec2FeatureLogging— Windows 기능 설치와 해당 서비스 상태를 콘솔로 보냅니다. Microsoft Hyper-V 기능과 해당 vmms 서비스에 대해서만 지원됩니다.
글로벌 설정 (Global Settings)
ManageShutdown— Amazon S3 기반 AMI에서 실행된 인스턴스가 Sysprep을 실행하는 동안 종료되지 않도록 보장합니다.SetDnsSuffixList— Amazon EC2용 네트워크 어댑터의 DNS 접미사를 설정합니다. 이를 통해 정규화된 도메인 이름을 제공하지 않고 Amazon EC2에서 실행되는 서버의 DNS 해석이 가능해요.-
참고: 이는 다음 도메인에 대한 DNS 접미사 조회를 추가하고 다른 표준 접미사를 구성합니다. 실행 에이전트가 DNS 접미사를 설정하는 방법에 대한 자세한 내용은 Configure DNS Suffix for EC2 Windows launch agents 문서를 참고하세요.
-
region.ec2-utilities.amazonaws.com
-
WaitForMetaDataAvailable— EC2Config 서비스가 부팅을 계속하기 전에 메타데이터에 접근 가능하고 네트워크가 사용 가능할 때까지 기다리게 합니다. 이 확인은 EC2Config가 활성화 및 기타 플러그 인에 대한 정보를 메타데이터에서 얻을 수 있도록 보장합니다.ShouldAddRoutes— 다중 NIC가 연결될 때 다음 IP 주소를 사용할 수 있도록 기본 네트워크 어댑터에 커스텀 경로를 추가합니다:169.254.169.250,169.254.169.251,169.254.169.254. 이 주소는 Windows 활성화와 인스턴스 메타데이터 접근 시 사용됩니다.RemoveCredentialsfromSyspreponStartup— 서비스가 다음에 시작될 때 Sysprep.xml에서 관리자 비밀번호를 제거합니다. 이 비밀번호가 유지되도록 하려면 이 설정을 편집하세요.
DriveLetterConfig.xml
이 파일은 드라이브 문자 매핑을 제어하는 설정을 포함합니다. 기본적으로 볼륨은 사용 가능한 드라이브 문자에 매핑될 수 있습니다. 다음과 같이 볼륨을 특정 드라이브 문자에 마운트할 수 있어요.
<?xml version="1.0" standalone="yes"?>
<DriveLetterMapping>
<Mapping>
<VolumeName></VolumeName>
<DriveLetter></DriveLetter>
</Mapping>
. . .
<Mapping>
<VolumeName></VolumeName>
<DriveLetter></DriveLetter>
</Mapping>
</DriveLetterMapping>
VolumeName— 볼륨 레이블입니다. 예를 들어My Volume. 인스턴스 스토리지 볼륨의 매핑을 지정하려면Temporary Storage X레이블을 사용합니다. 이때 X는 0에서 25까지의 숫자입니다.DriveLetter— 드라이브 문자입니다. 예를 들어M:. 드라이브 문자가 이미 사용 중이면 매핑이 실패합니다.
EventLogConfig.xml
이 파일은 인스턴스 부팅 중 콘솔에 표시되는 이벤트 로그 정보를 제어하는 설정을 포함합니다. 기본적으로 System 이벤트 로그의 최근 오류 항목 3개를 표시합니다.
Category— 모니터링할 이벤트 로그 키입니다.ErrorType— 이벤트 유형입니다(예:Error,Warning,Information).NumEntries— 이 범주에 저장된 이벤트 수입니다.LastMessageTime— 같은 메시지가 반복적으로 푸시되지 않도록, 서비스가 메시지를 푸시할 때마다 이 값을 업데이트합니다.AppName— 이벤트를 기록한 이벤트 소스 또는 애플리케이션입니다.
WallpaperSettings.xml
이 파일은 데스크톱 배경에 표시되는 정보를 제어하는 설정을 포함합니다. 다음 정보가 기본적으로 표시됩니다.
Hostname— 컴퓨터 이름을 표시합니다.Instance ID— 인스턴스의 ID를 표시합니다.Public IP Address— 인스턴스의 퍼블릭 IP 주소를 표시합니다.Private IP Address— 인스턴스의 프라이빗 IP 주소를 표시합니다.Availability Zone— 인스턴스가 실행되는 가용 영역을 표시합니다.Instance Size— 인스턴스 유형을 표시합니다.Architecture— PROCESSOR_ARCHITECTURE 환경 변수의 설정을 표시합니다.
기본적으로 표시되는 정보 중 하나를 삭제해 제거할 수 있어요. 다음과 같이 추가 인스턴스 메타데이터를 표시하도록 추가할 수 있습니다.
<WallpaperInformation>
<name>display_name</name>
<source>metadata</source>
<identifier>meta-data/path</identifier>
</WallpaperInformation>
다음과 같이 추가 System 환경 변수를 표시하도록 추가할 수 있습니다.
<WallpaperInformation>
<name>display_name</name>
<source>EnvironmentVariable</source>
<identifier>variable-name</identifier>
</WallpaperInformation>
InitializeDrivesSettings.xml
이 파일은 EC2Config가 드라이브를 초기화하는 방법을 제어하는 설정을 포함합니다.
기본적으로 EC2Config는 운영 체제에서 온라인 상태로 만들지 않은 드라이브를 초기화합니다. 플러그 인을 다음과 같이 커스터마이즈할 수 있습니다.
<InitializeDrivesSettings>
<SettingsGroup>setting</SettingsGroup>
</InitializeDrivesSettings>
드라이브를 초기화할 방식을 지정하려면 설정 그룹을 사용합니다.
FormatWithTRIM— 드라이브 포맷 시 TRIM 명령을 활성화합니다. 드라이브가 포맷되고 초기화된 후 시스템이 TRIM 구성을 복원합니다. EC2Config 버전 3.18부터 디스크 포맷 작업 중 TRIM 명령은 기본적으로 비활성화됩니다. 이는 포맷 시간을 개선합니다. 이 설정을 사용해 EC2Config 버전 3.18 이상에서 디스크 포맷 작업 중 TRIM을 활성화하세요.FormatWithoutTRIM— 드라이브 포맷 시 TRIM 명령을 비활성화하고 Windows의 포맷 시간을 개선합니다. 드라이브가 포맷되고 초기화된 후 시스템이 TRIM 구성을 복원합니다.DisableInitializeDrives— 새 드라이브의 포맷을 비활성화합니다. 이 설정을 사용해 드라이브를 수동으로 초기화하세요.