Elastic Beanstalk 환경 상태 정보를 Amazon CloudWatch Logs로 스트리밍 - AWS Elastic Beanstalk

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

Elastic Beanstalk 환경 상태 정보를 Amazon CloudWatch Logs로 스트리밍

환경에 대해 확장 상태 보고를 활성화하면 CloudWatch Logs로 상태 정보를 스트리밍하도록 환경을 구성할 수 있습니다. 이 스트리밍은 Amazon EC2 인스턴스 로그 스트리밍과 독립적입니다. 이 단원에서는 환경 상태 정보 스트리밍에 대해 설명합니다. 인스턴스 로그 스트리밍에 대한 자세한 내용은 Amazon CloudWatch Logs에서 Elastic Beanstalk 사용 단원을 참조하십시오.

환경 상태 스트리밍을 구성하면 Elastic Beanstalk가 환경 상태에 대한 CloudWatch Logs 로그 그룹을 생성합니다. 로그 그룹의 이름은 /aws/elasticbeanstalk/environment-name/environment-health.log입니다. 이 로그 그룹 내에서 Elastic Beanstalk는 YYYY-MM-DD#<hash-suffix>라는 로그 스트림을 생성합니다(날짜당 로그 스트림이 둘 이상일 수 있음).

환경의 상태가 변경되면 Elastic Beanstalk는 상태 로그 스트림에 레코드를 추가합니다. 이 레코드는 상태 변화, 즉 새로운 상태와 상태 변경 이유에 대한 설명을 보여 줍니다. 예를 들어 로드 밸런서가 실패하면 환경의 상태가 심각으로 바뀔 수 있습니다. 확장 상태에 대한 설명은 상태 색상 및 상태 단원을 참조하십시오.

CloudWatch Logs로의 환경 상태 스트리밍을 위한 전제 조건

CloudWatch Logs로 환경 상태 스트리밍을 활성화하려면 다음 조건을 충족해야 합니다.

  • 플랫폼 - 확장 상태 보고를 지원하는 플랫폼 버전을 사용해야 합니다.

  • 권한 - Elastic Beanstalk가 환경에 대한 상태 정보를 스트리밍할 수 있도록 특정 로깅 관련 권한을 부여해야 합니다. Elasctic Beanstalk가 생성한 서비스 역할, aws-elasticbeanstalk-service-role 또는 계정의 서비스 연결 역할, AWSServiceRoleForElasticBeanstalk를 환경에서 사용하지 않는 경우 사용자 지정 서비스 역할에 다음 권한을 추가해야 합니다.

    { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*:log-stream:*" }

환경 상태 로그를 CloudWatch Logs로 스트리밍

Elastic Beanstalk 콘솔, EB CLI 또는 구성 옵션을 사용하여 CloudWatch Logs로의 환경 상태 스트리밍을 활성화할 수 있습니다.

Elastic Beanstalk 콘솔을 사용하여 환경 상태 로그 스트리밍

환경 상태 로그를 CloudWatch Logs로 스트리밍하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. [모니터링] 구성 범주에서 [편집]을 선택합니다.

  5. 상태 보고에서 보고 시스템확장으로 설정되었는지 확인합니다.

  6. CloudWatch Logs로 상태 이벤트 스트리밍에서 다음과 같이 합니다.

    • 로그 스트리밍을 활성화합니다.

    • 보존에 로그 저장 일수를 설정합니다.

    • 환경이 종료된 후 로그를 저장할지 여부를 지정하는 수명 주기 설정을 선택합니다.

  7. 변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.

로그 스트리밍을 활성화한 후 모니터링 구성 범주나 페이지로 돌아와서 로그 그룹 링크를 확인합니다. 이 링크를 클릭하여 CloudWatch 콘솔에서 환경 상태 로그를 봅니다.

EB CLI를 사용하여 환경 상태 로그 스트리밍

EB CLI를 사용하여 CloudWatch Logs로 환경 상태 로그 스트리밍을 활성화하려면 eb logs 명령을 사용합니다.

$ eb logs --cloudwatch-logs enable --cloudwatch-log-source environment-health

eb logs를 사용하여 CloudWatch Logs의 로그를 검색할 수도 있습니다. 예를 들어 다음 명령은 해당 환경에 대한 모든 상태 로그를 검색하고 이러한 로그를 .elasticbeanstalk/logs 아래의 디렉터리에 저장합니다.

$ eb logs --all --cloudwatch-log-source environment-health

구성 파일을 사용하여 환경 상태 로그 스트리밍

환경을 만들거나 업데이트할 때 구성 파일을 사용하여 CloudWatch Logs로의 환경 상태 로그 스트리밍을 설정하고 구성할 수 있습니다. 아래 예제를 사용하려면 텍스트를 복사하여, 해당 애플리케이션 소스 번들 최상위 수준의 .config 디렉터리 아래에 있는 확장명이 .ebextensions인 파일에 붙여 넣으십시오. 이 예제는 환경 상태 로그 스트리밍을 활성화하고, 환경 종료 후 로그를 유지하고, 로그를 30일 동안 저장하도록 Elastic Beanstalk를 구성합니다.

상태 스트리밍 구성 파일
############################################################################ ## Sets up Elastic Beanstalk to stream environment health information ## to Amazon CloudWatch Logs. ## Works only for environments that have enhanced health reporting enabled. ############################################################################ option_settings: aws:elasticbeanstalk:cloudwatch:logs:health: HealthStreamingEnabled: true ### Settings below this line are optional. # DeleteOnTerminate: Delete the log group when the environment is # terminated. Default is false. If false, the health data is kept # RetentionInDays days. DeleteOnTerminate: false # RetentionInDays: The number of days to keep the archived health data # before it expires, if DeleteOnTerminate isn't set. Default is 7 days. RetentionInDays: 30

기본 옵션 및 유효한 값은 aws:elasticbeanstalk:cloudwatch:logs:health 단원을 참조하십시오.