Run Command에 대한 Amazon CloudWatch Logs 구성
AWS Systems Manager의 기능인 Run Command를 사용하여 명령을 전송할 때는 명령 출력을 전송할 위치를 지정할 수 있습니다. 기본적으로 Systems Manager는 명령 출력의 첫 24,000자만 반환합니다. 명령 출력의 전체 세부 정보를 보려면 Amazon Simple Storage Service(Amazon S3) 버킷을 지정할 수 있습니다. 또는 Amazon CloudWatch Logs를 지정할 수 있습니다. CloudWatch Logs를 지정할 경우 Run Command가 모든 명령 출력과 오류 로그를 CloudWatch Logs에 주기적으로 전송합니다. 거의 실시간으로 출력 로그를 모니터링하고, 특정 구문, 값 또는 패턴을 검색하며, 검색을 기반으로 경보를 생성할 수 있습니다.
AWS Identity and Access Management(IAM) 관리형 정책 AmazonSSMManagedInstanceCore
및 CloudWatchAgentServerPolicy
를 사용하도록 관리형 노드를 구성한 경우 CloudWatch Logs로 출력을 보낼 추가 노드 구성이 필요하지 않습니다. 콘솔에서 명령을 전송하는 경우 이 옵션을 선택합니다. 혹은 AWS Command Line Interface (AWS CLI), AWS Tools for Windows PowerShell 또는 API 작업을 사용하는 경우 cloud-watch-output-config
섹션과 CloudWatchOutputEnabled
파라미터를 추가합니다. cloud-watch-output-config
섹션과 CloudWatchOutputEnabled
파라미터에 대해서는 나중에 이 주제 안에서 자세히 설명합니다.
EC2 인스턴스용 인스턴스 프로파일에 정책을 추가하는 것에 대한 자세한 내용은 Systems Manager에 필요한 인스턴스 권한 구성을 참조하세요. 관리형 노드로 사용할 예정인 온프레미스 서버 및 가상 머신에 대한 서비스 역할에 정책을 추가하는 것에 대한 정보는 하이브리드 및 멀티클라우드 환경에서 Systems Manager에 필요한 IAM 서비스 역할 생성을 참조하세요.
노드에 사용자 정의 정책을 사용하는 경우라면 Systems Manager가 CloudWatch Logs에 출력 및 로그를 전송하는 것을 허용하도록 각 노드의 정책을 업데이트합니다. 사용자 지정 정책에 다음 정책 객체를 추가하십시오. IAM 정책 업데이트에 대한 자세한 내용은 IAM User Guide의 Editing IAM policies를 참조하세요.
{ "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "*" }, { "Effect":"Allow", "Action":[ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource":"arn:aws:logs:*:*:log-group:/aws/ssm/*" },
명령을 전송할 때 CloudWatch Logs 지정
AWS Management Console에서 명령을 보낼 때 CloudWatch Logs를 출력으로 지정하려면 [출력 옵션(Output options)] 섹션에서 [CloudWatch 출력(CloudWatch Output)]을 선택합니다. 선택에 따라 명령 출력을 전송할 CloudWatch Logs 그룹의 이름을 지정할 수 있습니다. 그룹 이름을 지정하지 않으면 Systems Manager에서 로그 그룹을 자동으로 생성합니다. 로그 그룹은 /aws/ssm/
명명 형식을 사용합니다.SystemsManagerDocumentName
AWS CLI를 사용하여 명령을 실행하는 경우 명령에서 cloud-watch-output-config
섹션을 지정합니다. 이 섹션에서 CloudWatchOutputEnabled
파라미터를 지정할 수 있고, 선택에 따라 CloudWatchLogGroupName
파라미터도 지정할 수 있습니다. 다음 예를 참고하세요
CloudWatch Logs에서 명령 출력 보기
명령 실행을 시작하자마자 Systems Manager는 거의 실시간으로 CloudWatch Logs로 출력을 보냅니다. CloudWatch Logs에서 출력은 다음 형식을 사용합니다.
CommandID
/InstanceID
/PluginID
/stdout
CommandID
/InstanceID
/PluginID
/stderr
30초마다 혹은 버퍼가 200KB를 초과할 때, 어느 것에든 먼저 도달하면 실행에서 출력을 업로드합니다.
참고
출력 데이터를 사용할 수 있을 때에만 로그 스트림이 생성됩니다. 예를 들어 실행에 대한 오류 데이터가 없는 경우 stderr 스트림이 생성되지 않습니다.
다음은 CloudWatch Logs에 표시되는 명령 출력의 예입니다.
Group - /aws/ssm/AWS-RunShellScript Streams – 1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stdout 24/1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stderr