Windows Server AMI 업데이트
AWS-UpdateWindowsAmi
실행서를 사용하면 JSON 또는 YAML로 실행서를 만들지 않고도 Amazon Windows Amazon Machine Image(AMI)를 기반으로 이미지 유지 관리 태스크를 자동화할 수 있습니다. 이 실행서는 Windows Server 2008 R2 이상에 지원됩니다. 다음과 같은 유형의 태스크를 수행하는 데 AWS-UpdateWindowsAmi
실행서를 사용할 수 있습니다.
-
모든 Windows 업데이트를 설치하고 Amazon 소프트웨어를 업그레이드합니다(기본 동작).
-
특정 Windows 업데이트를 설치하고 Amazon 소프트웨어를 업그레이드합니다.
-
스크립트를 이용해 AMI를 사용자 지정합니다.
시작하기 전 준비 사항
실행서 작업을 시작하기 전에 액세스 권한을 부여하려는 인스턴스 프로파일의 ARN을 참조하는 iam:PassRole
정책을 추가하도록 Automation에 대한 역할을 구성합니다. 필요에 따라 AWS Systems Manager의 도구인 Automation에 대해 Amazon EventBridge를 구성합니다. 자세한 내용은 Automation 설정 단원을 참조하십시오. 또한 이 시연에서는 AWS Identity and Access Management(IAM) 인스턴스 프로파일의 이름을 지정해야 합니다. IAM 인스턴스 프로파일 생성에 대한 자세한 내용은 Systems Manager에 필요한 인스턴스 권한 구성을 참조하세요.
참고
AWS Systems Manager SSM Agent 업데이트는 일반적으로 서로 다른 시점에 여러 리전에 배포됩니다. AMI를 사용자 지정하거나 업데이트하려면 작업 중인 리전에 게시된 소스 AMI만 사용합니다. 그러면 해당 리전에 릴리스된 최신 SSM Agent로 작업하고 호환성 문제를 피할 수 있습니다.
AWS-UpdateWindowsAmi
실행서는 다음 입력 파라미터를 수락합니다.
파라미터 | 유형 | 설명 |
---|---|---|
SourceAmiId |
String |
(필수) 소스 AMI ID입니다. Systems Manager Parameter Store public 파라미터를 사용하여 자동으로 최신 Windows Server AMI ID를 참조할 수 있습니다. 자세한 내용은 AWS Systems ManagerParameter Store를 사용하여 최신 Windows AMI ID 쿼리 |
SubnetId |
String |
(선택 사항) 임시 인스턴스를 시작할 서브넷입니다. 기본 VPC를 삭제한 경우 이 파라미터의 값을 지정해야 합니다. |
IamInstanceProfileName |
String |
(필수) Systems Manager에 필요한 인스턴스 권한 구성에서 생성한 IAM 인스턴스 프로파일 역할의 이름입니다. 인스턴스 프로파일 역할은 인스턴스에 대해 명령 실행 또는 서비스 시작 및 중지와 같은 작업을 수행할 권한을 자동화 서비스에 부여합니다. 실행서에서는 이 인스턴스 프로파일 역할의 이름만 사용합니다. |
AutomationAssumeRole |
String |
(필수) Automation 설정에서 생성한 IAM 서비스 역할의 이름입니다. 서비스 역할(수임 역할)은 IAM 역할을 수임하고 사용자를 대신하여 작업을 수행할 수 있는 Automation 권한을 부여합니다. 예를 들어 서비스 역할은 실행서에서 |
TargetAmiName |
String |
(옵션) 새로 생성된 AMI의 이름입니다. 기본 이름은 원본 AMI ID, 생성 시간 및 날짜가 포함된 시스템 생성 문자열입니다. |
InstanceType |
String |
(선택 사항) 작업 영역의 호스트로 시작할 인스턴스의 유형입니다. 인스턴스 유형은 리전마다 다릅니다. 기본 형식은 t2.medium입니다. |
PreUpdateScript |
String |
(옵션) AMI를 업데이트하기 전에 실행할 스크립트. 실행서 또는 런타임에 파라미터로 스크립트를 입력합니다. |
PostUpdateScript |
String |
(옵션) AMI를 업데이트한 후에 실행할 스크립트. 실행서 또는 런타임에 파라미터로 스크립트를 입력합니다. |
IncludeKbs |
String |
(선택 사항) 포함시킬 하나 이상의 Microsoft Knowledge Base(KB) 문서 ID를 지정합니다. 쉼표로 분리된 값을 사용하여 여러 ID를 설치할 수 있습니다. 유효한 형식: KB9876543 또는 9876543. |
ExcludeKbs |
String |
(선택 사항) 제외할 하나 이상의 Microsoft Knowledge Base(KB) 문서 ID를 지정합니다. 쉼표로 분리된 값을 사용하여 여러 ID를 제외할 수 있습니다. 유효한 형식: KB9876543 또는 9876543. |
Categories |
String |
(선택 사항)하나 이상의 업데이트 범주를 지정합니다. 쉼표로 분리된 값을 사용하여 범주를 필터링할 수 있습니다. 옵션: 중요 업데이트, 보안 업데이트, 정의 업데이트, 업데이트 롤업, 서비스 팩, 도구, 업데이트 또는 드라이버. 유효한 형식에는 중요 업데이트 등 단일 입력이 포함됩니다. 또는 중요 업데이트,보안 업데이트,정의 업데이트처럼 쉼표로 구분된 목록을 지정할 수 있습니다. |
SeverityLevels |
String |
(선택 사항) 업데이트와 연결되는 하나 이상의 MSRC 심각도를 지정합니다. 쉼표로 분리된 값을 사용하여 심각도를 필터링할 수 있습니다. 옵션: 심각, 중요, 낮음, 보통 또는 비지정. 유효한 형식에는 심각 등 단일 입력이 포함됩니다. 또는 심각,중요,낮음처럼 쉼표로 구분된 목록을 지정할 수 있습니다. |
자동화 단계
AWS-UpdateWindowsAmi
실행서에는 기본적으로 다음과 같은 단계가 포함됩니다.
- 1단계: launchInstance(
aws:runInstances
작업) -
이 단계는 지정된
SourceAmiID
의 IAM 인스턴스 프로파일 역할을 사용하여 인스턴스를 시작합니다. - 2단계: runPreUpdateScript(
aws:runCommand
작업) -
이 단계에서는 업데이트가 설치되기 전에 실행되는 문자열로 스크립트를 지정할 수 있습니다.
- 3단계: updateEC2Config(
aws:runCommand
작업) -
이 단계는
AWS-InstallPowerShellModule
실행서를 사용하여 AWS 퍼블릭 PowerShell 모듈을 다운로드합니다. Systems Manager는 SHA-256 해시를 사용하여 모듈의 무결성을 확인합니다. 그런 다음 Systems Manager는 운영 체제를 확인하여 EC2Config 또는 EC2Launch를 업데이트할지 결정합니다. EC2Config는 Windows Server 2008 R2에서 Windows Server 2012 R2까지 실행됩니다. EC2Launch는 Windows Server 2016에서 실행됩니다. - 4단계: updateSSMAgent(
aws:runCommand
작업) -
이 단계는
AWS-UpdateSSMAgent
실행서를 사용하여 SSM Agent를 업데이트합니다. - 5단계: updateAWSPVDriver(
aws:runCommand
작업) -
이 단계는
AWS-ConfigureAWSPackage
실행서를 사용하여 AWS PV 드라이버를 업데이트합니다. - 6단계: updateAwsEnaNetworkDriver
aws:runCommand
작업) -
이 단계는
AWS-ConfigureAWSPackage
실행서를 사용하여 AWS ENA 네트워크 드라이버를 업데이트합니다. - 7단계: installWindowsUpdates(
aws:runCommand
작업) -
이 단계는
AWS-InstallWindowsUpdates
실행서를 사용하여 Windows 업데이트를 설치합니다. 기본적으로 Systems Manager는 누락된 모든 업데이트를 검색하고 설치합니다. 파라미터IncludeKbs
,ExcludeKbs
,Categories
또는SeverityLevels
중 하나를 지정하여 기본 동작을 변경할 수 있습니다. - 8단계: runPostUpdateScript(
aws:runCommand
작업) -
이 단계에서는 업데이트가 설치된 후에 실행되는 문자열로 스크립트를 지정할 수 있습니다.
- 9단계: runSysprepGeneralize(
aws:runCommand
작업) -
이 단계는
AWS-InstallPowerShellModule
실행서를 사용하여 AWS 퍼블릭 PowerShell 모듈을 다운로드합니다. Systems Manager는 SHA-256 해시를 사용하여 모듈의 무결성을 확인합니다. 그런 다음 Systems Manager는 EC2Launch(Windows Server 2016) 또는 EC2Config(Windows Server 2008 R2~2012 R2)에 대해 AWS 지원 방법을 사용하여 sysprep을 실행합니다. - 10단계: stopInstance(
aws:changeInstanceState
작업) -
이 단계에서는 업데이트된 인스턴스를 중지합니다.
- 11단계: createImage(
aws:createImage
작업) -
이 단계에서는 원본 ID 및 생성 시간과 링크할 수 있는 설명 이름으로 새 AMI를 생성합니다. 예를 들면 "EC2 자동화가 {{global:DATE_TIME}}에 {{SourceAmiId}}에서 생성한 AMI"와 같습니다. 여기서 DATE_TIME 및 SourceID는 자동화의 변수를 나타냅니다.
- 12단계: TerminateInstance(
aws:changeInstanceState
작업) -
이 단계에서는 실행 인스턴스를 종료하여 자동화를 정리합니다.
- 출력
-
이 섹션에서는 다양한 단계의 출력 또는 원하는 파라미터의 값을 자동화 출력으로 지정할 수 있습니다. 기본적으로 출력은 실행에 의해 생성되어 업데이트된 Windows AMI의 ID입니다.
참고
기본적으로 Automation이 AWS-UpdateWindowsAmi
실행서를 실행하고 임시 인스턴스를 생성하면 시스템이 기본 VPC를 사용합니다(172.30.0.0/16). 기본 VPC를 삭제했다면 다음 오류 메시지를 받게 됩니다.
VPC not defined 400
이 문제를 해결하려면 AWS-UpdateWindowsAmi
실행서의 사본을 만들고 서브넷 ID를 지정해야 합니다. 자세한 내용은 VPC not defined 400 단원을 참조하십시오.
Automation을 이용해 패치된 Windows AMI를 생성하려면
아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.
자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.
-
다음 명령을 실행하여
AWS-UpdateWindowsAmi
실행서를 실행합니다. 각example resource placeholder
를 사용자의 정보로 바꿉니다. 아래 예제 명령은 최신 Amazon EC2 AMI를 사용하여 적용해야 하는 패치의 개수를 최소화합니다. 이 명령을 두 번 이상 실행하면targetAMIname
에 고유한 값을 지정해야 합니다. AMI 이름은 고유해야 합니다.aws ssm start-automation-execution \ --document-name="AWS-UpdateWindowsAmi" \ --parameters SourceAmiId='
AMI ID
',IamInstanceProfileName='IAM instance profile
',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole
'이 명령으로 실행 ID가 반환됩니다. 클립보드에 이 ID를 복사합니다. 이 ID를 사용하여 자동화 상태를 확인합니다.
{ "AutomationExecutionId": "
automation execution ID
" } -
AWS CLI를 사용하여 자동화를 보려면 다음 명령을 실행합니다.
aws ssm describe-automation-executions
-
자동화 진행 상황에 대한 세부 정보를 보려면 다음 명령을 실행합니다.
aws ssm get-automation-execution --automation-execution-id
automation execution ID
참고
적용된 패치 수에 따라 이 샘플 자동화에서 실행된 Windows 패치 프로세스가 완료되는 데 30분 이상의 시간이 소요될 수 있습니다.