기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
연습: Windows PowerShell용 AWS 도구에서 Run Command 사용
다음 예에서는 Windows PowerShell용 도구를 사용하여 명령 및 명령 파라미터에 대한 정보를 보는 방법, 명령을 실행하는 방법, 해당 명령의 상태를 보는 방법을 보여 줍니다. 이 연습에는 각 사전 정의 시스템 관리자 문서의 예가 포함되어 있습니다.
신뢰할 수 있는 관리자만 이번 주제에서 언급하는 시스템 관리자 사전 구성 문서를 사용할 수 있도록 허용해야 합니다. 시스템 관리자 문서에서 지정하는 명령 또는 스크립트는 인스턴스에 대한 관리자 권한으로 실행됩니다. 사전 정의된 시스템 관리자 문서(AWS로 시작하는 모든 문서)를 실행할 권한이 있는 사용자는 해당 인스턴스에 대한 관리자 권한도 보유합니다. 그 밖의 모든 사용자들에 대해서는 제한된 문서를 생성하여 그 문서를 특정 사용자와 공유해야 합니다. 에 대한 액세스 제한에 대한 자세한 내용은 Run Command단원을 시스템 관리자의 관리자가 아닌 IAM 사용자 및 그룹 생성참조하십시오.
주제
- Windows PowerShell용 AWS 도구 세션 설정 구성
- 사용할 수 있는 모든 문서 나열
- PowerShell 명령 또는 스크립트 실행
- AWS-InstallApplication 문서를 사용하여 애플리케이션 설치
- InstallPowerShellModule JSON 문서를 사용하여 PowerShell 모듈 설치
- AWS-JoinDirectoryServiceDomain JSON 문서를 사용하여 도메인에 인스턴스 조인
- ConfigureCloudWatch 문서를 Amazon CloudWatch Logs 사용하여 에 Windows 지표 전송
- AWS-UpdateEC2Config 문서를 EC2Config 사용하여 업데이트
- AWS-ConfigureWindowsUpdate 문서를 사용하여 Windows 자동 업데이트 활성화/비활성화
- 를 사용하여 Windows 업데이트 관리Run Command
Windows PowerShell용 AWS 도구 세션 설정 구성
자격 증명 지정
로컬 Windows PowerShell용 AWS 도구 컴퓨터에서 를 열고 다음 명령을 실행하여 자격 증명을 지정합니다. 구성할 인스턴스에 대한 관리자 권한이 있거나 에서 적절한 권한을 부여 받아야 합니다.IAM. 자세한 내용은 단원을 참조하십시오.시스템 관리자 사전 조건.
Set-AWSCredentials –AccessKey
key-name
–SecretKeykey-name
기본 AWS 리전 설정
다음 명령을 실행하여 PowerShell 세션에 대한 리전을 설정합니다. 이 예에서는 미국 동부(오하이오) 리전(us-east-2)을 사용합니다. Run Command는 Amazon Web Services 일반 참조의 시스템 관리자 서비스 엔드포인트.에 나열된 AWS 리전에서 현재 사용할 수 있습니다.
Set-DefaultAWSRegion ` -Region us-east-2
사용할 수 있는 모든 문서 나열
이 명령을 실행하면 계정에 사용 가능한 모든 문서가 나열됩니다.
Get-SSMDocumentList
PowerShell 명령 또는 스크립트 실행
Run Command 및 AWS-RunPowerShell
문서를 사용하면 원격 데스크톱을 통해 인스턴스에 로그인한 것처럼 EC2 인스턴스에서 명령이나 스크립트를 실행할 수 있습니다. 명령을 내리거나 로컬
스크립트의 경로를 입력하여 명령을 실행할 수 있습니다.
Run Command를 사용할 때 서버와 인스턴스를 재부팅하여 스크립트를 호출하는 방법은 스크립트에서 관리형 인스턴스 재부팅. 단원을 참조하십시오.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-RunPowerShellScript"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-RunPowerShellScript" | Select -ExpandProperty Parameters
AWS-RunPowerShellScript 문서를 사용하여 명령 보내기
다음 명령은 두 개의 인스턴스에 대해 "C:\Users"
디렉터리의 내용과 "C:\"
디렉터리의 내용을 보여줍니다.
$runPSCommand = Send-SSMCommand ` -InstanceIds @("
instance-ID-1
", "instance-ID-2
") ` -DocumentName "AWS-RunPowerShellScript" ` -Comment "Demo AWS-RunPowerShellScript with two instances" ` -Parameter @{'commands'=@('dir C:\Users', 'dir C:\')}
명령 요청 세부 정보 가져오기
다음 명령은 CommandId
를 사용하여 두 인스턴스에서 명령 실행 상태를 가져옵니다. 이 예에서는 이전 명령에서 반환된 CommandId
를 사용합니다.
Get-SSMCommand ` -CommandId $runPSCommand.CommandId
이 예에서 명령 상태는 성공, 보류 중 또는 진행 중일 수 있습니다.
인스턴스당 명령 정보 가져오기
다음 명령은 이전 명령의 CommandId
를 사용하여 인스턴스 단위로 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -CommandId $runPSCommand.CommandId
특정 인스턴스에 대한 응답 데이터로 명령 정보 가져오기
다음 명령은 특정 인스턴스에 대한 원래 Send-SSMCommand
출력을 반환합니다.
Get-SSMCommandInvocation ` -CommandId $runPSCommand.CommandId ` -Details $true ` -InstanceId
instance-ID
| Select -ExpandProperty CommandPlugins
명령 취소
다음 명령은 Send-SSMCommand
문서에 대한 AWS-RunPowerShellScript
를 취소합니다.
$cancelCommand = Send-SSMCommand ` -InstanceIds @("
instance-ID-1
","instance-ID-2
") ` -DocumentName "AWS-RunPowerShellScript" ` -Comment "Demo AWS-RunPowerShellScript with two instances" ` -Parameter @{'commands'='Start-Sleep –Seconds 120; dir C:\'} Stop-SSMCommand -CommandId $cancelCommand.CommandId
명령 상태 확인
다음 명령은 Cancel
명령의 상태를 확인합니다.
Get-SSMCommand ` -CommandId $cancelCommand.CommandId
AWS-InstallApplication 문서를 사용하여 애플리케이션 설치
Run Command 및 AWS-InstallApplication
문서를 사용하면 인스턴스에 애플리케이션을 설치, 복구 또는 제거할 수 있습니다. 이 명령에는 MSI 경로 또는 주소가 필요합니다.
Run Command를 사용할 때 서버와 인스턴스를 재부팅하여 스크립트를 호출하는 방법은 스크립트에서 관리형 인스턴스 재부팅. 단원을 참조하십시오.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-InstallApplication"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-InstallApplication" | Select -ExpandProperty Parameters
AWS-InstallApplication 문서를 사용하여 명령 보내기
다음 명령은 무인 모드로 인스턴스에 Python 버전을 설치하고 C:
드라이브의 로컬 텍스트 파일에 출력을 로깅합니다.
$installAppCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallApplication" ` -Parameter @{'source'='https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi'; 'parameters'='/norestart /quiet /log c:\pythoninstall.txt'}
인스턴스당 명령 정보 가져오기
다음 명령은 CommandId
를 사용하여 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -CommandId $installAppCommand.CommandId ` -Details $true
특정 인스턴스에 대한 응답 데이터로 명령 정보 가져오기
다음 명령은 Python 설치 결과를 반환합니다.
Get-SSMCommandInvocation ` -CommandId $installAppCommand.CommandId ` -Details $true ` -InstanceId
instance-ID
| Select -ExpandProperty CommandPlugins
InstallPowerShellModule JSON 문서를 사용하여 PowerShell 모듈 설치
Run Command 를 사용하여 EC2 인스턴스에 PowerShell 모듈을 설치할 수 있습니다. PowerShell 모듈에 대한 자세한 내용은
Windows PowerShell 모듈을
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-InstallPowerShellModule"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-InstallPowerShellModule" | Select -ExpandProperty Parameters
PowerShell 모듈 설치
다음 명령은 EZOut.zip 파일을 다운로드하고 설치한 다음 추가 명령을 실행하여 XPS 뷰어를 설치합니다. 마지막으로 이 명령의 출력이 “demo-ssm-output-bucket”이라는 S3 버킷으로 업로드됩니다.
$installPSCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallPowerShellModule" ` -Parameter @{'source'='https://gallery.technet.microsoft.com/EZOut-33ae0fb7/file/110351/1/EZOut.zip';'commands'=@('Add-WindowsFeature -name XPS-Viewer -restart')} ` -OutputS3BucketNamedemo-ssm-output-bucket
인스턴스당 명령 정보 가져오기
다음 명령은 CommandId
를 사용하여 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -CommandId $installPSCommand.CommandId ` -Details $true
인스턴스에 대한 응답 데이터로 명령 정보 가져오기
다음 명령은 특정 Send-SSMCommand
에 대한 원래 CommandId
. 출력을 반환합니다.
Get-SSMCommandInvocation ` -CommandId $installPSCommand.CommandId ` -Details $true | Select -ExpandProperty CommandPlugins
AWS-JoinDirectoryServiceDomain JSON 문서를 사용하여 도메인에 인스턴스 조인
Run Command를 사용하여 AWS Directory Service 도메인에 인스턴스를 빠르게 조인할 수 있습니다. 이 명령을 실행하기 전에 디렉터리를 생성.해야 합니다. 또한 AWS Directory Service에 대해 자세히 알아보는 것이 좋습니다. 자세한 정보는 AWS Directory Service란 무엇입니까?.를 참조하십시오.
현재는 도메인에 인스턴스를 조인하는 것만 가능합니다. 도메인에서 인스턴스를 제거할 수는 없습니다.
Run Command를 사용할 때 서버와 인스턴스를 재부팅하여 스크립트를 호출하는 방법은 스크립트에서 관리형 인스턴스 재부팅. 단원을 참조하십시오.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-JoinDirectoryServiceDomain"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-JoinDirectoryServiceDomain" | Select -ExpandProperty Parameters
도메인에 인스턴스 조인
다음 명령은 지정된 AWS Directory Service 도메인에 인스턴스를 조인하고 예제 S3 bucketS3 버킷에 생성된 출력을 업로드합니다.
$domainJoinCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-JoinDirectoryServiceDomain" ` -Parameter @{'directoryId'='d-example01
'; 'directoryName'='ssm.example.com
'; 'dnsIpAddresses'=@('192.168.10.195
', '192.168.20.97
')} ` -OutputS3BucketNamedemo-ssm-output-bucket
인스턴스당 명령 정보 가져오기
다음 명령은 CommandId
를 사용하여 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -CommandId $domainJoinCommand.CommandId ` -Details $true
인스턴스에 대한 응답 데이터로 명령 정보 가져오기
이 명령은 특정 Send-SSMCommand
에 대한 원래 CommandId
.의 출력을 반환합니다.
Get-SSMCommandInvocation ` -CommandId $domainJoinCommand.CommandId ` -Details $true | Select -ExpandProperty CommandPlugins
ConfigureCloudWatch 문서를 Amazon CloudWatch Logs 사용하여 에 Windows 지표 전송
애플리케이션, 시스템, 보안 및 Windows용 이벤트 추적(ETW) 로그에서 로 Windows Server 메시지를 보낼 수 Amazon CloudWatch Logs있습니다. 로그 기록을 처음 활성화하면 시스템 관리자은 애플리케이션, 보안, ETW 로그를 업로드하기 시작한 시간부터 1분 내에 생성된 모든 로그를 전송합니다. 시작한 시간보다 1분 전에 발생한 로그는 포함되지 않습니다. 로그 기록을 비활성화하고 다시 이를 활성화한 경우, 시스템 관리자은 중단된 시점부터의 로그를 전송합니다. 사용자 지정 로그 파일 및 IIS(인터넷 정보 서비스) 로그의 경우, 시스템 관리자은 시작 지점부터 로그 파일을 읽습니다. 또한 시스템 관리자 는 성능 카운터 데이터를 에 보낼 수도 CloudWatch Logs있습니다.
이전에 에서 CloudWatch 통합을 활성화한 경우 EC2Config 시스템 관리자 설정은 C:\\Program EC2ConfigService\\Settings\\AWS.EC2.Windows.CloudWatch.json 파일의 인스턴스에 로컬로 저장된 모든 설정을 재정의합니다. EC2Config 를 사용하여 단일 인스턴스에서 성능 카운터 및 로그를 관리하는 방법에 대한 자세한 내용은 로 성능 카운터 전송 CloudWatch 및 CloudWatch 로그로 로그를 참조하십시오.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-ConfigureCloudWatch"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-ConfigureCloudWatch" | Select -ExpandProperty Parameters
에 애플리케이션 로그 전송 CloudWatch
다음 명령은 인스턴스를 구성하고 Windows 애플리케이션 로그를 로 이동합니다.CloudWatch.
$cloudWatchCommand = Send-SSMCommand ` -InstanceID
instance-ID
` -DocumentName "AWS-ConfigureCloudWatch" ` -Parameter @{'properties'='{"engineConfiguration": {"PollInterval":"00:00:15", "Components":[{"Id":"ApplicationEventLog", "FullName":"AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"LogName":"Application", "Levels":"7"}},{"Id":"CloudWatch", "FullName":"AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters":{"Region":"region
", "LogGroup":"my-log-group
", "LogStream":"instance-id
"}}], "Flows":{"Flows":["ApplicationEventLog,CloudWatch"]}}}'}
인스턴스당 명령 정보 가져오기
다음 명령은 CommandId
를 사용하여 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -CommandId $cloudWatchCommand.CommandId ` -Details $true
특정 인스턴스에 대한 응답 데이터로 명령 정보 가져오기
다음 명령은 Amazon CloudWatch 구성의 결과를 반환합니다.
Get-SSMCommandInvocation ` -CommandId $cloudWatchCommand.CommandId ` -Details $true ` -InstanceId
instance-ID
| Select -ExpandProperty CommandPlugins
ConfigureCloudWatch 문서를 CloudWatch 사용하여 로 성능 카운터 전송
다음 명령 예는 로 성능 카운터를 업로드합니다.CloudWatch. 자세한 내용은 단원을 참조하십시오Amazon CloudWatch 사용 설명서.
$cloudWatchMetricsCommand = Send-SSMCommand ` -InstanceID
instance-ID
` -DocumentName "AWS-ConfigureCloudWatch" ` -Parameter @{'properties'='{"engineConfiguration": {"PollInterval":"00:00:15", "Components":[{"Id":"PerformanceCounter", "FullName":"AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"CategoryName":"Memory", "CounterName":"Available MBytes", "InstanceName":"", "MetricName":"AvailableMemory", "Unit":"Megabytes","DimensionName":"", "DimensionValue":""}},{"Id":"CloudWatch", "FullName":"AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"AccessKey":"", "SecretKey":"","Region":"region
", "NameSpace":"Windows-Default"}}], "Flows":{"Flows":["PerformanceCounter,CloudWatch"]}}}'}
AWS-UpdateEC2Config 문서를 EC2Config 사용하여 업데이트
Run Command 및 AWS-EC2ConfigUpdate
문서를 사용하여 EC2Config 인스턴스에서 실행 중인 Windows Server 서비스를 업데이트할 수 있습니다. 이 명령은 EC2Config 서비스를 최신 버전 또는 지정한 버전으로 업데이트할 수 있습니다.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` -Name "AWS-UpdateEC2Config"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-UpdateEC2Config" | Select -ExpandProperty Parameters
EC2Config 최신 버전으로 업데이트
$ec2ConfigCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-UpdateEC2Config"
인스턴스에 대한 응답 데이터로 명령 정보 가져오기
이 명령은 이전의 에서 지정된 명령의 출력을 반환합니다.Send-SSMCommand
:
Get-SSMCommandInvocation ` -CommandId $ec2ConfigCommand.CommandId ` -Details $true ` -InstanceId
instance-ID
| Select -ExpandProperty CommandPlugins
EC2Config 특정 버전으로 업데이트
다음 명령은 EC2Config 이전 버전으로 다운그레이드합니다.
Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-UpdateEC2Config" ` -Parameter @{'version'='4.9.3519'; 'allowDowngrade'='true'}
AWS-ConfigureWindowsUpdate 문서를 사용하여 Windows 자동 업데이트 활성화/비활성화
Run Command 및 AWS-ConfigureWindowsUpdate
문서를 사용하면 Windows Server 인스턴스에서 Windows 자동 업데이트를 활성화 또는 비활성화할 수 있습니다. 이 명령은 Windows 업데이트 에이전트를 구성하여 사용자가 지정하는
요일과 시간에 Windows 업데이트를 다운로드 및 설치합니다. 업데이트에 재부팅이 필요한 경우, 업데이트가 설치되고 15분 후 컴퓨터가 자동으로
재부팅됩니다. 이 명령을 사용하여 업데이트 설치가 아닌 확인을 위해 Windows 업데이트를 구성할 수도 있습니다. AWS-ConfigureWindowsUpdate
문서는 Windows Server 2008, 2008 R2, 2012, 2012 R2 및 2016과 호환됩니다.
설명 및 사용 가능한 파라미터 보기
Get-SSMDocumentDescription ` –Name "AWS-ConfigureWindowsUpdate"
파라미터에 대한 자세한 내용 보기
Get-SSMDocumentDescription ` -Name "AWS-ConfigureWindowsUpdate" | Select -ExpandProperty Parameters
Windows 자동 업데이트 활성화
다음 명령은 Windows 업데이트를 구성하여 매일 오후 10시에 업데이트를 자동으로 다운로드하고 설치합니다.
$configureWindowsUpdateCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-ConfigureWindowsUpdate" ` -Parameters @{'updateLevel'='InstallUpdatesAutomatically'; 'scheduledInstallDay'='Daily'; 'scheduledInstallTime'='22:00'}
Windows 자동 업데이트 활성화를 위한 명령 상태 보기
다음 명령은 CommandId
를 사용하여 Windows 자동 업데이트 활성화를 위한 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -Details $true ` -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
Windows 자동 업데이트 비활성화
다음 명령은 시스템에서 업데이트를 확인하지만 인스턴스를 자동으로 업데이트하지 않도록 Windows 업데이트 알림 수준을 낮춥니다.
$configureWindowsUpdateCommand = Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-ConfigureWindowsUpdate" ` -Parameters @{'updateLevel'='NeverCheckForUpdates'}
Windows 자동 업데이트 비활성화를 위한 명령 상태 보기
다음 명령은 CommandId
를 사용하여 Windows 자동 업데이트 비활성화를 위한 명령 실행 상태를 가져옵니다.
Get-SSMCommandInvocation ` -Details $true ` -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
를 사용하여 Windows 업데이트 관리Run Command
Run Command 및 AWS-InstallWindowsUpdates
문서를 사용하면 Windows Server.용 EC2 인스턴스에 대한 업데이트를 관리할 수 있습니다. 이 명령은 Windows Server용 EC2 인스턴스에서 누락된 업데이트를 스캔하거나 설치하고 다음 설치를 선택적으로 재부팅합니다. 또한 사용자 환경에 설치할 업데이트에 대한 적절한
분류 및 심각도 수준을 지정할 수 있습니다.
Run Command를 사용할 때 서버와 인스턴스를 재부팅하여 스크립트를 호출하는 방법은 스크립트에서 관리형 인스턴스 재부팅. 단원을 참조하십시오.
다음 예제에서는 지정된 Windows 업데이트 관리 작업을 수행하는 방법을 보여 줍니다.
누락된 Windows 업데이트를 모두 검색
Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Scan'}
특정 Windows 업데이트 설치
Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'IncludeKbs'='kb-ID-1
,kb-ID-2
,kb-ID-3
';'AllowReboot'='True'}
누락된 중요 Windows 업데이트 설치
Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'SeverityLevels'='Important';'AllowReboot'='True'}
누락된 Windows 업데이트를 특정 항목을 배제하고 설치
Send-SSMCommand ` -InstanceId
instance-ID
` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'ExcludeKbs'='kb-ID-1
,kb-ID-2
';'AllowReboot'='True'}