연습: Windows PowerShell용 AWS 도구에서 Run Command 사용 - AWS 시스템 관리자

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

연습: Windows PowerShell용 AWS 도구에서 Run Command 사용

다음 예에서는 Windows PowerShell용 도구를 사용하여 명령 및 명령 파라미터에 대한 정보를 보는 방법, 명령을 실행하는 방법, 해당 명령의 상태를 보는 방법을 보여 줍니다. 이 연습에는 각 사전 정의 시스템 관리자 문서의 예가 포함되어 있습니다.

중요

신뢰할 수 있는 관리자만 이번 주제에서 언급하는 시스템 관리자 사전 구성 문서를 사용할 수 있도록 허용해야 합니다. 시스템 관리자 문서에서 지정하는 명령 또는 스크립트는 인스턴스에 대한 관리자 권한으로 실행됩니다. 사전 정의된 시스템 관리자 문서(AWS로 시작하는 모든 문서)를 실행할 권한이 있는 사용자는 해당 인스턴스에 대한 관리자 권한도 보유합니다. 그 밖의 모든 사용자들에 대해서는 제한된 문서를 생성하여 그 문서를 특정 사용자와 공유해야 합니다. 에 대한 액세스 제한에 대한 자세한 내용은 Run Command단원을 시스템 관리자의 관리자가 아닌 IAM 사용자 및 그룹 생성참조하십시오.

Windows PowerShell용 AWS 도구 세션 설정 구성

자격 증명 지정

로컬 Windows PowerShell용 AWS 도구 컴퓨터에서 를 열고 다음 명령을 실행하여 자격 증명을 지정합니다. 구성할 인스턴스에 대한 관리자 권한이 있거나 에서 적절한 권한을 부여 받아야 합니다.IAM. 자세한 내용은 단원을 참조하십시오.시스템 관리자 사전 조건.

Set-AWSCredentials –AccessKey key-name –SecretKey key-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')} ` -OutputS3BucketName demo-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')} ` -OutputS3BucketName demo-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 업데이트 관리 작업을 수행하는 방법을 보여 줍니다.

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'}