액세스 거부 오류 없이 Elastic Beanstalk 콘솔에서 로그를 다운로드하려면 어떻게 해야 하나요?

3분 분량
0

액세스 거부 오류가 발생하거나 로그 페이지가 로드 중에 멈추는 현상 없이 AWS Elastic Beanstalk 콘솔에서 로그를 다운로드하고 싶습니다.

간략한 설명

Elastic Beanstalk 환경 콘솔이나 웹 로그에서 테일 로그를 요청하면 가장 최근의 로그 항목이 함께 연결됩니다. 로그 항목은 하나의 텍스트 파일로 함께 연결되며 사용자 환경의 인스턴스에 의해 Amazon Simple Storage Service(S3)에 업로드됩니다.

번들 로그를 요청하면 환경의 인스턴스가 전체 로그 파일을 ZIP 아카이브로 패키징하여 Amazon S3에 업로드합니다.

사용자 환경의 인스턴스에는 Amazon S3 버킷에 쓸 수 있는 권한(s3:Get* ,s3:List*, s3:PutObject)이 있는 Elastic Beanstalk 인스턴스 프로필이 있어야 합니다. 이러한 권한은 기본 인스턴스 프로필에 포함됩니다. 사용자 지정 인스턴스 프로필 역할을 사용하는 경우 이러한 권한을 포함하세요.

AWS Elastic Beanstalk 콘솔에서 로그를 검색하려고 할 때 액세스 거부 오류 또는 다운로드 중에 멈춘 로그 문제를 해결하려면 다음을 확인하세요.

  • Amazon S3 사용자 권한
  • Amazon S3 버킷 정책
  • KMS 키로 암호화된 Amazon S3 버킷
  • Amazon S3 게이트웨이 엔드포인트 정책
  • 서비스 제어 정책(SCP)
  • 리소스 사용률

해결 방법

Amazon S3 사용자 권한

Elastic Beanstalk는 사용자 권한을 사용하여 Elastic Beanstalk S3 버킷에 로그를 저장하거나 업로드합니다. AWS ID 및 액세스 관리(IAM) 사용자는 Elastic Beanstalk 콘솔에서 로그를 검색하려면 다음 권한이 있어야 합니다.

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

참고: Elastic Beanstalk는 Amazon S3에서 로그를 삭제하는 데 사용자 권한을 사용하므로 사용자 정책에 s3:DeleteObject 권한도 있어야 합니다.

예시:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:GetBucketAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": "*"
    }
  ]
}

Amazon S3 버킷 정책

Elastic Beanstalk Amazon S3 버킷 정책을 확인하고 인스턴스 프로필에 PutObject 권한이 허용되는지 확인하세요. PutObject 권한은 기본 인스턴스 프로필(aws-elasticbeanstalk-ec2-role)에 자동으로 허용됩니다. 사용자 지정 인스턴스 프로필을 사용하는 경우 PutObject 권한을 추가해야 합니다.

예시:

{
            "Sid": "eb-ad78f54a-f239-4c90-adda-49e5f56cb51e",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012 :role/aws-elasticbeanstalk-ec2-role",
                    "arn:aws:iam::126355979347:role/custom-instance-profile-role"
                ]
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::elasticbeanstalk-ap-south-1-123456789012/resources/environments/logs/*"
        },

KMS 키로 암호화된 Amazon S3 버킷

Elastic Beanstalk에서 사용하는 Amazon S3 버킷에 KMS 키 암호화를 추가할 수 있습니다. KMS 키 암호화가 추가되면 콘솔의 Elastic Beanstalk 번들 로그 풀 작업에 의해 생성된 미리 서명된 URL이 실패합니다. 이 실패는 액세스 거부 오류로 표시됩니다.

해결 방법으로 Amazon S3 버킷 위치에서 번들 로그를 수동으로 다운로드할 수 있습니다. 자세한 내용은 Amazon S3의 로그 위치를 참조하세요.

Amazon S3 게이트웨이 엔드포인트 정책

Amazon Virtual Private Cloud(VPC) 엔드포인트를 사용하여 프라이빗 서브넷에서 Elastic Beanstalk 환경을 만들 수 있습니다. 이 시나리오에서는 인스턴스와 통신하고 UserdataBootstrap.shplatform.zip과 같은 파일을 검색할 수 있는 Amazon S3 게이트웨이 엔드포인트가 있어야 합니다. Amazon S3 게이트웨이 엔드포인트 수준에서 사용자 제한이 있는지 확인합니다. 자세한 내용은 Amazon S3용 게이트웨이 엔드포인트를 참조하세요.

서비스 제어 정책

권한이 올바른데도 액세스 거부 오류가 계속 표시되는 경우 계정에 조직 정책이 설정되어 있는지 확인하세요. 자세한 내용은 서비스 제어 정책(SCP)을 참조하세요.

리소스 사용률

모든 권한 및 정책이 올바르게 구성되었으면 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 리소스 사용률을 확인하세요. CPU 또는 메모리 사용량이 많은 등 서버 사용량이 지나치게 높으면 로그 다운로드가 중단될 수 있습니다. 이 문제를 해결하려면 인스턴스 유형을 변경하여 CPU 및 메모리 스토리지를 늘리세요. 예를 들어 t2.micro에서 t2.medium으로 변경할 수 있습니다.

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음