아마존 로그와 함께 Elastic CloudWatch Beanstalk 사용하기 - AWS Elastic Beanstalk

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

아마존 로그와 함께 Elastic CloudWatch Beanstalk 사용하기

이 주제에서는 Amazon CloudWatch Logs 서비스가 Elastic Beanstalk에 제공할 수 있는 모니터링 기능에 대해 설명합니다. 또한 구성 설정을 안내하고 각 Elastic Beanstalk 플랫폼의 로그 위치를 나열합니다.

CloudWatch 로그를 구현하면 다음과 같은 모니터링 활동을 수행할 수 있습니다.

  • 사용자 환경의 EC2 Amazon 인스턴스에서 Elastic Beanstalk 애플리케이션, 시스템 및 사용자 지정 로그 파일을 모니터링하고 보관하세요.

  • 메트릭 필터가 추출하는 특정 로그 스트림 이벤트에 보다 쉽게 대응할 수 있도록 경보를 구성하십시오.

사용자 환경의 각 Amazon EC2 인스턴스에 설치된 CloudWatch Logs 에이전트는 구성한 각 로그 그룹에 대한 지표 데이터 포인트를 CloudWatch 서비스에 게시합니다. 각 로그 그룹은 자체 필터 패턴을 적용하여 데이터 CloudWatch 포인트로 전송할 로그 스트림 이벤트를 결정합니다. 동일한 로그 그룹에 속한 로그 스트림은 동일한 보존 기간, 모니터링 및 액세스 제어 설정을 공유합니다. 에 설명된 대로 로그를 서비스에 자동으로 CloudWatch 스트리밍하도록 Elastic Beanstalk를 구성할 수 있습니다. 인스턴스 로그를 Log로 CloudWatch 스트리밍 용어 및 개념을 비롯한 CloudWatch 로그에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서를 참조하십시오.

인스턴스 로그 외에도 환경 상태 개선을 활성화하면 상태 정보를 CloudWatch Logs로 스트리밍하도록 환경을 구성할 수 있습니다. Elastic Beanstalk 환경 상태 정보를 Amazon CloudWatch Logs로 스트리밍을 참조하세요.

Logs로 로그를 스트리밍하기 위한 사전 요구 사항 CloudWatch

환경의 Amazon EC2 인스턴스에서 Logs로 CloudWatch 로그를 스트리밍하려면 다음 조건을 충족해야 합니다.

  • 플랫폼 - 이 기능은 본 릴리스 이후 버전의 플랫폼에서만 사용할 수 있기 때문에 이전 플랫폼 버전을 사용하고 있는 경우 최신 플랫폼 버전으로 환경을 업데이트해야 합니다.

  • AWSElasticBeanstalkWorkerTierElastic Beanstalk 인스턴스 프로필에 AWSElasticBeanstalkWebTier또는 Elastic Beanstalk 관리형 정책이 없는 경우, 프로필에 다음을 추가하여 이 기능을 활성화해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": [ "*" ] } ] }

Elastic Beanstalk가 로그를 설정하는 방법 CloudWatch

Elastic Beanstalk는 생성하는 각 인스턴스에 기본 구성 설정이 포함된 로그 에이전트를 CloudWatch 설치합니다. 로그 에이전트 참조에서 CloudWatch 자세히 알아보십시오.

CloudWatch Logs로의 인스턴스 로그 스트리밍을 활성화하면 Elastic Beanstalk는 환경 인스턴스에서 Logs로 로그 파일을 보냅니다. CloudWatch 플랫폼마다 상이한 로그를 스트리밍합니다. 다음 표에는 플랫폼별 로그가 나열되어 있습니다.

플랫폼 / 플랫폼 브랜치

로그

도커 /

플랫폼 브랜치: 64비트 Amazon Linux 2에서 실행되는 도커

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/docker

  • /var/log/docker-events.log

  • eb-current-app/var/log/eb-docker/컨테이너/ /stdouterr.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Docker /

플랫폼 브랜치: 64비트 아마존 리눅스 2에서 ECS 실행

  • /var/log/docker-events.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/ecs/ecs-agent.log

  • /var/log/ecs/ecs-init.log

Go

. NET리눅스 코어

Java / 플랫폼 브랜치: 64비트 Amazon Linux 2에서 실행되는 Corretto

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Node.js

Python

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Tomcat

PHP

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

. NET윈도우 서버에서

  • C:\inetpub\logs\\ W3 LogFilesSVC1\ u_ex*.log

  • C:\Program 파일\ Amazon\ElasticBeanstalk\ 로그\ AWSDeployment .log

  • C:\Program 파일\ Amazon\ElasticBeanstalk\ 로그\ Hooks.log

Ruby

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/puma/puma.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

참고

2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션을(를) 참조하세요.

다음 표에는 Amazon Linux AMI (Amazon Linux 2 이전 버전) 기반 플랫폼 브랜치의 인스턴스에서 스트리밍되는 로그 파일이 플랫폼별로 나열되어 있습니다.

플랫폼 / 플랫폼 브랜치

로그

Docker /

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 Docker

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

  • eb-current-app/var/log/eb-docker/컨테이너/ /stdouterr.log

도커 /

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 멀티컨테이너 Docker

  • /var/log/eb-activity.log

  • /var/log/ecs/ecs-init.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/ecs/ecs-agent.log

  • /var/log/docker-events.log

Glassfish(미리 구성된 Docker)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

Go

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

Java /

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 Java 8

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 Java 7

  • /var/log/eb-activity.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

  • /var/log/web-1.error.log

  • /var/log/web-1.log

Tomcat

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /var/log/nginx/error_log

  • /var/log/nginx/access_log

Node.js

  • /var/log/eb-activity.log

  • /var/log/nodejs/nodejs.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

  • /var/log/httpd/error.log

  • /var/log/httpd/access.log

PHP

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

Python

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /opt/python/log/supervisord.log

Ruby /

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 Puma with Ruby

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/puma/puma.log

  • /var/log/nginx/access.log

Ruby /

플랫폼 브랜치: 64비트 Amazon Linux에서 실행되는 Passenger with Ruby

  • /var/log/eb-activity.log

  • /var/app/support/logs/passenger.log

  • /var/app/support/logs/access.log

  • /var/app/support/logs/error.log

Elastic Beanstalk는 스트리밍되는 다양한 로그 파일에 대해 CloudWatch Logs의 로그 그룹을 구성합니다. 로그에서 특정 로그 파일을 검색하려면 해당 CloudWatch 로그 그룹의 이름을 알아야 합니다. 로그 그룹 이름 지정 규칙은 플랫폼 운영 체제에 따라 다릅니다.

Linux 플랫폼의 경우 로그 그룹 이름을 얻기 위해서는 인스턴스 로그 파일 위치 앞에 /aws/elasticbeanstalk/environment_name를 붙여야 합니다. 예를 들어 /var/log/nginx/error.log 파일을 검색하려면 로그 그룹 /aws/elasticbeanstalk/environment_name/var/log/nginx/error.log를 지정합니다.

Windows 플랫폼의 경우 다음 표에서 각 로그 파일에 해당하는 로그 그룹을 참조하십시오.

온 인스턴스 로그 위치

로그 그룹

C:\Program Files\Amazon\ElasticBeanstalk\logs\AWSDeployment.log

/aws/elasticbeanstalk/<environment-name>/EBDeploy-Log

C:\Program Files\Amazon\ElasticBeanstalk\logs\Hooks.log

/aws/elasticbeanstalk/<environment-name>/EBHooks-Log

C:\inetpub\logs\LogFiles (전체 디렉터리)

/aws/elasticbeanstalk/<environment-name>/IIS-Log

인스턴스 로그를 Log로 CloudWatch 스트리밍

Elastic Beanstalk 콘솔, CLI EB 또는 구성 옵션을 사용하여 인스턴스 CloudWatch 로그를 로그로 스트리밍하도록 활성화할 수 있습니다.

활성화하기 전에 Logs 에이전트에서 사용할 IAM 권한을 설정하세요. CloudWatch 환경으로 할당하는 인스턴스 프로파일에 다음 사용자 지정 정책을 연결할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }

Elastic Beanstalk 콘솔을 사용한 인스턴스 로그 스트리밍

인스턴스 로그를 Logs로 스트리밍하려면 CloudWatch
  1. Elastic Beanstalk 콘솔을 열고 지역 목록에서 원하는 지역을 선택합니다. AWS 리전

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

    참고

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

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

  4. 업데이트, 모니터링 및 로깅 구성 범주에서 편집을 선택합니다.

  5. 로그로의 인스턴스 로그 스트리밍에서: CloudWatch

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

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

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

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

로그 스트리밍을 활성화한 후 소프트웨어 구성 범주나 페이지로 돌아와서 로그 그룹 링크를 확인합니다. CloudWatch 콘솔에서 로그를 보려면 이 링크를 클릭하십시오.

EB를 사용한 인스턴스 로그 스트리밍 CLI

CLIEB를 사용하여 Logs로 인스턴스 CloudWatch 로그를 스트리밍할 수 있게 하려면 eb logs 명령을 사용합니다.

$ eb logs --cloudwatch-logs enable

Logs에서 CloudWatch 로그를 eb logs 검색하는 데도 사용할 수 있습니다. 모든 환경의 인스턴스 로그를 검색하거나, 명령의 다양한 옵션을 사용하여 검색할 하위 로그를 지정할 수 있습니다. 예를 들어 다음 명령은 해당 환경에 대한 전체 인스턴스 로그를 검색하고 이러한 로그를 .elasticbeanstalk/logs 아래의 디렉터리에 저장합니다.

$ eb logs --all

특히 --log-group 옵션을 사용하면 특정 온 인스턴스 로그 파일에 해당하는 로그 그룹의 인스턴스 로그를 검색할 수 있습니다. 이를 위해 검색하려는 로그 파일이 속한 로그 그룹의 이름을 알아야 합니다. 이 정보는 Elastic Beanstalk가 로그를 설정하는 방법 CloudWatch 에서 확인할 수 있습니다.

구성 파일을 통한 인스턴스 로그 스트리밍

환경을 만들거나 업데이트할 때 구성 파일을 사용하여 CloudWatch Logs로의 인스턴스 로그 스트리밍을 설정하고 구성할 수 있습니다. 다음 예제 구성 파일은 기본 인스턴스 로그 스트리밍을 활성화합니다. Elastic Beanstalk는 해당 환경 플랫폼에 대한 기본 로그 파일을 스트리밍합니다. 예제를 사용하려면 텍스트를 복사한 후, 해당 애플리케이션 소스 번들 최상위 .ebextensions 디렉터리에서 확장명이 .config인 파일에 붙여넣습니다.

option_settings: - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: StreamLogs value: true

사용자 지정 로그 파일 스트리밍

Elastic Beanstalk와 Logs의 CloudWatch 통합은 애플리케이션이 생성하는 사용자 지정 로그 파일의 스트리밍을 직접 지원하지 않습니다. 사용자 지정 로그를 스트리밍하려면 구성 파일을 사용하여 CloudWatch 에이전트를 직접 설치하고 푸시할 파일을 구성하십시오. 예제 구성 파일은 logs-streamtocloudwatch-linux.config을 참조하세요.

참고

예제는 Windows 플랫폼에서 작동하지 않습니다.

CloudWatch 로그 구성에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 CloudWatch 에이전트 구성 파일 참조를 참조하십시오.

CloudWatch 로그 통합 문제 해결

로그에서 CloudWatch 예상한 환경의 인스턴스 로그 중 일부를 찾을 수 없는 경우 다음과 같은 일반적인 문제를 조사할 수 있습니다.

  • IAM역할에 필요한 IAM 권한이 없습니다.

  • CloudWatch 로그를 지원하지 AWS 리전 않는 환경에서 환경을 시작했습니다.

  • 사용자 지정 로그 파일 중 하나가 해당 경로에 없습니다.