

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

# Elastic Beanstalk 환경 상태 정보를 Amazon CloudWatch Logs로 스트리밍
<a name="AWSHowTo.cloudwatchlogs.envhealth"></a>

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

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

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

## CloudWatch Logs로의 환경 상태 스트리밍을 위한 전제 조건
<a name="AWSHowTo.cloudwatchlogs.envhealth.prereqs"></a>

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로 스트리밍
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming"></a>

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

### Elastic Beanstalk 콘솔을 사용하여 환경 상태 로그 스트리밍
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming.console"></a>

**환경 상태 로그를 CloudWatch Logs로 스트리밍하려면**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

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

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

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

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

1. **CloudWatch Logs로 상태 이벤트 스트리밍**에서 다음과 같이 합니다.
   + **로그 스트리밍**을 활성화합니다.
   + **보존**에 로그 저장 일수를 설정합니다.
   + 환경이 종료된 후 로그를 저장할지 여부를 지정하는 **수명 주기** 설정을 선택합니다.

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

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

### EB CLI를 사용하여 환경 상태 로그 스트리밍
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming.ebcli"></a>

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

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

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

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

### 구성 파일을 사용하여 환경 상태 로그 스트리밍
<a name="AWSHowTo.cloudwatchlogs.envhealth.files"></a>

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

**Example [상태 스트리밍 구성 파일](samples/aws_eb_cloudwatchlogs-envhealth.zip)**  

```
############################################################################
##  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`](command-options-general.md#command-options-general-cloudwatchlogs-health) 단원을 참조하십시오.