RunCommand 출력 로그 및 오류 로그를 S3 버킷에 저장해 보기

RunCommand 출력 로그 및 오류 로그를 S3 버킷에 저장해 보는 방법에 대해서 정리해 봤습니다.
2023.08.18

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RunCommand 출력 로그 및 오류 로그를 S3 버킷에 저장해 보는 방법에 대해서 정리해 봤습니다.

출력 로그 및 오류 로그

2021년 업데이트를 통해, RunCommand의 출력 로그를 최대 24,000자까지 표시하며, 출력 로그와 오류 로그를 별도로 확인할 수 있게 되었습니다.

그 외, S3 버킷이나, Amazon CloudWatch Logs에 출력 로그와 오류 로그를 저장해 텍스트 형식으로 확인해 볼 수 있습니다.

이번 블로그에서는 S3 버킷에 출력 로그와 오류 로그를 저장해 확인해 보는 방법에 대해서 정리해 봤습니다.

사전 준비

먼저 S3 버킷에 로그를 저장하기 위해서는 S3에 로그를 저장하기 위한 권한을 설정해야합니다.

IAM에서「정책 생성」을 클릭합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PutS3BucketRunCommandLogs",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::run-command-log-bucket/*"
        }
    ]
}

정책의 경우 S3 버킷에 관한 아래 권한을 추가합니다.

  • s3:PutObject
  • s3:GetObject
  • s3:PutObjectAcl

ARN에는 로그를 저장할 S3 버킷의 ARN을 입력합니다.

이어서 정책 이름을 입력하고, 정책 생성을 끝마칩니다.

마지막으로 EC2 인스턴스에 연결할 IAM Role입니다.

조금 전 생성한 S3 버킷에 로그를 저장할 권한을 가진 정책과, SSM RunCommand를 실행하기 위한 AmazonSSMManagedInstanceCore가 추가된 상태입니다.

  • run-command-logs-policy
  • AmazonSSMManagedInstanceCore

RunCommand 실행

테스트를 위해 RunCommand로 SSM 업데이트를 실시합니다.

SSM 업데이트를 위해 아래 항목을 검색해서 선택합니다.

  • AWS-UpdateSSMAgent

「수동으로 인스턴스 선택」을 클릭하고, SSM 업데이트를 실시할 대상 인스턴스를 선택합니다.

마지막으로「S3 버킷에 쓰기 활성화」를 체크한 다음, 로그를 저장할 버킷을 지정하고 RunCommand를 실행합니다.

S3 버킷에 로그가 성공적으로 저장된 것을 확인할 수 있습니다.

Successfully downloaded manifest
Successfully downloaded updater version 3.2.1377.0
Updating amazon-ssm-agent from 3.1.1732.0 to 3.2.1377.0
Successfully downloaded https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/amazon-ssm-agent/3.1.1732.0/amazon-ssm-agent-linux-amd64.tar.gz
Successfully downloaded https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/amazon-ssm-agent/3.2.1377.0/amazon-ssm-agent-linux-amd64.tar.gz
Initiating amazon-ssm-agent update to 3.2.1377.0
amazon-ssm-agent updated successfully to 3.2.1377.0

텍스트 파일을 열어서 확인해 보면, 문제 없이 로그가 출력되는 것을 확인할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !