RunCommand 실행 시 출력, 에러 로그가 S3 버킷에 저장되지 않을 때 해결 방법

RunCommand 실행 시 출력, 에러 로그가 S3 버킷에 저장되지 않을 때 해결하는 방법애 대해서 정리해 봤습니다.
2023.08.19

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RunCommand 실행 시 출력, 에러 로그가 S3 버킷에 저장되지 않을 때 해결하는 방법애 대해서 정리해 봤습니다.

문제 발생

RunCommand를 실행할 때, S3 버킷을 지정한 상태입니다.

RunCommand의 경우 문제 없이 실행에 성공한 상태입니다.

하지만 지정한 S3 버킷으로 들어가 보면, 로그가 저장되어 있지 않습니다.

문제 해결

RunCommand를 실행한 다음, S3 버킷에 로그를 저장하기 위해서는 아래 권한이 필요합니다.

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PutS3BucketRunCommandLogs",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::S3 Bucket Name/*"
        }
    ]
}

다음 권한을 가진 정책을 생성합니다.

생성한 정책을 EC2 인스턴스에 연결된 IAM Role에 추가합니다.

마지막으로 RunCommand를 실행해 보면, 문제 없이 S3 버킷에 로그가 저장되는 것을 확인할 수 있습니다.

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