

# Amazon CloudWatch Logs에 Amazon Aurora MySQL 로그 게시
<a name="AuroraMySQL.Integrating.CloudWatch"></a>

일반, 느린, 감사, 오류 로그 데이터를 Amazon CloudWatch Logs의 로그 그룹에 게시하도록 Aurora MySQL DB 클러스터를 구성할 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 지표를 볼 수 있습니다. CloudWatch Logs를 사용하여 내구성이 뛰어난 스토리지에 로그 레코드를 저장할 수 있습니다.

CloudWatch Logs로 로그를 게시하려면 각 로그를 활성화해야 합니다. 오류 로그는 기본적으로 활성화되어 있지만 다른 유형의 로그는 명시적으로 활성화해야 합니다. MySQL에서 로그를 활성화하는 내용은 MySQL 설명서의 [일반 쿼리와 느린 쿼리 로그 출력 대상 선택](https://dev.mysql.com/doc/refman/8.0/en/log-destinations.html)을 참조하십시오. Aurora MySQL 감사 로그 활성화에 대한 자세한 내용은 [고급 감사 활성화](AuroraMySQL.Auditing.md#AuroraMySQL.Auditing.Enable) 단원을 참조하십시오.

**참고**  
로그 데이터 내보내기를 비활성화하면 Aurora가 기존 로그 그룹 또는 로그 스트림을 삭제하지 않습니다. 로그 데이터 내보내기를 비활성화하면 CloudWatch Logs에서 기존 로그 데이터를 계속 사용할 수 있으며, 로그 보존에 따라 저장된 감사 로그 데이터 비용이 발생합니다. CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 로그 스트림 및 로그 그룹을 삭제할 수 있습니다.
감사 로그를 CloudWatch Logs에 게시하는 다른 방법은 고급 감사를 활성화한 다음 사용자 지정 DB 클러스터 파라미터 그룹을 만들고 `server_audit_logs_upload` 파라미터를 `1`로 설정하는 것입니다. `server_audit_logs_upload` DB 클러스터 파라미터의 기본값은 `0`입니다. 고급 감사 활성화에 대한 자세한 내용은 [Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용](AuroraMySQL.Auditing.md) 섹션을 참조하세요.  
대안인 이 방법을 사용하는 경우 CloudWatch Logs에 액세스하고 `aws_default_logs_role` 클러스터 수준 파라미터를 이 역할에 대한 ARN으로 설정하는 IAM 역할을 보유해야 합니다. 역할에 대한 상세 정보는 [AWS 서비스에 액세스할 수 있는 IAM 역할 설정](AuroraMySQL.Integrating.Authorizing.IAM.md) 단원을 참조하십시오. 하지만 `AWSServiceRoleForRDS` 서비스 연결 역할이 있는 경우 CloudWatch Logs에 대한 액세스를 제공하고 모든 사용자 정의 역할을 무시합니다. Amazon RDS에 대한 서비스 연결 역할에 대한 자세한 내용은 [Amazon Aurora에 서비스 연결 역할 사용](UsingWithRDS.IAM.ServiceLinkedRoles.md) 섹션을 참조하세요.
감사 로그를 CloudWatch Logs로 내보내고 싶지 않은 경우, 감사 로그를 내보내는 모든 방법이 비활성화되었는지 확인하십시오. AWS Management Console, AWS CLI, RDS API, `server_audit_logs_upload` 파라미터가 그러한 방법에 해당합니다.

## 콘솔
<a name="AuroraMySQL.Integrating.CloudWatch.Console"></a>

콘솔에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 CloudWatch Logs에 게시할 수 있습니다.

**콘솔에서 Aurora MySQL 로그를 게시하려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. 로그 데이터를 게시하려는 DB 클러스터의 Aurora MySQL을 선택합니다.

1. **수정**을 선택합니다.

1. **로그 내보내기** 섹션에서 CloudWatch Logs에 게시하기 시작할 로그를 선택합니다.

1. **계속**을 선택한 후, 요약 페이지에서 **Modify DB Cluster(DB 클러스터 수정)**를 선택합니다.

## AWS CLI
<a name="AuroraMySQL.Integrating.CloudWatch.CLI"></a>

AWS CLI에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 게시할 수 있습니다. 이를 위해서는 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 명령을 다음 옵션과 함께 실행해야 합니다.
+ `--db-cluster-identifier`—DB 클러스터 식별자입니다.
+ `--cloudwatch-logs-export-configuration`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

또 다음 AWS CLI 명령 중 하나를 실행하여 Aurora MySQL 로그를 게시할 수 있습니다.
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)
+ [restore-db-cluster-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-s3.html)
+ [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html)
+ [restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html)

다음 옵션으로 AWS CLI 명령 중 하나를 실행합니다.
+ `--db-cluster-identifier`—DB 클러스터 식별자입니다.
+ `--engine`—데이터베이스 엔진입니다.
+ `--enable-cloudwatch-logs-exports`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

실행하는 AWS CLI 명령에 따라 다른 옵션이 필요할 수 있습니다.

**Example**  
다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 기존 Aurora MySQL DB 클러스터를 수정합니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier {{mydbcluster}} \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit","instance"]}'
```
Windows의 경우:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier {{mydbcluster}} ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit","instance"]}'
```

**Example**  
다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 Aurora MySQL DB 클러스터를 생성합니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-cluster \
2.     --db-cluster-identifier {{mydbcluster}} \
3.     --engine aurora \
4.     --enable-cloudwatch-logs-exports '["error","general","slowquery","audit","instance"]'
```
Windows의 경우:  

```
1. aws rds create-db-cluster ^
2.     --db-cluster-identifier {{mydbcluster}} ^
3.     --engine aurora ^
4.     --enable-cloudwatch-logs-exports '["error","general","slowquery","audit","instance"]'
```

## RDS API
<a name="AuroraMySQL.Integrating.CloudWatch.API"></a>

RDS API에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 게시할 수 있습니다. 이를 위해서는 다음 옵션과 함께 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 실행해야 합니다.
+ `DBClusterIdentifier`—DB 클러스터 식별자입니다.
+ `CloudwatchLogsExportConfiguration`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

또한 다음 RDS API 작업 중 하나를 실행하여 RDS API로 Aurora MySQL 로그를 게시할 수 있습니다.
+ [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)
+ [RestoreDBClusterFromS3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromS3.html)
+ [RestoreDBClusterFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html)
+ [RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html)

다음 파라미터로 RDS API 작업을 실행합니다.
+ `DBClusterIdentifier`—DB 클러스터 식별자입니다.
+ `Engine`—데이터베이스 엔진입니다.
+ `EnableCloudwatchLogsExports`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

실행하는 AWS CLI 명령에 따라 다른 파라미터가 필요할 수 있습니다.

## Amazon CloudWatch에서 로그 이벤트 모니터링
<a name="AuroraMySQL.Integrating.CloudWatch.Monitor"></a>

Aurora MySQL 로그 이벤트를 활성화한 후에 Amazon CloudWatch Logs에서 이 이벤트를 모니터링할 수 있습니다. 다음 접두사 밑에 Aurora DB 클러스터의 새 로그 그룹이 자동으로 생성됩니다. 여기서 `{{cluster-name}}`은 DB 클러스터 이름, `{{log_type}}`은 로그 유형을 나타냅니다.

```
/aws/rds/cluster/{{cluster-name}}/{{log_type}}
```

예를 들어 `mydbcluster`라는 이름의 DB 클러스터에 느린 쿼리 로그를 포함하도록 내보내기 함수를 구성하면, 느린 쿼리 데이터가 `/aws/rds/cluster/mydbcluster/slowquery` 로그 그룹에 저장됩니다.

클러스터의 모든 인스턴스에 있는 이벤트가 서로 다른 로그 스트림을 사용하는 로그 그룹으로 이동합니다. 다음 조건 중 어디에 해당하는지에 따라 달라집니다.
+ 지정된 이름의 로그 그룹이 존재합니다.

  Aurora는 기존 로그 그룹을 사용하여 클러스터의 로그 데이터를 내보냅니다. AWS CloudFormation 같은 자동 구성을 사용하여 미리 정의된 로그 보존 기간, 지표 필터 및 고객 액세스 권한이 있는 로그 그룹을 생성할 수 있습니다.
+ 지정된 이름의 로그 그룹이 존재하지 않습니다.

  인스턴스의 로그 파일에서 일치하는 로그 항목이 감지되면 Aurora MySQL은 CloudWatch Logs에 새 로그 그룹을 자동으로 생성합니다. 이 로그 그룹에는 기본 로그 보존 기간인 [**만료되지 않음(Never Expire)**]이 사용됩니다.

  로그 보존 기간을 변경하려면 CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용합니다. CloudWatch Logs의 로그 보존 기간 변경에 대한 자세한 내용은 [CloudWatch Logs에서 로그 데이터 보존 변경](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)을 참조하십시오.

DB 클러스터의 로그 이벤트 내에서 정보를 검색하려면 CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용합니다. 로그 데이터 검색 및 필터링에 관한 자세한 내용은 [로그 데이터 검색 및 필터](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)를 참조하십시오.