

# Amazon RDS 로그 파일 모니터링
<a name="USER_LogAccess"></a>

모든 RDS 데이터베이스 엔진은 감사 및 문제 해결을 위해 액세스할 수 있는 로그를 생성합니다. 로그 유형은 데이터베이스 엔진에 따라 다릅니다.

AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 Amazon RDS API를 사용하여 DB 인스턴스 로그에 액세스할 수 있습니다. 트랜잭션 로그를 보거나 다운로드할 수 없습니다.

**Topics**
+ [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md)
+ [데이터베이스 로그 파일 다운로드](USER_LogAccess.Procedural.Downloading.md)
+ [데이터베이스 로그 파일 조사](USER_LogAccess.Procedural.Watching.md)
+ [Amazon CloudWatch Logs에 데이터베이스 로그 게시](USER_LogAccess.Procedural.UploadtoCloudWatch.md)
+ [REST를 사용하여 로그 파일 내용 읽기](DownloadCompleteDBLogFile.md)
+ [Amazon RDS for Db2 데이터베이스 로그 파일](USER_LogAccess.Concepts.Db2.md)
+ [MariaDB 데이터베이스 로그 파일](USER_LogAccess.Concepts.MariaDB.md)
+ [Amazon RDS for Microsoft SQL Server 데이터베이스 로그 파일](USER_LogAccess.Concepts.SQLServer.md)
+ [MySQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.MySQL.md)
+ [Amazon RDS for Oracle 데이터베이스 로그 파일](USER_LogAccess.Concepts.Oracle.md)
+ [RDS for PostgreSQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.PostgreSQL.md)

# 데이터베이스 로그 파일 보기 및 나열
<a name="USER_LogAccess.Procedural.Viewing"></a>

AWS Management Console을 사용하여 Amazon RDS DB 엔진에 대한 데이터베이스 로그 파일을 볼 수 있습니다. AWS CLI 또는 Amazon RDS API를 사용하여 다운로드하거나 모니터링할 수 있는 로그 파일을 나열할 수 있습니다.

**참고**  
기존 RDS for Oracle DB 인스턴스에 대한 로그 파일 목록을 볼 수 없는 경우 목록을 보려면 인스턴스를 재부팅합니다.

## 콘솔
<a name="USER_LogAccess.CON"></a>

**데이터베이스 로그 파일을 보려면**

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

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

1. 보고자 하는 로그 파일을 보유한 DB 인스턴스의 이름을 선택합니다.

1. **로그 및 이벤트** 탭을 선택합니다.

1. 아래로 스크롤하여 **로그** 섹션을 찾습니다.

1. (선택 사항) 검색어를 입력하여 결과를 필터링합니다.

1. 표시할 로그를 선택한 다음 **보기(View)**를 선택합니다.

## AWS CLI
<a name="USER_LogAccess.CLI"></a>

DB 인스턴스에 사용 가능한 데이터베이스 로그 파일을 나열하려면 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html) 명령을 사용합니다.

다음 예에서는 `my-db-instance`라는 DB 인스턴스에 대한 로그 파일 목록을 반환합니다.

**Example**  

```
1. aws rds describe-db-log-files --db-instance-identifier my-db-instance
```

## RDS API
<a name="USER_LogAccess.API"></a>

DB 인스턴스에 사용 가능한 데이터베이스 로그 파일을 나열하려면 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) 작업을 사용합니다.

# 데이터베이스 로그 파일 다운로드
<a name="USER_LogAccess.Procedural.Downloading"></a>

AWS Management Console, AWS CLI 또는 API를 사용하여 데이터베이스 로그 파일을 다운로드할 수 있습니다.

## 콘솔
<a name="USER_LogAccess.Procedural.Downloading.CON"></a>

**데이터베이스 로그 파일을 다운로드하려면**

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

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

1. 보고자 하는 로그 파일을 보유한 DB 인스턴스의 이름을 선택합니다.

1. **로그 및 이벤트** 탭을 선택합니다.

1. 아래로 스크롤하여 [**Logs**] 섹션을 찾습니다.

1. **로그** 섹션에서 다운로드할 로그 옆에 있는 버튼을 선택한 다음 **다운로드**를 선택합니다.

1. 제공된 링크에 대한 컨텍스트(마우스 오른쪽 클릭) 메뉴를 열고 나서 [**Save Link As**]를 선택합니다. 로그 파일을 저장할 위치를 입력한 다음 **저장**을 선택합니다.  
![\[로그 파일 보기\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/log_download2.png)

## AWS CLI
<a name="USER_LogAccess.Procedural.Downloading.CLI"></a>

데이터베이스 로그 파일을 다운로드하려면 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html)을 사용합니다. 기본적으로 이 명령은 로그 파일의 최신 부분만을 다운로드합니다. 하지만 `--starting-token 0` 파라미터를 지정하여 전체 파일을 다운로드할 수 있습니다.

다음 예제에서는 *log/ERROR.4*라는 로그 파일의 내용을 다운로드하여 *errorlog.txt*라는 로컬 파일에 저장하는 방법을 보여줍니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds download-db-log-file-portion \
2.     --db-instance-identifier myexampledb \
3.     --starting-token 0 --output text \
4.     --log-file-name log/ERROR.4 > errorlog.txt
```
Windows의 경우:  

```
1. aws rds download-db-log-file-portion ^
2.     --db-instance-identifier myexampledb ^
3.     --starting-token 0 --output text ^
4.     --log-file-name log/ERROR.4 > errorlog.txt
```

## RDS API
<a name="USER_LogAccess.Procedural.Downloading.API"></a>

데이터베이스 로그 파일을 다운로드하려면 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html) 작업을 사용합니다.

# 데이터베이스 로그 파일 조사
<a name="USER_LogAccess.Procedural.Watching"></a>

데이터베이스 로그 파일을 관찰하는 것은 UNIX 또는 Linux 시스템에서 파일을 추적하는 것과 같습니다. AWS Management Console을 사용하여 로그 파일을 볼 수 있습니다. RDS는 5초마다 로그 테일을 새로 고칩니다.

**데이터베이스 로그 파일을 조사하려면**

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

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

1. 보고자 하는 로그 파일을 보유한 DB 인스턴스의 이름을 선택합니다.

1. **로그 및 이벤트** 탭을 선택합니다.  
![\[로그 및 이벤트 탭을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/Monitoring_logsEvents.png)

1. **로그** 섹션에서 로그 파일을 선택한 다음 **보기**를 선택합니다.  
![\[로그를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch.png)

   RDS는 다음 MySQL 예제와 같이 로그의 끝부분을 보여줍니다.  
![\[로그 파일의 끝\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch_content.png)

# Amazon CloudWatch Logs에 데이터베이스 로그 게시
<a name="USER_LogAccess.Procedural.UploadtoCloudWatch"></a>

온프레미스 데이터베이스에서 데이터베이스 로그는 파일 시스템에 있습니다. Amazon RDS는 DB 인스턴스의 파일 시스템에 있는 데이터베이스 로그에 대한 호스트 액세스를 제공하지 않습니다. 이러한 이유로 Amazon RDS를 사용하면 데이터베이스 로그를 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)로 내보낼 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행할 수 있습니다. 또한 내구성이 뛰어난 스토리지에 데이터를 저장하고, CloudWatch Logs Agent로 데이터를 관리할 수 있습니다.

**Topics**
+ [RDS와 CloudWatch Logs에 대한 통합 개요](#rds-integration-cw-logs)
+ [CloudWatch Logs에 게시할 로그 결정](#engine-specific-logs)
+ [CloudWatch Logs에 게시할 로그 지정](#integrating_cloudwatchlogs.configure)
+ [CloudWatch Logs에서 로그 검색 및 필터링](#accessing-logs-in-cloudwatch)

## RDS와 CloudWatch Logs에 대한 통합 개요
<a name="rds-integration-cw-logs"></a>

CloudWatch Logs에서 *로그 스트림*은 동일한 소스를 공유하는 일련의 로그 이벤트입니다. CloudWatch Logs에서 각 별도의 로그 소스가 별도의 로그 스트림을 구성합니다. 로그 그룹은 동일한 보존 기간, 모니터링 및 액세스 제어 설정을 공유하는 로그 스트림 그룹입니다.

Amazon RDS는 DB 인스턴스 로그 레코드를 로그 그룹으로 지속적으로 스트리밍합니다. 예를 들어 게시하는 각 유형의 로그에 대한 로그 그룹 `/aws/rds/instance/instance_name/log_type`이 있습니다. 이 로그 그룹은 로그를 생성하는 데이터베이스 인스턴스와 동일한 AWS 리전에 있습니다.

보존 기간을 지정하지 않는 한 AWS는 CloudWatch Logs에 게시된 로그 데이터를 무기한 보존합니다. 자세한 내용은 [CloudWatch Logs에서 로그 데이터 보존 기간 변경](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)을 참조하세요.

## CloudWatch Logs에 게시할 로그 결정
<a name="engine-specific-logs"></a>

각 RDS 데이터베이스 엔진은 자체 로그 세트를 지원합니다. 데이터베이스 엔진 옵션에 대해 알아보려면 다음 주제를 검토하십시오.
+ [Amazon CloudWatch Logs에 Db2 로그 게시](USER_LogAccess.Concepts.Db2.md#USER_LogAccess.Db2.PublishtoCloudWatchLogs)
+ [Amazon CloudWatch Logs에 MariaDB 로그 게시](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [Amazon CloudWatch Logs에 MySQL 로그 게시](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Amazon CloudWatch Logs에 Oracle 로그 게시](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [Amazon CloudWatch Logs에 PostgreSQL 로그 게시](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)
+ [Amazon CloudWatch Logs에 SQL Server 로그 게시](USER_LogAccess.Concepts.SQLServer.md#USER_LogAccess.SQLServer.PublishtoCloudWatchLogs)

## CloudWatch Logs에 게시할 로그 지정
<a name="integrating_cloudwatchlogs.configure"></a>

콘솔에 게시할 로그를 지정합니다. AWS Identity and Access Management(IAM)에 서비스 연결 역할이 있는지 확인합니다. 서비스 연결 역할에 대한 자세한 내용은 [Amazon RDS에 서비스 연결 역할 사용](UsingWithRDS.IAM.ServiceLinkedRoles.md)를 참조하세요.

**게시할 로그 지정**

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

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

1. 다음 중 하나를 수행하세요.
   + **데이터베이스 생성**을 선택합니다.
   + 목록에서 데이터베이스를 선택한 다음 **수정**을 선택합니다.

1. **로그 내보내기**에서 게시할 로그를 선택합니다.

   다음 예시에서는 RDS for MySQL DB 인스턴스에 대한 감사 로그, 오류 로그, 일반 로그, 및 느린 쿼리 로그를 지정합니다.  
![\[CloudWatch Logs에 게시할 로그 선택\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/AddCWLogs.png)

## CloudWatch Logs에서 로그 검색 및 필터링
<a name="accessing-logs-in-cloudwatch"></a>

CloudWatch Logs 콘솔을 이용하여 지정된 기준을 충족하는 로그 항목을 검색할 수 있습니다. CloudWatch Logs 콘솔로 연결되는 RDS 콘솔이나 CloudWatch Logs 콘솔에서 직접 로그에 액세스할 수 있습니다.

**콘솔을 이용하여 로그 항목 검색**

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

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

1. DB 인스턴스를 고르십시오.

1. **구성**을 선택합니다.

1. **게시된 로그**에서 보려는 데이터베이스 로그를 선택합니다.

**CloudWatch Logs 콘솔을 사용하여 플로우 로그 레코드 검색**

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

1. 탐색 창에서 **로그 그룹**을 선택합니다.

1. 필터 상자에 **/aws/rds**를 입력합니다.

1. **로그 그룹**에서 검색할 로그 스트림이 포함된 로그 그룹의 이름을 선택합니다.

1. **로그 스트림**에서 검색할 로그 스트림의 이름을 선택합니다.

1. **로그 이벤트**에서 사용할 필터 구문을 입력합니다.

자세한 내용은 *Amazon CloudWatch Logs 사용 설명서의* [로그 데이터 검색 및 필터링](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)을 참조하십시오. RDS 로그를 모니터링하는 방법을 설명하는 블로그의 자습서는 [Amazon CloudWatch Logs, AWS Lambda 및 Amazon SNS를 사용하여 Amazon RDS에 대한 사전 예방적 데이터베이스 모니터링 구축](https://aws.amazon.com/blogs/database/build-proactive-database-monitoring-for-amazon-rds-with-amazon-cloudwatch-logs-aws-lambda-and-amazon-sns/)을 참조하십시오.

# REST를 사용하여 로그 파일 내용 읽기
<a name="DownloadCompleteDBLogFile"></a>

Amazon RDS는 DB 인스턴스 로그 파일 액세스를 허용하는 REST 엔드포인트를 제공합니다. Amazon RDS 로그 파일 내용을 스트리밍하는 애플리케이션을 작성해야 하는 경우 유용합니다.

구문은 다음과 같습니다.

```
GET /v13/downloadCompleteLogFile/DBInstanceIdentifier/LogFileName HTTP/1.1
Content-type: application/json
host: rds.region.amazonaws.com
```

다음 파라미터는 필수 파라미터입니다.
+ `DBInstanceIdentifier` — 다운로드하려는 로그 파일이 있는 DB 인스턴스에 고객이 할당하는 이름입니다.
+ `LogFileName` — 다운로드할 로그 파일의 이름입니다.

응답에는 스트림으로 요청된 로그 파일의 내용이 포함됩니다.

다음 예제에서는 *us-west-2* 리전에 *sample-sql*로 명명된 DB 인스턴스에 대해 *log/ERROR.6*으로 명명된 로그 파일을 다운로드합니다.

```
GET /v13/downloadCompleteLogFile/sample-sql/log/ERROR.6 HTTP/1.1
host: rds.us-west-2.amazonaws.com
X-Amz-Security-Token: AQoDYXdzEIH//////////wEa0AIXLhngC5zp9CyB1R6abwKrXHVR5efnAVN3XvR7IwqKYalFSn6UyJuEFTft9nObglx4QJ+GXV9cpACkETq=
X-Amz-Date: 20140903T233749Z
X-Amz-Algorithm: AWS4-HMAC-SHA256
X-Amz-Credential: AKIADQKE4SARGYLE/20140903/us-west-2/rds/aws4_request
X-Amz-SignedHeaders: host
X-Amz-Content-SHA256: e3b0c44298fc1c229afbf4c8996fb92427ae41e4649b934de495991b7852b855
X-Amz-Expires: 86400
X-Amz-Signature: 353a4f14b3f250142d9afc34f9f9948154d46ce7d4ec091d0cdabbcf8b40c558
```

존재하지 않는 DB 인스턴스를 지정하는 경우 응답에 다음 오류가 포함됩니다.
+ `DBInstanceNotFound` — `DBInstanceIdentifier`는 기존 DB 인스턴스를 참조하지 않습니다. (HTTP 상태 코드: 404)

# Amazon RDS for Db2 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.Db2"></a>

Amazon RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 RDS for Db2 진단 로그와 알림 로그에 액세스할 수 있습니다. 파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 섹션을 참조하세요.

**Topics**
+ [보존 일정](#USER_LogAccess.Concepts.Db2.Retention)
+ [Amazon CloudWatch Logs에 Db2 로그 게시](#USER_LogAccess.Db2.PublishtoCloudWatchLogs)

## 보존 일정
<a name="USER_LogAccess.Concepts.Db2.Retention"></a>

로그 파일은 날마다, 그리고 DB 인스턴스가 다시 시작될 때마다 교환됩니다. 다음은 Amazon RDS의 RDS for Db2 로그에 대한 보존 일정입니다.


****  

| 로그 유형 | 보존 일정 | 
| --- | --- | 
|  진단 로그  |  Db2는 인스턴스 수준 구성의 보존 설정을 벗어난 로그를 삭제합니다. Amazon RDS는 `diagsize` 파라미터를 1,000으로 설정합니다.  | 
|  알림 로그  |  Db2는 인스턴스 수준 구성의 보존 설정을 벗어난 로그를 삭제합니다. Amazon RDS는 `diagsize` 파라미터를 1,000으로 설정합니다.  | 

## Amazon CloudWatch Logs에 Db2 로그 게시
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs"></a>

RDS for Db2를 사용하면 Amazon CloudWatch Logs에 직접 진단 로그 이벤트와 알림 로그 이벤트를 게시할 수 있습니다. CloudWatch Logs로 로그 데이터를 분석한 다음 CloudWatch를 사용하여 경보를 만들고 지표를 봅니다.

CloudWatch Logs을 사용하여 다음 작업을 할 수 있습니다.
+ 정의한 보존 기간 만큼, 내구성이 뛰어난 스토리지 공간에 로그를 저장하십시오.
+ 로그 데이터를 검색하고 필터링합니다.
+ 계정 간에 로그 데이터를 공유합니다.
+ Amazon S3로 로그를 내보냅니다.
+ Amazon OpenSearch Service로 데이터를 스트리밍합니다.
+ Amazon Kinesis Data Streams를 이용해 로그 데이터를 실시간으로 처리합니다. 자세한 내용은 SQL 애플리케이션용 Amazon Managed Service for Apache Flink 개발자 안내서의 [Amazon CloudWatch Logs로 작업](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html)을 참조하세요.**

 Amazon RDS는 각 RDS for Db2 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어, 진단 로그와 알림 로그를 게시하면 진단 데이터는 `/aws/rds/instance/my_instance/diagnostic` 로그 그룹의 진단 로그 스트림에 저장되고 알림 로그 데이터는 `/aws/rds/instance/my_instance/notify` 로그 그룹에 저장됩니다.

**참고**  
RDS for Db2 로그를 CloudWatch Logs에 게시하는 기능은 기본적으로 활성화되지 않습니다. 자체 조정 메모리 관리자(STMM) 및 옵티마이저 통계 로그 게시는 지원되지 않습니다. RDS for Db2 로그를 CloudWatch Logs에 게시하는 기능은 아시아 태평양(홍콩)을 제외한 모든 리전에 지원됩니다.

### 콘솔
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs.console"></a>

**AWS Management Console에서 RDS for Db2 로그를 CloudWatch Logs에 게시하는 방법**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

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

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

   **diag.log**, **notify.log** 또는 둘 다를 선택할 수 있습니다.

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

### AWS CLI
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs.CLI"></a>

RDS for Db2 로그를 게시하기 위해 다음 파라미터와 함께 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 사용할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 명령을 사용하여 RDS for Db2 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
다음 예에서는 CloudWatch Logs 게시가 활성화된 RDS for Db2 DB 인스턴스를 만듭니다. `--enable-cloudwatch-logs-exports` 값은 `diag.log`, `notify.log` 또는 둘 다 포함할 수 있는 문자열의 JSON 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["diag.log","notify.log"]' \
    --db-instance-class db.m4.large \
    --engine db2-se
```
Windows의 경우:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"diag.log\",\"notify.log\"]" ^
    --db-instance-class db.m4.large ^
    --engine db2-se
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 RDS for Db2 DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `EnableLogTypes`입니다. 값은 `diag.log`, `notify.log` 또는 둘 다 포함할 수 있는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["diag.log","notify.log"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"diag.log\",\"notify.log\"]}"
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하는 기능을 비활성화하도록 기존 RDS for Db2 DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `DisableLogTypes`입니다. 값은 `diag.log`, `notify.log` 또는 둘 다 포함할 수 있는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["diag.log"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"diag.log\"]}"
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

# MariaDB 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.MariaDB"></a>

MariaDB 오류 로그, 느린 쿼리 로그, IAM 데이터베이스 인증 오류 로그, 일반 로그를 모니터링할 수 있습니다. MariaDB 오류 로그는 기본적으로 생성됩니다. DB 파라미터 그룹에서 파라미터를 설정하여 느린 쿼리 및 일반 로그를 생성할 수 있습니다. Amazon RDS는 모든 MariaDB 로그 파일을 교체합니다. 각 유형의 교체 간격은 다음과 같이 지정됩니다.

Amazon RDS 콘솔, Amazon RDS API, Amazon RDS CLI 또는 AWS SDK를 통해 MariaDB 로그를 직접 모니터링할 수 있습니다. 또한, 주 데이터베이스에 있는 데이터베이스 테이블로 로그를 전송하고 그 테이블을 쿼리하여 MariaDB 로그에 액세스할 수 있습니다. mysqlbinlog 유틸리티를 사용하여 이진 로그를 다운로드할 수 있습니다.

파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 단원을 참조하십시오.

**Topics**
+ [MariaDB 오류 로그 액세스](USER_LogAccess.MariaDB.Errorlog.md)
+ [MariaDB 느린 쿼리 및 일반 로그 액세스](USER_LogAccess.MariaDB.Generallog.md)
+ [Amazon CloudWatch Logs에 MariaDB 로그 게시](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [MariaDB의 로그 교체 및 보존](USER_LogAccess.MariaDB.LogFileSize.md)
+ [테이블 기반 MariaDB 로그 관리](Appendix.MariaDB.CommonDBATasks.Logs.md)
+ [MariaDB 바이너리 로깅 구성](USER_LogAccess.MariaDB.BinaryFormat.md)
+ [MariaDB 이진 로그 액세스](USER_LogAccess.MariaDB.Binarylog.md)
+ [MariaDB 바이너리 로그 주석 활성화](USER_LogAccess.MariaDB.BinarylogAnnotation.md)

# MariaDB 오류 로그 액세스
<a name="USER_LogAccess.MariaDB.Errorlog"></a>

MariaDB 오류 로그는 `<host-name>.err` 파일에 기록됩니다. Amazon RDS 콘솔을 사용하여 이 파일을 보거나 Amazon RDS API, Amazon RDS CLI 또는 AWS SDK를 사용하여 로그를 검색할 수 있습니다. `<host-name>.err` 파일은 5분마다 플러시되고 그 내용이 `mysql-error-running.log`에 추가됩니다. 그런 다음, `mysql-error-running.log` 파일은 1시간마다 순환되고 지난 24시간 동안 매시간 생성된 파일이 보존됩니다. 각 로그 파일이 생성된 시간(UTC)이 파일 이름에 추가됩니다. 로그 파일에는 타임스탬프도 포함되어 있어, 로그 항목이 작성된 시간을 확인하는 데 도움이 됩니다.

MariaDB에서는 시작, 종료 및 오류 발생 시에만 오류 로그에 데이터가 기록됩니다. DB 인스턴스는 오류 로그에 새 항목이 기록되지 않는 상태로 몇 시간이나 며칠씩 작동할 수 있습니다. 최근 항목이 보이지 않으면 이는 서버에서 로그에 입력된 오류가 발생하지 않았기 때문입니다.

# MariaDB 느린 쿼리 및 일반 로그 액세스
<a name="USER_LogAccess.MariaDB.Generallog"></a>

DB 파라미터 그룹에서 파라미터를 설정하면 MariaDB 느린 쿼리 로그와 일반 로그를 파일이나 데이터베이스 테이블에 기록할 수 있습니다. DB 파라미터 그룹의 생성 및 변경에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오. Amazon RDS 콘솔에서 또는 Amazon RDS API, AWS CLI, AWS SDK를 사용하여 느린 쿼리 로그 또는 일반 로그를 보려면 먼저 이러한 파라미터를 설정해야 합니다.

이 목록에 있는 파라미터를 사용하여 MariaDB 로깅을 제어할 수 있습니다.
+ `slow_query_log` 또는 `log_slow_query`: 느린 쿼리 로그를 만들려면 1로 설정합니다. 기본값은 0입니다.
+ `general_log`: 일반 로그를 만들려면 1로 설정합니다. 기본값은 0입니다.
+ `long_query_time` 또는 `log_slow_query_time`: 빠르게 실행되는 쿼리가 느린 쿼리 로그에 기록되지 않도록 하려면 로그에 기록할 쿼리의 최단 실행 시간 값(초)을 지정합니다. 기본값은 10초이고, 최소값은 0초입니다. log\$1output = FILE인 경우에는 마이크로초 단위까지 부동 소수점 값을 지정할 수 있습니다. log\$1output = TABLE인 경우에는 초 단위로 정수 값을 지정해야 합니다. 실행 시간이 `long_query_time` 또는 `log_slow_query_time` 값을 초과하는 쿼리만 로그에 기록됩니다. 예를 들어, `long_query_time` 또는 `log_slow_query_time`을 0.1로 설정하면 100밀리초 미만의 시간 동안 작동하는 쿼리가 로그에 기록되지 않습니다.
+ `log_queries_not_using_indexes`: 인덱스를 사용하지 않는 모든 쿼리를 느린 쿼리 로그에 기록하려면 이 파라미터를 1로 설정합니다. 기본값은 0입니다. 인덱스를 사용하지 않는 쿼리는 실행 시간이 `long_query_time` 파라미터의 값보다 짧아도 로그에 기록됩니다.
+ `log_output option`: `log_output` 파라미터에 대해 다음 옵션 중 하나를 지정할 수 있습니다.
  + **TABLE**(기본값)– `mysql.general_log` 테이블에는 일반 쿼리를, `mysql.slow_log` 테이블에는 느린 쿼리를 씁니다.
  + **FILE**– 파일 시스템에 일반 쿼리 로그와 느린 쿼리 로그를 모두 씁니다. 로그 파일은 매시간 순환됩니다.
  + **NONE**– 로깅을 비활성화합니다.

로깅을 사용하는 경우, Amazon RDS는 테이블 로그를 순환하거나 로그 파일을 정기적으로 삭제합니다. 이러한 예방 조치를 취하면 데이터베이스 사용에 방해가 되거나 성능에 영향을 미치는 큰 로그 파일이 생성될 가능성을 줄일 수 있습니다. `FILE` 및 `TABLE` 로깅 접근 방식 교체 및 삭제는 다음과 같습니다.
+ `FILE` 로깅을 사용하는 경우, 로그 파일은 매시간 검사되며 24시간 이상 지난 로그 파일은 삭제됩니다. 경우에 따라 삭제 후 나머지 로그 파일의 총 크기가 DB 인스턴스에 할당된 공간 중 2%의 임계값을 초과할 수 있습니다. 이러한 경우 로그 파일의 전체 크기가 임계값 이하로 작아질 때까지 가장 큰 로그 파일부터 차례대로 삭제됩니다.
+ `TABLE` 로깅이 활성화된 경우 경우에 따라 로그 테이블이 24시간마다 순환됩니다. 테이블 로그에서 사용되는 공간이 할당된 스토리지 공간 중 20% 이상을 차지하면 이 교체가 발생합니다. 모든 로그를 합쳤을 때 크기가 10GB를 초과하는 경우에도 교체됩니다. DB 인스턴스에 대해 사용된 공간의 양이 DB 인스턴스의 할당된 스토리지 공간 중 90% 이상을 차지할 경우, 로그 교체를 위한 임계값은 줄어듭니다. 테이블 로그에서 사용되는 공간이 할당된 스토리지 공간 중 10% 이상을 차지하면 로그 테이블이 교체됩니다. 모든 로그를 합쳤을 때 크기가 10GB를 초과하는 경우에도 교체됩니다.

  로그 테이블이 순환되면 현재 로그 테이블은 백업 로그 테이블에 복사되며 현재 로그 테이블의 해당 항목들은 제거됩니다. 백업 로그 테이블이 이미 존재할 경우, 현재 로그 테이블이 백업으로 복사되기 전에 백업 로그 테이블이 삭제됩니다. 필요하다면 백업 로그 테이블을 쿼리할 수 있습니다. `mysql.general_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.general_log_backup`으로 지정됩니다. `mysql.slow_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.slow_log_backup`으로 지정됩니다.

  `mysql.general_log` 절차를 호출하면 `mysql.rds_rotate_general_log` 테이블을 순환할 수 있습니다. `mysql.slow_log` 절차를 호출하면 `mysql.rds_rotate_slow_log` 테이블을 순환할 수 있습니다.

  데이터베이스 버전 업그레이드가 진행되는 동안 테이블 로그가 순환됩니다.

Amazon RDS는 `TABLE` 및 `FILE` 로그 순환을 Amazon RDS 이벤트에 기록하고 사용자에게 알림 메시지를 보냅니다.

Amazon RDS 콘솔, Amazon RDS API, Amazon RDS CLI 또는 AWS SDK에서 로그를 사용하여 작업하려면 `log_output` 파라미터를 FILE로 설정합니다. MariaDB 오류 로그와 같이, 이런 로그 파일은 매시간 순환됩니다. 이전의 24시간 동안 생성된 로그 파일이 보존됩니다.

느린 쿼리 및 일반 로그에 대한 자세한 내용은 MariaDB 문서에서 다음 단원을 참조하십시오.
+ [느린 쿼리 로그](http://mariadb.com/kb/en/mariadb/slow-query-log/)
+ [일반 쿼리 로그](http://mariadb.com/kb/en/mariadb/general-query-log/)

# Amazon CloudWatch Logs에 MariaDB 로그 게시
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs"></a>

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

Amazon RDS는 각 MariaDB 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어 느린 쿼리 포함하도록 내보내기 함수를 구성한다고 가정합니다. 그러면 느린 쿼리 데이터가 `/aws/rds/instance/my_instance/slowquery` 로그 그룹의 느린 쿼리 로그 스트림에 저장됩니다.

오류 로그는 기본적으로 활성화됩니다. 다음 표에는 기타 MariaDB 로그의 요구 사항이 요약되어 있습니다.


| 로그 | 요구 사항 | 
| --- | --- | 
|  감사 로그  |  DB 인스턴스는 `MARIADB_AUDIT_PLUGIN` 옵션과 함께 사용자 지정 옵션 그룹을 사용해야 합니다.  | 
|  일반 로그  |  DB 인스턴스는 파라미터 설정 `general_log = 1`과 함께 사용자 지정 파라미터 그룹을 사용하여 일반 로그를 활성화해야 합니다.  | 
|  느린 쿼리 로그  |  DB 인스턴스는 파라미터 설정 `slow_query_log = 1` 또는 `log_slow_query = 1`과 함께 사용자 지정 파라미터 그룹을 사용하여 느린 쿼리 로그를 활성화해야 합니다.  | 
|  IAM 데이터베이스 인증 오류 로그  |  DB 인스턴스를 만들거나 수정하여 DB 인스턴스의 `iam-db-auth-error` 로그 유형을 사용 설정해야 합니다.  | 
|  로그 출력  |  DB 인스턴스는 파라미터 설정 `log_output = FILE`과 함께 사용자 지정 파라미터 그룹을 사용하여 로그를 파일 시스템에 쓰고 CloudWatch Logs에 게시해야 합니다.  | 

## 콘솔
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.CON"></a>

**콘솔에서 CloudWatch Logs에 MariaDB 로그를 게시하려면**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

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

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

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

## AWS CLI
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.CLI"></a>

AWS CLI를 사용하여 MariaDB 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또 다음 AWS CLI 명령을 호출해 MariaDB 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

다음 옵션으로 AWS CLI 명령 중 하나를 실행합니다.
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

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

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 MariaDB DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체에 대한 키는 `EnableLogTypes`이며, 해당 값은 `audit`, `error`, `general` 및 `slowquery`의 조합을 사용하는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

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

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

**Example**  
다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 MariaDB DB 인스턴스를 만듭니다. `--enable-cloudwatch-logs-exports` 값은 문자열의 JSON 배열입니다. 문자열은 `audit`, `error`, `general` 및 `slowquery`의 조합일 수 있습니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine mariadb
```
Windows의 경우:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine mariadb
```

## RDS API
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.API"></a>

RDS API를 사용하여 MariaDB 로그를 게시할 수 있습니다. 다음 파라미터와 함께 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출할 수 있습니다.
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**참고**  
`CloudwatchLogsExportConfiguration` 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `ApplyImmediately` 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출해 MariaDB 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

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

# MariaDB의 로그 교체 및 보존
<a name="USER_LogAccess.MariaDB.LogFileSize"></a>

로깅을 사용하는 경우, Amazon RDS는 테이블 로그를 순환하거나 로그 파일을 정기적으로 삭제합니다. 이러한 예방 조치를 취하면 데이터베이스 사용에 방해가 되거나 성능에 영향을 미치는 큰 로그 파일이 생성될 가능성을 줄일 수 있습니다.

MariaDB 느린 쿼리 로그, 오류 로그 및 일반 로그 파일 크기는 DB 인스턴스에 대해 할당된 스토리지 공간의 2% 이하로 제한됩니다. 이 임계값을 유지하기 위해 로그는 매시간 자동으로 순환되면서 24시간 이상 지난 로그 파일은 제거됩니다. 오래된 로그 파일을 제거한 후 로그 파일의 총 크기가 임계값을 초과하는 경우에는 로그 파일의 전체 크기가 임계값 이하로 작아질 때까지 가장 큰 로그 파일부터 차례대로 삭제됩니다.

Amazon RDS는 10MB보다 큰 IAM 데이터베이스 인증 오류 로그 파일을 교체합니다. Amazon RDS는 5일 이상 또는 100MB 이상의 IAM 데이터베이스 인증 오류 로그 파일을 제거합니다.

# 테이블 기반 MariaDB 로그 관리
<a name="Appendix.MariaDB.CommonDBATasks.Logs"></a>

일반 및 느린 쿼리 로그를 DB 인스턴스상의 테이블로 전송할 수 있습니다. 이렇게 하려면 DB 파라미터 그룹을 만들고 `log_output` 서버 파라미터를 `TABLE`로 설정합니다. 그러면 일반 쿼리는 `mysql.general_log` 테이블에, 느린 쿼리는 `mysql.slow_log` 테이블에 로그가 기록됩니다. 이들 테이블을 쿼리하여 로그 정보에 액세스할 수 있습니다. 이 로깅을 활성화하면 데이터베이스에 기록되는 데이터의 양이 증가하여 성능이 저하될 수 있습니다.

일반 로그와 느린 쿼리 로그는 모두 기본적으로 비활성화됩니다. 표에 대한 로깅을 활성화하려면 다음 서버 파라미터도 `1`로 설정해야 합니다.
+ `general_log`
+ `slow_query_log` 또는 `log_slow_query`

관련 파라미터를 `0`으로 설정하여 각 로깅 활동을 해제할 때까지 로그 테이블은 계속 커집니다. 흔히 대량의 데이터가 시간 경과에 따라 누적되어 할당된 스토리지 공간 중 상당한 비율을 사용할 수 있습니다. Amazon RDS에서는 로그 테이블을 자를 수 없지만 테이블의 콘텐츠를 이동할 수 있습니다. 테이블을 순환하면 그 내용이 백업 테이블에 저장된 다음 빈 로그 테이블이 새로 생성됩니다. 다음 명령줄 프로시저로 로그 테이블을 수동으로 순환시킬 수 있으며, 이때 명령 프롬프트는 `PROMPT>`로 표시됩니다.

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

 오래된 데이터를 완전히 제거하고 디스크 공간을 회수하려면 알맞은 프로시저를 두 번 연속으로 호출합니다.

# MariaDB 바이너리 로깅 구성
<a name="USER_LogAccess.MariaDB.BinaryFormat"></a>

*이진 로그*는 MariaDB 서버 인스턴스의 데이터 수정에 대한 정보를 포함하는 로그 파일 세트입니다. 이진 로그에는 다음과 같은 정보가 포함되어 있습니다.
+ 테이블 생성 또는 행 수정과 같은 데이터베이스 변경 사항을 설명하는 이벤트
+ 데이터를 업데이트한 각 문의 기간에 대한 정보
+ 데이터를 업데이트할 수 있었지만 업데이트하지 않은 문에 대한 이벤트

이진 로그는 복제 중 전송된 문을 기록합니다. 일부 복구 작업에도 필요합니다. 자세한 내용은 MariaDB 설명서에서 [Binary Log](https://mariadb.com/kb/en/binary-log/)를 참조하세요.

자동 백업 기능은 MariaDB에 대해 이진 로깅을 설정할지 아니면 해제할지를 결정합니다. 다음과 같은 옵션이 있습니다.

이진 로깅 설정  
백업 보존 기간을 0이 아닌 양수 값으로 설정합니다.

이진 로깅 해제  
백업 보존 기간을 0으로 설정합니다.

자세한 내용은 [자동 백업 활성화](USER_WorkingWithAutomatedBackups.Enabling.md) 섹션을 참조하세요.

Amazon RDS의 MariaDB는 *행 기반*, *설명문 기반* 및 *혼합* 바이너리 로깅 형식을 지원합니다. 기본 이진 로깅 형식은 *혼합*입니다. 다양한 MariaDB 이진 로그 형식에 관한 세부 정보는 MariaDB 설명서에서 [이진 로그 형식](http://mariadb.com/kb/en/mariadb/binary-log-formats/) 단원을 참조하십시오.

복제를 사용할 계획이라면 이진 로깅 형식이 중요합니다. 이진 로깅 형식이 원본에 기록되고 복제 대상으로 전송되는 데이터 변경 내용의 레코드를 결정하기 때문입니다. 복제와 관련된 다양한 바이너리 로깅 형식의 장/단점에 대한 자세한 내용은 MySQL 설명서의 [Advantages and Disadvantages of Statement-Based and Row-Based Replication](https://dev.mysql.com/doc/refman/5.7/en/replication-sbr-rbr.html)을 참조하십시오.

**중요**  
이진 로깅 형식을 행 기반으로 설정하면 이진 로그 파일이 매우 커질 수 있습니다. 큰 이진 로그 파일은 DB 인스턴스가 사용할 수 있는 스토리지의 양이 줄어들게 합니다. 또한 DB 인스턴스의 복원 작업 수행에 필요한 시간이 늘어나게 할 수도 있습니다.  
설명문 기반 복제는 원본 DB 인스턴스와 읽기 전용 복제본 간의 불일치를 초래할 수 있습니다. 자세한 내용은 MariaDB 설명서의 [ Unsafe Statements for Statement-based Replication](https://mariadb.com/kb/en/library/unsafe-statements-for-statement-based-replication/)을 참조하십시오.  
이진 로깅을 활성화하면 DB 인스턴스에 대한 평균 디스크 쓰기 I/O 작업 수가 증가합니다. `WriteIOPS` CloudWatch 지표를 사용하여 IOPS 사용량을 모니터링할 수 있습니다.

**MariaDB 이진 로깅 형식을 설정하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. 수정할 DB 인스턴스에 사용되는 파라미터 그룹을 선택합니다.

   기본 파라미터 그룹을 수정할 수 없습니다. DB 인스턴스에서 기본 파라미터 그룹을 사용 중인 경우 새 파라미터 그룹을 생성하여 DB 인스턴스와 연결합니다.

   DB 파라미터 그룹에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오.

1. **파라미터 그룹 작업**에서 **편집**을 선택합니다.

1. `binlog_format` 파라미터를 선택한 바이너리 로깅 형식(**ROW**, **STATEMENT** 또는 **MIXED**)으로 설정합니다.

   DB 인스턴스의 백업 보존 기간을 0으로 설정하여 이진 로깅을 끌 수 있지만, 이렇게 하면 일일 자동 백업이 비활성화됩니다. 자동 백업을 비활성화하면 `log_bin` 세션 변수가 꺼지거나 비활성화됩니다. 그러면 RDS for MariaDB DB 인스턴스에 대한 이진 로깅이 비활성화되며, 이는 다시 `binlog_format` 세션 변수를 데이터베이스의 기본값인 `ROW` 값으로 재설정합니다. 백업을 비활성화하지 않는 것이 좋습니다. **백업 보존 기간** 설정에 대한 자세한 정보는 [DB 인스턴스에 대한 설정](USER_ModifyInstance.Settings.md) 섹션을 참조하세요.

1. **변경 내용 저장**을 선택하여 업데이트를 DB 파라미터 그룹에 저장합니다.

`binlog_format` 파라미터는 RDS for MariaDB에서 동적이므로 DB 인스턴스를 재부팅하지 않고 변경 사항을 적용할 수 있습니다.

**중요**  
DB 파라미터 그룹을 변경하면 해당 파라미터 그룹을 사용하는 모든 DB 인스턴스에 영향을 미칩니다. AWS 리전의 다양한 MariaDB DB 인스턴스에 대해 서로 다른 바이너리 로깅 형식을 지정하려면 DB 인스턴스에서 서로 다른 DB 파라미터 그룹을 사용해야 합니다. 이러한 파라미터 그룹은 다양한 로깅 형식을 식별합니다. 각 DB 인스턴스에 적절한 DB 파라미터 그룹을 할당합니다.

# MariaDB 이진 로그 액세스
<a name="USER_LogAccess.MariaDB.Binarylog"></a>

mysqlbinlog 유틸리티를 사용하여 MariaDB DB 인스턴스로부터 텍스트 형식의 이진 로그를 다운로드할 수 있습니다. 이진 로그는 로컬 컴퓨터로 다운로드됩니다. mysqlbinlog 유틸리티 사용에 대한 자세한 내용은 MariaDB 설명서에서 [mysqlbinlog 사용](http://mariadb.com/kb/en/mariadb/using-mysqlbinlog/)을 참조하십시오.

 Amazon RDS 인스턴스에 대해 mysqlbinlog 유틸리티를 실행하려면 다음 옵션을 사용합니다.
+  `--read-from-remote-server` 옵션을 지정합니다.
+  `--host`: 인스턴스의 엔드포인트에서 DNS 이름을 지정합니다.
+  `--port`: 인스턴스에서 사용되는 포트를 지정합니다.
+  `--user`: 복제 슬레이브 권한이 부여된 MariaDB 사용자를 지정합니다.
+  `--password`: 사용자의 암호를 지정하거나, 유틸리티에서 암호 입력을 요구하는 메시지가 표시되도록 암호 값을 생략합니다.
+  `--result-file`: 출력을 수신할 로컬 파일을 지정합니다.
+ 하나 이상의 이진 로그 파일의 이름을 지정합니다. 사용 가능한 로그의 목록을 획득하려면 SQL 명령 SHOW BINARY LOGS를 사용합니다.

mysqlbinlog 옵션에 대한 자세한 내용은 MariaDB 설명서에서 [mysqlbinlog 옵션](http://mariadb.com/kb/en/mariadb/mysqlbinlog-options/)을 참조하십시오.

 다음은 그 예제입니다.

대상 LinuxmacOS, 또는Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password <password> \
    --result-file=/tmp/binlog.txt
```

Windows의 경우:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password <password> ^
    --result-file=/tmp/binlog.txt
```

Amazon RDS는 보통은 최대한 빨리 이진 파일을 삭제합니다. 하지만 mysqlbinlog가 액세스할 수 있도록 인스턴스에서 이진 파일을 여전히 사용할 수 있어야 합니다. RDS의 이진수 로그 보관 시간을 지정하려면 `mysql.rds_set_configuration` 저장 프로시저를 사용합니다. 로그를 다운로드할 수 있는 충분한 기간을 지정합니다. 보존 기간을 설정한 후, DB 인스턴스의 스토리지 사용량을 모니터링하여 보존된 이진 로그가 너무 많은 스토리지를 차지하지 않도록 합니다.

다음 예제에서는 보존 기간을 1일로 설정합니다.

```
call mysql.rds_set_configuration('binlog retention hours', 24); 
```

현재 설정을 표시하려면 `mysql.rds_show_configuration` 저장 프로시저를 사용합니다.

```
call mysql.rds_show_configuration; 
```

# MariaDB 바이너리 로그 주석 활성화
<a name="USER_LogAccess.MariaDB.BinarylogAnnotation"></a>

MariaDB DB 인스턴스에서, `Annotate_rows` 이벤트를 사용하여 행 이벤트로 인해 발생한 SQL 쿼리의 복사본으로 해당 행 이벤트에 주석을 달 수 있습니다. 이 접근 방식은 RDS for MySQL DB 인스턴스에서 `binlog_rows_query_log_events` 파라미터를 활성화하는 것과 비슷한 기능을 제공합니다.

사용자 지정 파라미터 그룹을 생성하고 `binlog_annotate_row_events` 파라미터를 **1**로 설정하여 이진 로그 주석을 전역에서 활성화할 수 있습니다. 또한 `SET SESSION binlog_annotate_row_events = 1` 호출로 세션 수준에서 주석을 활성화할 수도 있습니다. 복제본 인스턴스에서 바이너리 로깅이 사용되는 경우 `replicate_annotate_row_events`를 사용하여 바이너리 로그 주석을 복제본 인스턴스로 복제합니다. 이러한 설정을 사용하는 데는 특별한 권한이 필요하지 않습니다.

다음 예는 MariaDB의 행 기반 트랜잭션입니다. 트랜잭션 격리 수준을 읽기 커밋으로 설정하면 행 기반 로깅 사용이 트리거됩니다.

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
```

주석이 없을 경우, 트랜잭션의 이진 로그 항목은 다음과 같습니다.

```
BEGIN
/*!*/;
# at 1163
# at 1209
#150922  7:55:57 server id 1855786460  end_log_pos 1209         Table_map: `test`.`square` mapped to number 76
#150922  7:55:57 server id 1855786460  end_log_pos 1247         Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 1247
#150922  7:56:01 server id 1855786460  end_log_pos 1274         Xid = 62
COMMIT/*!*/;
```

다음 문은 이 동일한 트랜잭션에 대해 세션 수준의 주석을 활성화하고, 트랜잭션을 커밋한 후 다시 비활성화합니다.

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET SESSION binlog_annotate_row_events = 1;
BEGIN;
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
SET SESSION binlog_annotate_row_events = 0;
```

주석이 있는 경우, 트랜잭션의 이진 로그 항목은 다음과 같습니다.

```
BEGIN
/*!*/;
# at 423
# at 483
# at 529
#150922  8:04:24 server id 1855786460  end_log_pos 483  Annotate_rows:
#Q> INSERT INTO square(x, y) VALUES(5, 5 * 5)
#150922  8:04:24 server id 1855786460  end_log_pos 529  Table_map: `test`.`square` mapped to number 76
#150922  8:04:24 server id 1855786460  end_log_pos 567  Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 567
#150922  8:04:26 server id 1855786460  end_log_pos 594  Xid = 88
COMMIT/*!*/;
```

# Amazon RDS for Microsoft SQL Server 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.SQLServer"></a>

Amazon RDS 콘솔 또는 AWS CLI 또는 RDS API를 사용하여 Microsoft SQL Server 오류 로그, 에이전트 로그, 추적 파일 및 덤프 파일에 액세스할 수 있습니다. 파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 섹션을 참조하세요.

## 보존 일정
<a name="USER_LogAccess.Concepts.SQLServer.Retention"></a>

로그 파일은 날마다, 그리고 DB 인스턴스가 다시 시작될 때마다 교환됩니다. 다음은 Amazon RDS의 Microsoft SQL Server 로그에 대한 보존 일정입니다.


****  

| 로그 유형 | 보존 일정 | 
| --- | --- | 
|  오류 로그  |  최대 30개의 오류 로그가 보존됩니다. Amazon RDS는 7일이 경과한 오류 로그를 삭제할 수도 있습니다.  | 
|  에이전트 로그  |  최대 10개의 에이전트 로그가 보존됩니다. Amazon RDS에서는 7일이 경과한 에이전트 로그를 삭제할 수 있습니다.  | 
|  추적 파일  |  추적 파일은 DB 인스턴스의 추적 파일 보존 기간에 따라 보존됩니다. 추적 파일의 기본 보존 기간은 7일입니다. DB 인스턴스의 추적 파일 보존 기간을 수정하려면 [추적 및 덤프 파일의 보존 기간 설정](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles) 섹션을 참조하세요.  | 
|  덤프 파일  |  덤프 파일은 DB 인스턴스의 덤프 파일 보존 기간에 따라 보존됩니다. 덤프 파일의 기본 보존 기간은 7일입니다. DB 인스턴스의 덤프 파일 보존 기간을 수정하려면 [추적 및 덤프 파일의 보존 기간 설정](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles) 섹션을 참조하세요.  | 

## rds\$1read\$1error\$1log 프로시저를 사용하여 SQL Server 오류 로그 보기
<a name="USER_LogAccess.Concepts.SQLServer.Proc"></a>

Amazon RDS 저장 프로시저 `rds_read_error_log`를 사용하여 오류 로그 및 에이전트 로그를 볼 수 있습니다. 자세한 내용은 [오류 및 에이전트 로그 보기](Appendix.SQLServer.CommonDBATasks.Logs.md#Appendix.SQLServer.CommonDBATasks.Logs.SP) 섹션을 참조하세요.

## Amazon CloudWatch Logs에 SQL Server 로그 게시
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs"></a>

Amazon RDS for SQL Server의 경우, 오류 및 에이전트 로그 이벤트를 Amazon CloudWatch Logs에 직접 게시할 수 있습니다. CloudWatch Logs로 로그 데이터를 분석한 다음 CloudWatch를 사용하여 경보를 만들고 지표를 봅니다.

CloudWatch Logs을 사용하여 다음 작업을 할 수 있습니다.
+ 정의한 보존 기간 만큼, 내구성이 뛰어난 스토리지 공간에 로그를 저장하십시오.
+ 로그 데이터를 검색하고 필터링합니다.
+ 계정 간에 로그 데이터를 공유합니다.
+ Amazon S3로 로그를 내보냅니다.
+ Amazon OpenSearch Service로 데이터를 스트리밍합니다.
+ Amazon Kinesis Data Streams를 이용해 로그 데이터를 실시간으로 처리합니다. 자세한 내용은 SQL 애플리케이션용 Amazon Managed Service for Apache Flink 개발자 안내서의 [Amazon CloudWatch Logs로 작업](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html)을 참조하세요.**

 Amazon RDS는 각 SQL Server 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어, 에이전트 로그 및 오류 로그를 게시하면 오류 데이터가 `/aws/rds/instance/my_instance.node1/error` 로그 그룹의 오류 로그 스트림에 저장되고 에이전트 로그 데이터가 `/aws/rds/instance/my_instance.node1/agent` 로그 그룹에 저장됩니다.

다중 AZ DB 인스턴스의 경우 Amazon RDS는 데이터베이스 로그를 로그 그룹에 별도의 두 스트림으로 게시합니다. 예를 들어 오류 로그를 게시하는 경우 오류 데이터가 오류 로그 스트림 `/aws/rds/instance/my_instance.node1/error`와 `/aws/rds/instance/my_instance.node2/error`에 각각 저장됩니다. 로그 스트림은 장애 조치 중에 변경되지 않으며 각 노드의 오류 로그 스트림에는 기본 또는 보조 인스턴스의 오류 로그가 포함될 수 있습니다. 다중 AZ를 사용하면 DB 인스턴스 장애 조치와 같은 이벤트 데이터를 저장하기 위해 `/aws/rds/instance/my_instance/rds-events`에 대한 로그 스트림이 자동으로 생성됩니다.

**참고**  
CloudWatch Logs의 SQL Server 로그 게시는 기본적으로 활성화되지 않습니다. 추적 및 덤프 파일 게시는 지원되지 않습니다. SQL Server 로그를 CloudWatch Logs에 게시하는 기능은 모든 리전에서 지원됩니다.

### 콘솔
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.console"></a>

**AWS Management Console에서 SQL Server DB 로그를 CloudWatch Logs에 게시하려면**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

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

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

   **에이전트 로그(Agent log)**, **오류 로그(Error log)** 또는 둘 다를 선택할 수 있습니다.

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

### AWS CLI
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.CLI"></a>

SQL Server 로그를 게시하기 위해 다음 파라미터와 함께 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 사용할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 명령을 사용하여 SQL Server 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
다음 예에서는 CloudWatch Logs 게시가 활성화된 SQL Server DB 인스턴스를 생성합니다. `--enable-cloudwatch-logs-exports` 값은 `error`, `agent` 또는 둘 다 포함할 수 있는 문자열의 JSON 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["error","agent"]' \
    --db-instance-class db.m4.large \
    --engine sqlserver-se
```
Windows의 경우:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^
    --db-instance-class db.m4.large ^
    --engine sqlserver-se
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 SQL Server DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `EnableLogTypes`입니다. 값은 `error`, `agent` 또는 둘 다 포함할 수 있는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","agent"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

**Example**  
다음 예제는 기존 SQL Server DB 인스턴스를 수정하여 CloudWatch Logs에 에이전트 로그 파일 게시를 비활성화합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `DisableLogTypes`입니다. 값은 `error`, `agent` 또는 둘 다 포함할 수 있는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["agent"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

# MySQL 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.MySQL"></a>

Amazon RDS 콘솔, Amazon RDS API, AWS CLI 또는 AWS SDK를 통해 MySQL 로그를 직접 모니터링할 수 있습니다. 또한, 주 데이터베이스에 있는 데이터베이스 테이블로 로그를 전송하고 그 테이블을 쿼리하여 MySQL 로그에 액세스할 수 있습니다. mysqlbinlog 유틸리티를 사용하여 이진 로그를 다운로드할 수 있습니다.

파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 단원을 참조하십시오.

**Topics**
+ [RDS for MySQL 데이터베이스 로그 개요](USER_LogAccess.MySQL.LogFileSize.md)
+ [Amazon CloudWatch Logs에 MySQL 로그 게시](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [MySQL 로그 출력을 표로 보내기](Appendix.MySQL.CommonDBATasks.Logs.md)
+ [단일 AZ 데이터베이스의 RDS for MySQL 이진 로깅 구성](USER_LogAccess.MySQL.BinaryFormat.md)
+ [다중 AZ DB 클러스터에 대한 MySQL 이진 로깅 구성](USER_Binlog.MultiAZ.md)
+ [MySQL 이진 로그 액세스](USER_LogAccess.MySQL.Binarylog.md)

# RDS for MySQL 데이터베이스 로그 개요
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

다음 유형의 RDS for MySQL 로그 파일을 모니터링할 수 있습니다.
+ 오류 로그
+ 느린 쿼리 로그
+ 일반 로그
+ 감사 로그
+ 인스턴스 로그
+ IAM 데이터베이스 인증 오류 로그

RDS for MySQL 오류 로그는 기본적으로 생성됩니다. DB 파라미터 그룹에서 파라미터를 설정하여 느린 쿼리 및 일반 로그를 생성할 수 있습니다.

**Topics**
+ [RDS for MySQL 오류 로그](#USER_LogAccess.MySQL.Errorlog)
+ [RDS for MySQL 느린 쿼리 로그 및 일반 로그](#USER_LogAccess.MySQL.Generallog)
+ [MySQL 감사 로그](#USER_LogAccess.MySQL.Auditlog)
+ [RDS for MySQL용 로그 교체 및 보존](#USER_LogAccess.MySQL.LogFileSize.retention)
+ [다시 실행 로그의 크기 제한](#USER_LogAccess.MySQL.LogFileSize.RedoLogs)

## RDS for MySQL 오류 로그
<a name="USER_LogAccess.MySQL.Errorlog"></a>

RDS for MySQL은 `mysql-error.log` 파일에 오류를 기록합니다. 각 로그 파일이 생성된 시간(UTC)이 파일 이름에 추가됩니다. 로그 파일에는 타임스탬프도 포함되어 있어, 로그 항목이 작성된 시간을 확인하는 데 도움이 됩니다.

RDS for MySQL에서는 시작, 종료 및 오류 발생 시에만 오류 로그에 데이터가 로그됩니다. DB 인스턴스는 오류 로그에 새 항목이 기록되지 않는 상태로 몇 시간이나 며칠씩 작동할 수 있습니다. 최근 항목이 보이지 않으면 이는 서버에서 로그에 입력될 만한 오류가 발생하지 않았기 때문입니다.

기본적으로 오류 로그는 오류와 같은 예기치 않은 이벤트만 표시되도록 필터링됩니다. 그러나 오류 로그에는 쿼리 진행률과 같이 표시되지 않는 몇 가지 추가 데이터베이스 정보도 포함되어 있습니다. 따라서 실제 오류가 없더라도 진행 중인 데이터베이스 작업으로 인해 오류 로그의 크기가 커질 수 있습니다. 그리고 AWS Management Console에서 오류 로그의 특정 크기(바이트 또는 킬로바이트)를 볼 수 있지만 다운로드할 때 0바이트일 수 있습니다.

RDS for MySQL은 5분마다 `mysql-error.log`를 디스크에 씁니다. 또한, 로그의 콘텐츠를 `mysql-error-running.log`에 추가합니다.

RDS for MySQL은 `mysql-error-running.log` 파일을 1시간마다 교체합니다. 또한, 지난 2주 동안 생성된 로그를 보존합니다.

**참고**  
로그 보존 기간은 Amazon RDS와 Aurora 간에 다릅니다.

## RDS for MySQL 느린 쿼리 로그 및 일반 로그
<a name="USER_LogAccess.MySQL.Generallog"></a>

RDS for MySQL 느린 쿼리 로그와 일반 로그를 파일이나 데이터베이스 테이블에 기록할 수 있습니다. 그러려면 DB 파라미터 그룹의 파라미터를 설정합니다. DB 파라미터 그룹의 생성 및 변경에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오. 이런 파라미터를 설정해야 Amazon RDS 콘솔에서 느린 쿼리 로그 또는 일반 로그를 볼 수 있습니다. 아니면 Amazon RDS API, Amazon RDS CLI 또는 AWS SDK를 사용하여 볼 수 있습니다.

이 목록에 있는 파라미터를 사용하여 RDS for MySQL 로깅을 제어할 수 있습니다.
+ `slow_query_log`: 느린 쿼리 로그를 만들려면 1로 설정합니다. 기본값은 0입니다.
+ `general_log`: 일반 로그를 만들려면 1로 설정합니다. 기본값은 0입니다.
+ `long_query_time`: 빠르게 실행되는 쿼리가 느린 쿼리 로그에 기록되지 않도록 하려면 로깅할 쿼리의 최단 런타임 값(초)을 지정합니다. 기본값은 10초이고, 최소값은 0초입니다. log\$1output = FILE인 경우에는 마이크로초 단위까지 부동 소수점 값을 지정할 수 있습니다. log\$1output = TABLE인 경우에는 초 단위로 정수 값을 지정해야 합니다. 런타임이 `long_query_time` 값을 초과하는 쿼리만 로깅됩니다. 예를 들어 `long_query_time`을 0.1로 설정하면 100밀리초 미만의 시간 동안 작동하는 쿼리가 로그에 기록되지 않습니다.
+ `log_queries_not_using_indexes`: 인덱스를 사용하지 않는 모든 쿼리를 느린 쿼리 로그에 기록하려면 1로 설정합니다. 인덱스를 사용하지 않는 쿼리는 런타임이 `long_query_time` 파라미터의 값보다 짧아도 로깅됩니다. 기본값은 0입니다.
+ `log_output option`: `log_output` 파라미터에 대해 다음 옵션 중 하나를 지정할 수 있습니다.
  + **TABLE**(기본값) – 일반 쿼리를 `mysql.general_log`테이블에 쓰고 느린 쿼리를 `mysql.slow_log` 테이블에 씁니다.
  + **FILE** – 일반 쿼리 로그와 느린 쿼리 로그를 모두 파일 시스템에 씁니다.
  + **NONE** – 로깅을 비활성화합니다.

느린 쿼리 데이터가 Amazon CloudWatch Logs에 표시되려면 다음 조건을 충족해야 합니다.
+ 느린 쿼리 로그를 포함하도록 CloudWatch Logs를 구성해야 합니다.
+ `slow_query_log`를 활성화해야 합니다.
+ `log_output`/를 로 설정해야 합니다.`FILE`
+ 쿼리는 `long_query_time`에 구성된 시간보다 오래 걸릴 수 있습니다.

느린 쿼리 및 일반 로그에 대한 자세한 내용은 MySQL 문서에서 다음 항목을 참조하십시오.
+ [느린 쿼리 로그](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [일반 쿼리 로그](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## MySQL 감사 로그
<a name="USER_LogAccess.MySQL.Auditlog"></a>

감사 로그에 액세스하려면 DB 인스턴스가 `MARIADB_AUDIT_PLUGIN` 옵션과 함께 사용자 지정 옵션 그룹을 사용해야 합니다. 자세한 내용은 [MySQL에 대한 MariaDB 감사 플러그인 지원](Appendix.MySQL.Options.AuditPlugin.md) 섹션을 참조하세요.

## RDS for MySQL용 로그 교체 및 보존
<a name="USER_LogAccess.MySQL.LogFileSize.retention"></a>

로깅을 사용하는 경우, Amazon RDS는 테이블 로그를 순환하거나 로그 파일을 정기적으로 삭제합니다. 이러한 예방 조치를 취하면 데이터베이스 사용에 방해가 되거나 성능에 영향을 미치는 큰 로그 파일이 생성될 가능성을 줄일 수 있습니다. RDS for MySQL은 교체 및 삭제를 다음과 같이 처리합니다.
+ MySQL 느린 쿼리 로그, 오류 로그 및 일반 로그 파일 크기는 DB 인스턴스에 대해 할당된 스토리지 공간의 2% 이하로 제한됩니다. 이 임계값을 유지하기 위해 매시간 로그가 자동으로 교체됩니다. MySQL은 2주 이상 지난 로그 파일을 제거합니다. 오래된 로그 파일을 제거한 후 로그 파일의 총 크기가 임계값을 초과하는 경우에는 로그 파일의 전체 크기가 임계값 이하로 작아질 때까지 가장 오래된 로그 파일부터 차례대로 삭제됩니다.
+ `FILE` 로깅을 사용하는 경우 로그 파일은 매시간 검사되며 2주 이상 지난 로그 파일은 삭제됩니다. 경우에 따라 삭제 후 나머지 로그 파일의 총 크기가 DB 인스턴스에 할당된 공간 중 2%의 임계값을 초과할 수 있습니다. 이 경우 로그 파일의 전체 크기가 임계값 이하로 작아질 때까지 가장 오래된 로그 파일부터 차례대로 삭제됩니다.
+ `TABLE` 로깅이 활성화된 경우 경우에 따라 로그 테이블이 24시간마다 순환됩니다. 테이블 로그에서 사용되는 공간이 할당된 스토리지 공간 중 20% 이상을 차지하면 이 교체가 발생합니다. 모든 로그를 합쳤을 때 크기가 10GB를 초과하는 경우에도 교체됩니다. DB 인스턴스에 대해 사용된 공간의 양이 DB 인스턴스의 할당된 스토리지 공간 중 90% 이상을 차지할 경우, 로그 순환을 위한 임계값은 줄어듭니다. 테이블 로그에서 사용되는 공간이 할당된 스토리지 공간 중 10% 이상을 차지하면 로그 테이블이 교체됩니다. 모든 로그를 합쳤을 때 크기가 10GB를 초과하는 경우에도 교체됩니다. 공간 확보를 위해 로그 테이블이 교체될 때 알림을 받기 위해 `low storage` 이벤트 범주를 구독할 수 있습니다. 자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 섹션을 참조하세요.

  로그 테이블이 교체되면 현재 로그 테이블이 먼저 백업 로그 테이블에 복사됩니다. 그런 다음 현재 로그 테이블의 항목이 제거됩니다. 백업 로그 테이블이 이미 존재할 경우, 현재 로그 테이블이 백업으로 복사되기 전에 백업 로그 테이블이 삭제됩니다. 필요하다면 백업 로그 테이블을 쿼리할 수 있습니다. `mysql.general_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.general_log_backup`으로 지정됩니다. `mysql.slow_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.slow_log_backup`으로 지정됩니다.

  `mysql.general_log` 절차를 호출하면 `mysql.rds_rotate_general_log` 테이블을 순환할 수 있습니다. `mysql.slow_log` 절차를 호출하면 `mysql.rds_rotate_slow_log` 테이블을 순환할 수 있습니다.

  데이터베이스 버전 업그레이드가 진행되는 동안 테이블 로그가 순환됩니다.

Amazon RDS 콘솔, Amazon RDS API, Amazon RDS CLI 또는 AWS SDK에서 로그를 사용하여 작업하려면 `log_output` 파라미터를 FILE로 설정합니다. MySQL 오류 로그와 같이, 이런 로그 파일은 매시간 순환됩니다. 이전 2주 동안 생성된 로그 파일은 유지됩니다. 보존 기간은 Amazon RDS와 Aurora 간에 다릅니다.

## 다시 실행 로그의 크기 제한
<a name="USER_LogAccess.MySQL.LogFileSize.RedoLogs"></a>

RDS for MySQL 버전 8.0.32 이하에서는 이 파라미터의 기본값이 256MB입니다. 이 양은 `innodb_log_file_size` 파라미터의 기본값(128MB)에 `innodb_log_files_in_group` 파라미터의 기본값(2)을 곱하여 산출됩니다. 자세한 내용은 [Amazon RDS for MySQL의 파라미터 구성 모범 사례, 1부: 성능과 관련된 파라미터](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)를 참조하세요.

RDS for MySQL 버전 8.0.33 이상 마이너 버전에서 Amazon RDS는 `innodb_log_file_size` 파라미터 대신 `innodb_redo_log_capacity` 파라미터를 사용합니다. `innodb_redo_log_capacity` 파라미터의 Amazon RDS 기본값은 2GB입니다. 자세한 내용은 MySQL 설명서의 [MySQL 8.0.30 변경 사항에 관한 문서](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html)를 참조하세요.

MySQL 8.4부터 Amazon RDS는 기본적으로 `innodb_dedicated_server` 파라미터를 활성화합니다. `innodb_dedicated_server` 파라미터를 사용하면 데이터베이스 엔진이 `innodb_buffer_pool_size` 및 `innodb_redo_log_capacity` 파라미터를 계산합니다. 자세한 내용은 [MySQL 8.4에서 버퍼 풀 크기 및 다시 실행 로그 용량 구성](Appendix.MySQL.CommonDBATasks.Config.Size.8.4.md) 섹션을 참조하세요.

# Amazon CloudWatch Logs에 MySQL 로그 게시
<a name="USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs"></a>

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

Amazon RDS는 각 MySQL 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어 느린 쿼리 로그를 포함하도록 내보내기 함수를 구성하면 느린 쿼리 데이터가 `/aws/rds/instance/my_instance/slowquery` 로그 그룹의 느린 쿼리 로그 스트림에 저장됩니다.

오류 로그는 기본적으로 활성화됩니다. 다음 표에는 기타 MySQL 로그의 요구 사항이 요약되어 있습니다.


| 로그 | 요구 사항 | 
| --- | --- | 
|  감사 로그  |  DB 인스턴스는 `MARIADB_AUDIT_PLUGIN` 옵션과 함께 사용자 지정 옵션 그룹을 사용해야 합니다.  | 
|  일반 로그  |  DB 인스턴스는 파라미터 설정 `general_log = 1`과 함께 사용자 지정 파라미터 그룹을 사용하여 일반 로그를 활성화해야 합니다.  | 
|  느린 쿼리 로그  |  DB 인스턴스는 파라미터 설정 `slow_query_log = 1`과 함께 사용자 지정 파라미터 그룹을 사용하여 느린 쿼리 로그를 활성화해야 합니다.  | 
|  IAM 데이터베이스 인증 오류 로그  |  DB 인스턴스를 만들거나 수정하여 DB 인스턴스의 `iam-db-auth-error` 로그 유형을 사용 설정해야 합니다.  | 
|  로그 출력  |  DB 인스턴스는 파라미터 설정 `log_output = FILE`과 함께 사용자 지정 파라미터 그룹을 사용하여 로그를 파일 시스템에 쓰고 CloudWatch Logs에 게시해야 합니다.  | 

## 콘솔
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CON"></a>

**콘솔을 사용하여 MySQL 로그를 CloudWatch Logs에 게시하려면**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

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

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

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

## AWS CLI
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CLI"></a>

 AWS CLI를 사용하여 MySQL 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또 다음 AWS CLI 명령을 호출해 MySQL 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

다음 옵션으로 AWS CLI 명령 중 하나를 실행합니다.
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

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

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 MySQL DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체에 대한 키는 `EnableLogTypes`이며, 해당 값은 `audit`, `error`, `general` 및 `slowquery`의 조합을 사용하는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

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

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

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 MySQL DB 인스턴스를 생성합니다. `--enable-cloudwatch-logs-exports` 값은 문자열의 JSON 배열입니다. 문자열은 `audit`, `error`, `general` 및 `slowquery`의 조합일 수 있습니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine MySQL
```
Windows의 경우:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine MySQL
```

## RDS API
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.API"></a>

RDS API를 사용하여 MySQL 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출할 수 있습니다.
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**참고**  
`CloudwatchLogsExportConfiguration` 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `ApplyImmediately` 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출해 MySQL 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

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

# MySQL 로그 출력을 표로 보내기
<a name="Appendix.MySQL.CommonDBATasks.Logs"></a>

DB 파라미터 그룹을 만들고 `log_output` 서버 파라미터를 `TABLE`로 설정하여 일반 및 느린 쿼리 로그를 DB 인스턴스 상의 테이블로 전송할 수 있습니다. 그러면 일반 쿼리는 `mysql.general_log` 테이블에, 느린 쿼리는 `mysql.slow_log` 테이블에 로그가 기록됩니다. 이들 테이블을 쿼리하여 로그 정보에 액세스할 수 있습니다. 이 로깅을 활성화하면 데이터베이스에 기록되는 데이터의 양이 증가하여 성능이 저하될 수 있습니다.

일반 로그와 느린 쿼리 로그는 모두 기본적으로 비활성화됩니다. 테이블에 대한 로깅을 활성화하려면 `general_log` 및 `slow_query_log` 서버 파라미터도 `1`로 설정해야 합니다.

관련 파라미터를 `0`으로 설정하여 각 로깅 활동을 해제할 때까지 로그 테이블은 계속 커집니다. 흔히 대량의 데이터가 시간 경과에 따라 누적되어 할당된 스토리지 공간 중 상당한 비율을 사용할 수 있습니다. Amazon RDS에서는 로그 테이블을 자를 수 없지만 테이블의 콘텐츠를 이동할 수 있습니다. 테이블을 순환하면 그 내용이 백업 테이블에 저장된 다음 빈 로그 테이블이 새로 생성됩니다. 다음 명령줄 프로시저로 로그 테이블을 수동으로 순환시킬 수 있으며, 이때 명령 프롬프트는 `PROMPT>`로 표시됩니다.

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

오래된 데이터를 완전히 제거하고 디스크 공간을 회수하려면 알맞은 프로시저를 두 번 연속으로 호출합니다.

# 단일 AZ 데이터베이스의 RDS for MySQL 이진 로깅 구성
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

*이진 로그*는 MySQL 서버 인스턴스의 데이터 수정에 대한 정보를 포함하는 로그 파일 세트입니다. 이진 로그에는 다음과 같은 정보가 포함되어 있습니다.
+ 테이블 생성 또는 행 수정과 같은 데이터베이스 변경 사항을 설명하는 이벤트
+ 데이터를 업데이트한 각 문의 기간에 대한 정보
+ 데이터를 업데이트할 수 있었지만 업데이트하지 않은 문에 대한 이벤트

이진 로그는 복제 중 전송된 문을 기록합니다. 일부 복구 작업에도 필요합니다. 자세한 내용은 MySQL 설명서의 [바이너리 로그](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html) 단원을 참조하십시오.

자동 백업 기능은 MySQL에 대해 이진 로깅을 설정할지 아니면 해제할지를 결정합니다. 다음과 같은 옵션이 있습니다.

이진 로깅 설정  
백업 보존 기간을 0이 아닌 양수 값으로 설정합니다.

이진 로깅 해제  
백업 보존 기간을 0으로 설정합니다.

자세한 내용은 [자동 백업 활성화](USER_WorkingWithAutomatedBackups.Enabling.md) 단원을 참조하십시오.

Amazon RDS의 MySQL은 *행 기반*, *문 기반*, *혼합* 바이너리 로깅 형식을 지원합니다. 특정한 binlog 형식이 필요한 경우가 아니면 혼합하는 것이 좋습니다. 다양한 MySQL 이진 로그 형식에 대한 자세한 내용은 MySQL 설명서의 [Binary Logging Formats](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html)을 참조하세요.

복제를 사용하려는 경우 바이너리 로깅 형식은 원본에 기록되고 복제 대상으로 전송되는 데이터 변경 내용의 레코드를 확인하므로 중요합니다. 복제와 관련된 다양한 바이너리 로깅 형식의 장/단점에 대한 자세한 내용은 MySQL 설명서의 [Advantages and Disadvantages of Statement-Based and Row-Based Replication](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html)을 참조하십시오.

**중요**  
MySQL 8.0.34에서 MySQL이 `binlog_format` 파라미터를 더 이상 사용하지 않습니다. 이후 MySQL 버전에서 MySQL은 파라미터를 제거하고 행 기반 복제만 지원할 계획입니다. 따라서 새 MySQL 복제 설정에 행 기반 로깅을 사용하는 것이 좋습니다. 자세한 내용은 MySQL 설명서의 [binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format)을 참조하세요.  
MySQL 버전 8.0 및 8.4는 `binlog_format` 파라미터를 수락합니다. 이 파라미터를 사용하면 MySQL에서 사용 중단 경고가 표시됩니다. 향후 메이저 릴리스에서 MySQL로부터 `binlog_format` 파라미터가 제거될 예정입니다.  
명령문 기반 복제를 수행하면 원본 DB 인스턴스 와 읽기 전용 복제본 간에 불일치가 발생할 수 있습니다. 자세한 내용은 MySQL 설명서의 [Determination of Safe and Unsafe Statements in Binary Logging](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html)을 참조하십시오.  
이진 로깅을 활성화하면 DB 인스턴스에 대한 평균 디스크 쓰기 I/O 작업 수가 증가합니다. `WriteIOPS``` CloudWatch 지표를 사용하여 IOPS 사용량을 모니터링할 수 있습니다.

**MySQL 이진 로깅 형식을 설정하려면**

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

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. 수정할 DB 인스턴스와 연결된 DB 파라미터 그룹을 선택합니다.

   기본 파라미터 그룹을 수정할 수 없습니다. DB 인스턴스 가 기본 파라미터 그룹을 사용하고 있는 경우 새 파라미터 그룹을 생성하여 DB 인스턴스 와 연결합니다.

   파라미터 그룹에 대한 자세한 정보는 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오.

1. **작업**에서 **편집**을 선택합니다.

1. `binlog_format` 파라미터를 선택한 이진 로깅 형식(`ROW`, `STATEMENT`, 또는 `MIXED`)으로 설정합니다.

   DB 인스턴스의 백업 보존 기간을 0으로 설정하여 이진 로깅을 끌 수 있지만, 이렇게 하면 일일 자동 백업이 비활성화됩니다. 자동 백업을 비활성화하면 `log_bin` 세션 변수가 꺼지거나 비활성화됩니다. 그러면 RDS for MySQL DB 인스턴스에 대한 이진 로깅이 비활성화되며, 이는 다시 `binlog_format` 세션 변수를 데이터베이스의 기본값인 `ROW` 값으로 재설정합니다. 백업을 비활성화하지 않는 것이 좋습니다. **백업 보존 기간** 설정에 대한 자세한 정보는 [DB 인스턴스에 대한 설정](USER_ModifyInstance.Settings.md) 섹션을 참조하세요.

1. **변경 내용 저장**을 선택하여 업데이트를 DB 파라미터 그룹에 저장합니다.

`binlog_format` 파라미터는 RDS for MySQL에서 동적이므로 DB 인스턴스를 재부팅하지 않고 변경 사항을 적용할 수 있습니다. (Aurora MySQL에서 이 파라미터는 정적입니. 자세한 내용은 [Aurora MySQL 바이너리 로깅 구성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html)을 참조하세요.)

**중요**  
DB 파라미터 그룹을 변경하면 해당 파라미터 그룹을 사용하는 모든 DB 인스턴스에 영향을 미칩니다. AWS 리전의 다양한 MySQL DB 인스턴스에 대해 서로 다른 바이너리 로깅 형식을 지정하려면 DB 인스턴스에서 서로 다른 DB 파라미터 그룹을 사용해야 합니다. 이러한 파라미터 그룹은 다양한 로깅 형식을 식별합니다. 각 DB 인스턴스에 적절한 DB 파라미터 그룹을 할당합니다.

# 다중 AZ DB 클러스터에 대한 MySQL 이진 로깅 구성
<a name="USER_Binlog.MultiAZ"></a>

Amazon RDS for MySQL 다중 AZ DB 클러스터의 이진 로깅은 복제, 시점 복구 및 감사를 지원하기 위해 모든 데이터베이스 변경 사항을 기록합니다. 다중 AZ DB 클러스터에서 이진 로그는 세컨더리 노드를 프라이머리 노드와 동기화하여 가용 영역 간 데이터 일관성을 보장하고 원활한 장애 조치를 활성화합니다.

이진 로깅을 최적화하기 위해 Amazon RDS는 이진 로그 트랜잭션 압축을 지원하므로 이진 로그에 대한 스토리지 요구 사항이 줄어들고 복제 효율성이 향상됩니다.

**Topics**
+ [다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축](#USER_Binlog.MultiAZ.compression)
+ [다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축 구성](#USER_Binlog.MultiAZ.configuring)

## 다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축
<a name="USER_Binlog.MultiAZ.compression"></a>

이진 로그 트랜잭션 압축은 zstd 알고리즘을 사용하여 이진 로그에 저장된 트랜잭션 데이터의 크기를 줄입니다. 활성화되면 MySQL 데이터베이스 엔진은 트랜잭션 페이로드를 단일 이벤트로 압축하여 I/O 및 스토리지 오버헤드를 최소화합니다. 이 기능은 데이터베이스 성능을 개선하고, 이진 로그 크기를 줄이며, 다중 AZ DB 클러스터에서 로그를 관리하고 복제하기 위한 리소스 사용을 최적화합니다.

Amazon RDS는 다음 파라미터를 통해 RDS for MySQL 다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축을 제공합니다.
+ `binlog_transaction_compression` - 활성화되면(`1`) 데이터베이스 엔진은 트랜잭션 페이로드를 압축하여 단일 이벤트로 이진 로그에 기록합니다. 이렇게 하면 스토리지 사용량과 I/O 오버헤드가 줄어듭니다. 파라미터는 기본적으로 비활성화되어 있습니다.
+ `binlog_transaction_compression_level_zstd` - 이진 로그 트랜잭션에 대한 zstd 압축 수준을 구성합니다. 값이 높을수록 압축률이 증가하여 스토리지 요구 사항은 더 줄어들지만 압축을 위한 CPU 및 메모리 사용량은 증가합니다. 기본값은 3이며 범위는 1\$122입니다.

이러한 파라미터를 사용하면 워크로드 특성 및 리소스 가용성에 따라 이진 로그 압축을 미세 조정할 수 있습니다. 자세한 내용은 MySQL 설명서에서 [Binary Log Transaction Compression](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html)을 참조하세요.

이진 로그 트랜잭션 압축의 주요 이점은 다음과 같습니다.
+ 압축은 특히 트랜잭션이 크거나 쓰기 볼륨이 많은 워크로드의 경우 이진 로그의 크기를 줄입니다.
+ 이진 로그가 작을수록 네트워크 및 I/O 오버헤드가 줄어들어 복제 성능이 향상됩니다.
+ `binlog_transaction_compression_level_zstd` 파라미터는 압축률과 리소스 소비 간의 균형을 제어합니다.

## 다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축 구성
<a name="USER_Binlog.MultiAZ.configuring"></a>

RDS for MySQL 다중 AZ DB 클러스터에 대한 이진 로그 트랜잭션 압축을 구성하려면 워크로드 요구 사항에 맞게 관련 클러스터 파라미터 설정을 수정합니다.

### 콘솔
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**이진 로그 트랜잭션 압축을 활성화하는 방법**

1. DB 클러스터 파라미터 그룹을 수정하여 `binlog_transaction_compression` 파라미터를 `1`로 설정합니다.

1. (선택 사항) 워크로드 요구 사항 및 리소스 가용성에 따라 `binlog_transaction_compression_level_zstd` 파라미터 값을 조정합니다.

자세한 내용은 [ DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

AWS CLI를 사용하여 이진 로그 트랜잭션 압축을 구성하려면 [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) 명령을 사용합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name your-cluster-parameter-group \
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```
Windows의 경우:  

```
aws rds modify-db-cluster-parameter-group ^
  --db-cluster-parameter-group-name your-cluster-parameter-group ^
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```

### RDS API
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Amazon RDS API를 사용하여 이진 로그 트랜잭션 압축을 구성하려면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) 작업을 사용합니다.

# MySQL 이진 로그 액세스
<a name="USER_LogAccess.MySQL.Binarylog"></a>

mysqlbinlog 유틸리티를 사용하여 RDS for MySQL DB 인스턴스에서 이진 로그를 다운로드하거나 스트리밍할 수 있습니다. 이진 로그를 로컬 컴퓨터로 다운로드하면 mysql 유틸리티를 사용하여 로그를 재생하는 것과 같은 작업을 수행할 수 있습니다. mysqlbinlog 유틸리티 사용에 대한 자세한 내용은 MySQL 설명서의 [mysqlbinlog를 사용하여 이진 로그 파일 백업](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html)을 참조하세요.

Amazon RDS 인스턴스에 대해 mysqlbinlog 유틸리티를 실행하려면 다음 옵션을 사용합니다.
+ `--read-from-remote-server` - 필수입니다.
+ `--host` – 인스턴스의 엔드포인트에서 DNS 이름.
+ `--port` – 인스턴스에서 사용되는 포트.
+ `--user` - `REPLICATION SLAVE` 권한이 부여된 MySQL 사용자.
+ `--password` – MySQL 사용자의 암호. 또는 유틸리티에서 암호 입력을 요구하는 메시지가 표시되도록 암호 값을 생략.
+ `--raw` - 파일을 이진 형식으로 다운로드합니다.
+ `--result-file` - 원시 출력을 수신할 로컬 파일.
+ `--stop-never` - 이진 로그 파일을 스트리밍합니다.
+ `--verbose` - `ROW` binlog 형식을 사용할 경우 이 옵션을 포함하면 행 이벤트를 유사 SQL 문으로 볼 수 있습니다. `--verbose` 옵션에 대한 자세한 내용은 MySQL 설명서의 [mysqlbinlog 행 이벤트 표시](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html)를 참조하세요.
+ 하나 이상의 이진 로그 파일의 이름을 지정합니다. 사용 가능한 로그의 목록을 획득하려면 SQL 명령 `SHOW BINARY LOGS`를 사용합니다.

mysqlbinlog 옵션에 대한 자세한 내용은 MySQL 설명서의 [mysqlbinlog - 이진 로그 파일 처리용 유틸리티](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html)를 참조하세요.

다음 예시에서는 mysqlbinlog 유틸리티를 사용하는 방법을 보여줍니다.

대상 LinuxmacOS, 또는Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

Windows의 경우:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

mysqlbinlog 유틸리티가 바이너리 로그에 액세스할 수 있도록 DB 인스턴스에서 바이너리 로그를 계속 사용할 수 있어야 합니다. 가용성을 보장하기 위해 [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 저장 프로시저를 사용하고 로그를 다운로드할 수 있는 충분한 시간을 지정합니다. 이 구성이 설정되지 않은 경우 Amazon RDS가 이진 로그를 가능한 한 빨리 제거하므로 mysqlbinlog 유틸리티에서 검색하는 바이너리 로그에 간극이 발생합니다.

다음 예제에서는 보존 기간을 1일로 설정합니다.

```
call mysql.rds_set_configuration('binlog retention hours', 24);
```

현재 설정을 표시하려면 [mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration) 저장 프로시저를 사용합니다.

```
call mysql.rds_show_configuration;
```

# Amazon RDS for Oracle 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.Oracle"></a>

Amazon RDS 콘솔 또는 API를 사용하여 Oracle 알림 로그, 감사 파일 및 추적 파일에 액세스할 수 있습니다. 파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 단원을 참조하십시오.

제공되는 Oracle 감사 파일은 표준 Oracle 감사 파일입니다. Amazon RDS는 Oracle FGA(세밀한 감사) 기능을 지원합니다. 하지만 로그 액세스는 `SYS.FGA_LOG$` 테이블에 저장되고 `DBA_FGA_AUDIT_TRAIL` 보기를 통해 액세스 가능한 FGA 이벤트에 대한 액세스를 제공하지 않습니다.

DB 인스턴스에 사용 가능한 Oracle 로그 파일을 나열하는 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) API 작업에서는 `MaxRecords` 파라미터를 무시하고 최대 1,000개의 레코드를 반환합니다. 호출은 `LastWritten`을(를) 밀리초 단위의 POSIX 날짜로 반환합니다.

**Topics**
+ [보존 일정](#USER_LogAccess.Concepts.Oracle.Retention)
+ [Oracle 추적 파일을 사용한 작업](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles)
+ [Amazon CloudWatch Logs에 Oracle 로그 게시](#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [알림 로그 및 Listener 로그에 액세스하기](#USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog)

## 보존 일정
<a name="USER_LogAccess.Concepts.Oracle.Retention"></a>

로그 파일이 매우 커질 경우 Oracle 데이터베이스 엔진이 커진 파일들을 순환시킬 수 있습니다. 감사 또는 추적 파일을 보존하려면 해당 파일을 다운로드해야 합니다. 파일을 로컬에 저장하면 Amazon RDS 스토리지 비용이 절감되고 데이터에 사용할 수 있는 공간이 늘어납니다.

다음 표에서는 Amazon RDS의 Oracle 알림 로그, 감사 파일 및 추적 파일에 대한 보존 일정을 보여줍니다.


****  

| 로그 유형 | 보존 일정 | 
| --- | --- | 
|  알림 로그  |   텍스트 알림 로그는 매일 교체되며 Amazon RDS에서 30일간 보존합니다. XML 알림 로그는 7일 이상 보관됩니다. `ALERTLOG` 보기를 사용하여 이 로그에 액세스할 수 있습니다.  | 
|  감사 파일  |   감사 파일의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 감사 파일을 삭제할 수 있습니다.  | 
|  추적 파일  |  추적 파일의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 추적 파일을 삭제할 수 있습니다.  | 
|  리스너 로그  |   리스너 로그의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 리스너 로그를 삭제할 수 있습니다.  | 

**참고**  
감사 파일과 추적 파일의 보존 구성은 동일합니다.

## Oracle 추적 파일을 사용한 작업
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles"></a>

추적 파일을 만들고 새로 고치고 액세스하고 삭제하기 위한 Amazon RDS 절차의 설명을 확인할 수 있습니다.

**Topics**
+ [파일 나열](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest)
+ [추적 파일 생성 및 세션 추적](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating)
+ [추적 파일 검색](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving)
+ [추적 파일 제거](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging)

### 파일 나열
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest"></a>

`background_dump_dest` 경로 내에 있는 임의의 파일에 대한 액세스를 허용하기 위해 두 절차 중 하나를 사용할 수 있습니다. 첫 번째 절차는 현재 `background_dump_dest`에 있는 모든 파일의 목록을 포함한 보기를 새로 고칩니다.

```
1. EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
```

보기가 새로 고쳐지면 다음 보기를 쿼리하여 결과에 액세스합니다.

```
1. SELECT * FROM rdsadmin.tracefile_listing;
```

이전 프로세스를 대체하는 프로세스는 `FROM table`을 사용하여 테이블과 같은 형식으로 되어 있는 관계형 데이터가 아닌 데이터를 스트리밍하여 데이터베이스 디렉터리 내용을 나열하는 것입니다.

```
1. SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
```

다음 쿼리는 로그 파일의 텍스트를 표시합니다.

```
1. SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_dbname.log.date'));
```

읽기 전용 복제본에서 `V$DATABASE.DB_UNIQUE_NAME`을 쿼리하여 BDUMP 디렉터리의 이름을 가져옵니다. 고유 이름이 `DATABASE_B`인 경우 BDUMP 디렉터리는 `BDUMP_B`입니다. 다음 예제에서는 복제본에서 BDUMP 이름을 쿼리한 다음 이 이름을 사용하여 `alert_DATABASE.log.2020-06-23`의 콘텐츠를 쿼리합니다.

```
1. SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL;
2. 
3. BDUMP_VARIABLE
4. --------------
5. BDUMP_B
6. 
7. SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));
```

### 추적 파일 생성 및 세션 추적
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating"></a>

`ALTER SESSION`에 대한 제한이 없으므로, Oracle에서 추적 파일을 생성하는 다양한 표준 메서드를 Amazon RDS DB 인스턴스에도 그대로 사용할 수 있습니다. 더 높은 액세스 권한이 필요한 추적 파일에 대해서는 다음 프로시저가 제공됩니다.


****  

|  Oracle 메서드  |  Amazon RDS 메서드 | 
| --- | --- | 
|  `oradebug hanganalyze 3 `  |  `EXEC rdsadmin.manage_tracefiles.hanganalyze; `  | 
|  `oradebug dump systemstate 266 `  |  `EXEC rdsadmin.manage_tracefiles.dump_systemstate;`  | 

여러 표준 메서드를 사용하여 Amazon RDS의 Oracle DB 인스턴스에 연결된 개별 세션을 추적할 수 있습니다. 세션 추적 기능을 활성화하기 위해 `DBMS_SESSION` 및 `DBMS_MONITOR` 등 Oracle에서 제공한 PL/SQL 패키지의 하위 프로그램을 실행할 수 있습니다. 자세한 내용은 Oracle 문서의 [세션 추적 기능 활성화](https://docs.oracle.com/database/121/TGSQL/tgsql_trace.htm#GUID-F872D6F9-E015-481F-80F6-8A7036A6AD29) 단원을 참조하십시오.

### 추적 파일 검색
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving"></a>

Amazon RDS에서 관리되는 외부 테이블의 표준 SQL 쿼리를 사용하여 `background_dump_dest`에 있는 추적 파일을 검색할 수 있습니다. 이 메서드를 사용하려면 특정 추적 파일에 대한 이 테이블의 위치를 설정하는 프로시저를 실행해야 합니다.

예를 들어 이전에 언급한 `rdsadmin.tracefile_listing` 보기를 사용하여 시스템 상의 모든 추적 파일을 나열할 수 있습니다. 그러면 다음 프로시저를 사용하여 의도한 추적 파일을 가리키도록 `tracefile_table` 보기를 설정할 수 있습니다.

```
1. EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');
```

다음 예제에서는 제공된 파일로 위치가 설정된 현재 스키마에서 외부 테이블을 만듭니다. SQL 쿼리를 사용하여 콘텐츠를 로컬 파일로 가져올 수 있습니다.

```
1. SPOOL /tmp/tracefile.txt
2. SELECT * FROM tracefile_table;
3. SPOOL OFF;
```

### 추적 파일 제거
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging"></a>

추적 파일이 누적되면서 디스크 공간을 낭비할 수 있습니다. Amazon RDS는 기본적으로 7일 이상 지난 추적 파일 및 덤프 파일을 제거합니다. `show_configuration` 절차를 사용하여 추적 파일 보존 기간을 보고 설정할 수 있습니다. 구성 결과를 볼 수 있도록 `SET SERVEROUTPUT ON` 명령을 실행해야 합니다.

다음 예제에서는 현재 추적 파일 보존 기간을 표시한 다음, 새 추적 파일 보존 기간을 설정합니다.

```
 1. # Show the current tracefile retention
 2. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
 3. NAME:tracefile retention
 4. VALUE:10080
 5. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
 6. 		
 7. # Set the tracefile retention to 24 hours:
 8. SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440);
 9. SQL> commit;
10. 
11. #show the new tracefile retention
12. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
13. NAME:tracefile retention
14. VALUE:1440
15. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
```

주기적인 제거 프로세스 외에, `background_dump_dest`에서 파일을 수동으로 제거할 수 있습니다. 다음 예제에서는 5분 이상 지난 모든 파일을 제거하는 방법을 보여줍니다.

```
EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);
```

(.trc와 같은 파일 확장명을 포함하지 않고) 특정 패턴과 일치하는 모든 파일을 제거할 수도 있습니다. 다음 예제에서는 "`SCHPOC1_ora_5935`"로 시작하는 모든 파일을 제거하는 방법을 보여줍니다.

```
1. EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
```

## Amazon CloudWatch Logs에 Oracle 로그 게시
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs"></a>

Amazon CloudWatch Logs의 로그 그룹에 로그 데이터를 게시하도록 RDS for Oracle DB 인스턴스를 구성할 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 측정치를 볼 수 있습니다. CloudWatch Logs를 사용하여 내구성이 뛰어난 스토리지에 로그 레코드를 저장할 수 있습니다.

Amazon RDS는 각 Oracle 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어 감사 로그를 포함하도록 내보내기 함수를 구성하면 감사 데이터가 `/aws/rds/instance/my_instance/audit` 로그 그룹의 감사 로그 스트림에 저장됩니다. 다음 표에는 Amazon CloudWatch Logs에 로그를 게시하기 위한 RDS for Oracle의 요구 사항이 요약되어 있습니다.


| 로그 이름 | 요구 사항 | 기본값 | 
| --- | --- | --- | 
|  알림 로그  |  없음. 이 로그를 비활성화할 수 없습니다.  |  활성화됨  | 
|  추적 로그  |  `trace_enabled` 파라미터를 `TRUE`로 설정하거나 기본값으로 그대로 두세요.  |  `TRUE`  | 
|  감사 로그  |  `audit_trail` 파라미터를 다음 허용값 중 하나로 설정합니다. <pre>{ none | os | db [, extended] | xml [, extended] }</pre>  |  `none`  | 
|  리스너 로그  |  없음. 이 로그를 비활성화할 수 없습니다.  |  활성화됨  | 
|  Oracle Management Agent 로그  |  없음. 이 로그를 비활성화할 수 없습니다.  |  활성화됨  | 

이 Oracle Management Agent 로그는 다음 테이블에 나와 있는 로그 그룹으로 구성됩니다.


****  

| 로그 이름 | CloudWatch 로그 그룹 | 
| --- | --- | 
| emctl.log | oemagent-emctl | 
| emdctlj.log | oemagent-emdctlj | 
| gcagent.log | oemagent-gcagent | 
| gcagent\$1errors.log | oemagent-gcagent-errors | 
| emagent.nohup | oemagent-emagent-nohup | 
| secure.log | oemagent-secure | 

자세한 내용은 Oracle 설명서에서 [Management Agent 로그 및 추적 파일 찾기](https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.4/emadm/locating-management-agent-log-and-trace-files1.html#GUID-9C710D78-6AA4-42E4-83CD-47B5FF4892DF)를 참조하세요.

### 콘솔
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.console"></a>

**AWS Management Console에서 Oracle DB 로그를 CloudWatch Logs에 게시하려면**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

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

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

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

### AWS CLI
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.CLI"></a>

Oracle 로그를 게시하기 위해 다음 파라미터와 함께 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 사용할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 명령을 사용하여 Oracle 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
다음 예에서는 CloudWatch Logs 게시가 활성화된 Oracle DB 인스턴스를 생성합니다. `--cloudwatch-logs-export-configuration` 값은 문자열의 JSON 배열입니다. 문자열은 `alert`, `audit`, `listener` 및 `trace`의 조합일 수 있습니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \
    --db-instance-class db.m5.large \
    --allocated-storage 20 \
    --engine oracle-ee \
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 \
    --license-model bring-your-own-license \
    --master-username myadmin \
    --manage-master-user-password
```
Windows의 경우:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration trace alert audit listener oemagent ^
    --db-instance-class db.m5.large ^
    --allocated-storage 20 ^
    --engine oracle-ee ^
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 ^
    --license-model bring-your-own-license ^
    --master-username myadmin ^
    --manage-master-user-password
```

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 Oracle DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체에 대한 키는 `EnableLogTypes`이며, 해당 값은 `alert`, `audit`, `listener` 및 `trace`의 조합을 사용하는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
```

**Example**  
다음 예에서는 CloudWatch Logs에 감사 및 리스너 로그 파일 게시를 비활성화하도록 기존 Oracle DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체에 대한 키는 `DisableLogTypes`이며, 해당 값은 `alert`, `audit`, `listener` 및 `trace`의 조합을 사용하는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"
```

### RDS API
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.API"></a>

RDS API를 사용하여 Oracle DB 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출할 수 있습니다.
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**참고**  
`CloudwatchLogsExportConfiguration` 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `ApplyImmediately` 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출하여 Oracle 로그를 게시할 수도 있습니다.
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

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

## 알림 로그 및 Listener 로그에 액세스하기
<a name="USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog"></a>

Amazon RDS 콘솔을 사용하여 알림 로그를 볼 수 있습니다. 다음 SQL 문도 사용할 수 있습니다.

```
1. SELECT message_text FROM alertlog;
```

Amazon CloudWatch Logs를 사용하여 Listener 로그에 액세스하세요.

**참고**  
Oracle은 알림 및 리스너 로그가 Amazon RDS 보기에서 이들 로그를 사용할 수 없게 되는 시점인 10MB를 초과할 때 이들 로그를 순환시킵니다.

# RDS for PostgreSQL 데이터베이스 로그 파일
<a name="USER_LogAccess.Concepts.PostgreSQL"></a>

다음 유형의 로그 파일을 모니터링할 수 있습니다.
+ PostgreSQL 로그
+ 업그레이드 로그
+ IAM 데이터베이스 인증 오류 로그
**참고**  
IAM 데이터베이스 인증 오류 로그를 활성화하려면 먼저 RDS for PostgreSQL DB 인스턴스에 IAM 데이터베이스 인증을 활성화해야 합니다. IAM 데이터베이스 인증 활성화에 대한 자세한 내용은 [IAM 데이터베이스 인증의 활성화 및 비활성화](UsingWithRDS.IAMDBAuth.Enabling.md) 섹션을 참조하세요.

RDS for PostgreSQL은 기본 PostgreSQL 로그 파일에 데이터베이스 활동을 로깅합니다. 온프레미스 PostgreSQL DB 인스턴스의 경우 이러한 메시지가 `log/postgresql.log`에 로컬로 저장됩니다. RDS for PostgreSQL DB 인스턴스의 경우 Amazon RDS 인스턴스에서 로그 파일을 사용할 수 있습니다. 또한 이러한 로그는 AWS Management Console을 통해 액세스할 수 있으며, 여기에서 해당 로그를 보거나 다운로드할 수 있습니다. 기본 로깅 수준에서는 로그인 실패, 치명적인 서버 오류, 교착 상태 및 쿼리 실패를 캡처합니다.

파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md) 섹션을 참조하세요. PostgreSQL 로그에 대한 자세한 내용은 [Working with Amazon RDS and Aurora PostgreSQL logs: Part 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/)(RDS 및 Aurora PostgreSQL 로그로 작업하기: 파트 1) 및 [Working with Amazon RDS and Aurora PostgreSQL logs: Part 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/)(RDS 및 Aurora PostgreSQL 로그로 작업하기: 파트 2)를 참조하세요.

이 주제에서 설명하는 표준 PostgreSQL 로그 외에 RDS for PostgreSQL은 PostgreSQL Auidt 확장(`pgAudit`)도 지원합니다. 대부분의 규제 대상 산업 및 정부 기관은 법적 요구 사항을 준수하기 위해 데이터 변경에 대한 감사 로그 또는 감사 추적을 보존해야 합니다. pgAudit 설치 및 사용에 대한 자세한 내용은 [pgAudit를 사용하여 데이터베이스 활동 로깅](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md) 섹션을 참조하세요.

**Topics**
+ [RDS for PostgreSQL에서의 로깅을 위한 파라미터](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [RDS for PostgreSQL DB 인스턴스에 쿼리 로깅을 활성화합니다.](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [Amazon CloudWatch Logs에 PostgreSQL 로그 게시](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

# RDS for PostgreSQL에서의 로깅을 위한 파라미터
<a name="USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups"></a>

다양한 파라미터를 수정하여 RDS for PostgreSQL DB 인스턴스의 로깅 동작을 사용자 지정할 수 있습니다. 다음 표에서는 로그 저장 기간, 로그 교체 시기, 로그를 CSV(쉼표로 구분된 값) 형식으로 출력할지 여부 등 다양한 파라미터를 확인할 수 있습니다. 다른 설정에서 STDERR로 전송된 텍스트 출력도 찾을 수 있습니다. 수정 가능한 파라미터의 설정을 변경하려면 에 대한 사용자 지정 DB 파라미터 그룹을 사용하세요. RDS for PostgreSQL 인스턴스 자세한 내용은 [Amazon RDS DB 인스턴스용 DB 파라미터 그룹](USER_WorkingWithDBInstanceParamGroups.md). 섹션을 참조하세요.


| 파라미터 | 기본값 | 설명 | 
| --- | --- | --- | 
| log\$1destination | stderr | 로그에 대한 출력 형식을 설정합니다. 기본값은 `stderr`이지만 설정에 `csvlog`를 추가하여 CSV(쉼표로 구분된 값)를 지정할 수도 있습니다. 자세한 내용은 [로그 대상 설정(`stderr`, `csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format) 섹션을 참조하세요. | 
| log\$1filename |  postgresql.log.%Y-%m-%d-%H  | 로그 파일 이름의 패턴을 지정합니다. 이 파라미터는 기본값 외에도 `postgresql.log.%Y-%m-%d` 및 `postgresql.log.%Y-%m-%d-%H%M` 파일 이름 패턴을 지원합니다. | 
| log\$1line\$1prefix | %t:%r:%u@%d:[%p]: | 시간(%t), 원격 호스트(%r), 사용자(%u), 데이터베이스(%d) 및 프로세스 ID(%p)를 기록하기 위해 `stderr`에 기록되는 각 로그 줄의 접두사를 정의합니다. | 
| log\$1rotation\$1age | 60 | 몇 분 후에 로그 파일이 자동으로 교체됩니다. 이 값을 1분에서 1,440분 사이의 값으로 변경할 수 있습니다. 자세한 내용은 [로그 파일 회전 설정](#USER_LogAccess.Concepts.PostgreSQL.log_rotation) 섹션을 참조하세요. | 
| log\$1rotation\$1size | – | 로그 교체가 자동으로 이루어질 때의 크기(kB)입니다. 로그는 `log_rotation_age` 파라미터에 따라 교체되므로 기본적으로 이 파라미터는 사용되지 않습니다. 자세한 내용은 [로그 파일 회전 설정](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)를 참조하세요. | 
| rds.log\$1retention\$1period | 4320 | 지정된 시간(분)보다 오래된 PostgreSQL 로그가 삭제됩니다. 기본값인 4,320분으로 지정하면 3일이 지난 로그 파일이 삭제됩니다. 자세한 내용은 [로그 보존 기간 설정](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period) 섹션을 참조하세요. | 

애플리케이션 문제를 식별하기 위해 로그에서 쿼리 실패, 로그인 실패, 교착 상태 및 치명적인 서버 오류를 찾아볼 수 있습니다. 예를 들어, 레거시 애플리케이션을 Oracle에서 Amazon RDS PostgreSQL로 변환했지만 일부 쿼리가 올바르게 변환되지 않았다고 가정합시다. 이러한 잘못된 형식의 쿼리는 오류 메시지를 생성하고, 로그에서 오류 메시지를 찾아 문제를 식별할 수 있습니다. 쿼리 로깅에 대한 자세한 내용은 [ RDS for PostgreSQL DB 인스턴스에 쿼리 로깅을 활성화합니다.](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md) 섹션을 참조하세요.

다음 주제에서 PostgreSQL 로깅의 기본 세부 정보를 제어하는 다양한 파라미터에 관한 정보를 찾을 수 있습니다.

**Topics**
+ [로그 보존 기간 설정](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)
+ [로그 파일 회전 설정](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)
+ [로그 대상 설정(`stderr`, `csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)
+ [log\$1line\$1prefix 파라미터 이해하기](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)

## 로그 보존 기간 설정
<a name="USER_LogAccess.Concepts.PostgreSQL.log_retention_period"></a>

`rds.log_retention_period` 파라미터는 RDS for PostgreSQL DB 인스턴스가 로그 파일을 보관하는 기간을 지정합니다. 기본 설정은 3일(4,320분)이지만 1일(1,440분)에서 7일(10,080분) 사이로 이 값을 설정할 수 있습니다. RDS for PostgreSQL DB 인스턴스에 일정 기간 동안 로그 파일을 보관할 수 있는 충분한 스토리지가 있는지 확인하세요.

로그를 정기적으로 Amazon CloudWatch Logs에 게시하여 로그가 에서 제거된 후에도 시스템 데이터를 보고 분석할 수 있도록 하는 것이 좋습니다. RDS for PostgreSQL DB 인스턴스  자세한 내용은 [Amazon CloudWatch Logs에 PostgreSQL 로그 게시](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs) 섹션을 참조하세요. 

## 로그 파일 회전 설정
<a name="USER_LogAccess.Concepts.PostgreSQL.log_rotation"></a>

Amazon RDS는 기본적으로 매시간 새 로그 파일을 생성합니다. 타이밍은 `log_rotation_age` 파라미터로 제어됩니다. 이 파라미터의 기본값은 60(분)이지만 1분에서 24시간(1,440분) 사이로 설정할 수 있습니다. 교체 시간이 되면 새 로그 파일이 생성됩니다. 파일의 이름은 `log_filename` 파라미터로 지정된 패턴에 따라 결정됩니다.

로그 파일은 `log_rotation_size` 파라미터에 지정된 대로 크기에 따라 교체될 수도 있습니다. 이 파라미터는 로그가 지정된 크기(KB)에 도달하면 교체되도록 지정합니다. RDS for PostgreSQL DB 인스턴스의 경우 `log_rotation_size`가 설정되지 않습니다. 즉, 지정된 값이 없습니다. 그러나 이 파라미터는 0\$12,097,151KB(킬로바이트) 사이로 설정할 수 있습니다.  

로그 파일 이름은 `log_filename` 파라미터에 지정된 파일 이름 패턴을 기반으로 합니다. 이 파라미터에 사용할 수 있는 설정은 다음과 같습니다.
+ `postgresql.log.%Y-%m-%d` - 로그 파일 이름의 기본 형식입니다. 로그 파일 이름에 년, 월, 일이 포함됩니다.
+ `postgresql.log.%Y-%m-%d-%H` - 로그 파일 이름 형식에 시간이 포함됩니다.

자세한 내용은 PostgreSQL 설명서의 [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE) 및 [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE) 섹션을 참조하세요.

## 로그 대상 설정(`stderr`, `csvlog`)
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format"></a>

기본적으로 Amazon RDS PostgreSQL은 표준 오류(stderr) 형식으로 로그를 생성합니다. 이 형식이 `log_destination` 파라미터에 대한 기본 설정입니다. 각 메시지에는 `log_line_prefix` 파라미터에 지정된 패턴을 사용하여 접두사가 붙습니다. 자세한 내용은 [log\$1line\$1prefix 파라미터 이해하기](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix) 섹션을 참조하세요.

RDS for PostgreSQL도 로그를 `csvlog` 형식으로 생성할 수 있습니다. `csvlog`는 로그 데이터를 쉼표로 구분된 값(CSV) 데이터로 분석하는 데 유용합니다. 예를 들어 외부 테이블로 로그를 사용하기 위해 `log_fdw` 확장을 사용한다고 가정하겠습니다. `stderr` 로그 파일에 만들어진 외부 테이블에는 로그 이벤트 데이터가 있는 하나의 열이 포함되어 있습니다. `log_destination` 파라미터에 `csvlog`를 추가하면 외부 테이블의 여러 열에 대한 구분이 있는 CSV 형식의 로그 파일을 얻게 됩니다. 이제 로그를 더 쉽게 정렬하고 분석할 수 있습니다. `log_fdw`를 `csvlog`와 함께 사용하는 방법을 알아보려면 [log\$1fdw 확장으로 SQL을 사용하여 DB 로그에 액세스](CHAP_PostgreSQL.Extensions.log_fdw.md) 섹션을 참조하세요.

이 파라미터에 `csvlog`를 지정하는 경우 `stderr` 및 `csvlog` 파일이 모두 생성된다는 점에 유의하세요. `rds.log_retention_period` 및 로그 스토리지와 회전율에 영향을 주는 다른 설정을 고려하여 로그에서 사용하는 스토리지를 모니터링해야 합니다. `stderr` 및 `csvlog`를 사용하는 경우 로그에서 소비하는 스토리지가 두 배 이상 늘어납니다.

`log_destination`에 `csvlog`를 추가하고 `stderr`로만 되돌리려면 파라미터를 재설정해야 합니다. 이렇게 하려면 Amazon RDS 콘솔을 연 다음 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 엽니다. `log_destination` 파라미터를 선택하고 **파라미터 편집**을 선택한 다음 **재설정**을 선택합니다.

로깅 구성에 대한 자세한 내용은 [Amazon RDS 및 Aurora PostgreSQL 로그 작업: 1부](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/)를 참조하세요.

## log\$1line\$1prefix 파라미터 이해하기
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix"></a>

`stderr` 로그 형식은 각 로그 메시지에 `log_line_prefix` 파라미터에 지정된 세부 정보를 접두사로 지정합니다. 기본값은 다음과 같습니다.

```
%t:%r:%u@%d:[%p]:t
```

Aurora PostgreSQL 버전 16부터는 다음을 선택할 수도 있습니다.

```
%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a
```

stderr로 전송되는 각 로그 항목에는 선택한 값에 따라 다음 정보가 포함됩니다.
+ `%t` - 밀리초 단위를 제외한 로그 항목 시간
+ `%m` - 밀리초 단위를 포함한 로그 항목 시간
+  `%r` - 원격 호스트 주소
+  `%u@%d` - 사용자 이름 @ 데이터베이스 이름
+  `[%p]` - 프로세스 ID(사용 가능한 경우)
+  `%l` - 세션당 로그 행 번호 
+  `%e` – SQL 오류 코드 
+  `%s` – 프로세스 시작 타임스탬프 
+  `%v` - 가상 트랜잭션 ID 
+  `%x` – 트랜잭션 ID 
+  `%c` – 세션 ID 
+  `%q` - 세션이 아닌 종결자 
+  `%a` – 애플리케이션 이름 

# RDS for PostgreSQL DB 인스턴스에 쿼리 로깅을 활성화합니다.
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

다음 테이블에 나열된 파라미터 중 일부를 설정하여 쿼리, 잠금을 기다리는 쿼리, 체크포인트 및 기타 여러 세부 정보를 포함하여 데이터베이스 활동에 대한 보다 자세한 정보를 수집할 수 있습니다. 이 주제에서는 쿼리 로깅에 중점을 둡니다.


| 파라미터 | 기본값 | 설명 | 
| --- | --- | --- | 
| log\$1connections | – | 성공한 연결을 모두 기록합니다.  | 
| log\$1disconnections | – | 각 세션의 끝과 기간을 로깅합니다.  | 
| log\$1checkpoints | 1 | 각 체크포인트를 기록합니다.  | 
| log\$1lock\$1waits | – | 오랜 잠금 대기 시간을 기록합니다. 이 파라미터는 기본적으로 설정되어 있지 않습니다. | 
| log\$1min\$1duration\$1sample | – | (밀리초) 문 샘플이 로그되는 최소 실행 시간을 설정합니다. 샘플 크기는 log\$1statement\$1sample\$1rate 파라미터를 사용하여 설정합니다. | 
| log\$1min\$1duration\$1statement | – | 지정된 시간 이상 실행되는 모든 SQL 문은 로깅됩니다. 이 파라미터는 기본적으로 설정되어 있지 않습니다. 이 파라미터를 활성화하면 최적화되지 않은 쿼리를 찾는 데 도움이 될 수 있습니다. | 
| log\$1statement | – | 기록할 문 유형을 설정합니다. 기본적으로 이 파라미터는 설정되어 있지 않지만 `all`, `ddl` 또는 `mod`로 변경하여 로깅하려는 SQL 문 유형을 지정할 수 있습니다. 이 파라미터에 `none` 이외의 다른 것을 지정하면 추가 단계를 수행하여 로그 파일에 암호가 노출되지 않도록 해야 합니다. 자세한 내용은 [쿼리 로깅 사용 시 암호 노출 위험 완화암호 노출 위험 완화](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk) 섹션을 참조하세요. | 
| log\$1statement\$1sample\$1rate | – | 로깅되도록 `log_min_duration_sample`에 지정된 시간을 초과하는 문의 비율로, 0.0에서 1.0 사이의 부동 소수점 값으로 표시됩니다. | 
| log\$1statement\$1stats | – | 누적 성능 통계를 서버 로그에 기록합니다. | 

## 로깅을 사용하여 성능이 느린 쿼리 찾기
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

SQL 문 및 쿼리를 로깅하여 성능이 느린 쿼리를 찾을 수 있습니다. 이 섹션에 설명된 대로 `log_statement` 및 `log_min_duration` 파라미터 설정을 수정하여 이 기능을 활성화합니다. RDS for PostgreSQL DB 인스턴스S에 대한 쿼리 로깅을 활성화하기 전에 로그에서 암호가 노출될 수 있는 사항과 위험을 완화하는 방법을 알고 있어야 합니다. 자세한 내용은 [쿼리 로깅 사용 시 암호 노출 위험 완화암호 노출 위험 완화](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk) 섹션을 참조하세요.

다음에서 `log_statement` 및 `log_min_duration` 파라미터에 대한 참조 정보를 확인할 수 있습니다.log\$1statement

이 파라미터는 로그에 전송해야 하는 SQL 문의 유형을 지정합니다. 기본값은 `none`입니다. 이 파라미터를 `all`, `ddl` 또는 `mod`로 변경할 경우 로그에 암호가 노출될 위험을 줄이려면 권장 조치를 취해야 합니다. 자세한 내용은 [쿼리 로깅 사용 시 암호 노출 위험 완화암호 노출 위험 완화](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk) 섹션을 참조하세요.

**모두**  
모든 문을 로깅합니다. 이 설정은 디버깅 용도로 사용하는 것이 좋습니다.

**ddl**  
모든 데이터 정의 언어(DDL) 문(CREATE, ALTER, DROP 등)을 로깅합니다.

**mod**  
NSERT, UPDATE, DELETE 등 데이터를 수정하는 모든 DDL 문과 데이터 조작 언어(DML) 문을 로깅합니다.

**없음**  
SQL 문이 로깅되지 않습니다. 로그에서 암호가 노출될 위험을 피하려면 이 설정을 사용하는 것이 좋습니다.log\$1min\$1duration\$1statement

지정된 시간 이상 실행되는 모든 SQL 문은 로깅됩니다. 이 파라미터는 기본적으로 설정되어 있지 않습니다. 이 파라미터를 활성화하면 최적화되지 않은 쿼리를 찾는 데 도움이 될 수 있습니다.

**–1–2147483647**  
문이 로깅되는 런타임의 밀리초(ms) 수입니다.

**쿼리 로깅 설정**

이 단계에서는 RDS for PostgreSQL DB 인스턴스가 사용자 지정 DB 파라미터 그룹을 사용한다고 가정합니다.

1. `log_statement` 파라미터를 `all`로 설정합니다. 다음 예에서는 이 파라미터가 설정에서 `postgresql.log`에 기록되는 정보를 보여줍니다.

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. `log_min_duration_statement` 파라미터를 설정합니다. 다음 예제에서는 이 파라미터가 `postgresql.log`로 설정되어 있을 때 `1` 파일에 기록되는 정보를 보여줍니다.

   `log_min_duration_statement` 파라미터에 지정된 기간을 초과하는 쿼리가 로깅됩니다. 다음은 그 한 예입니다. Amazon RDS 콘솔에서 RDS for PostgreSQL DB 인스턴스에 대한 로그 파일을 볼 수 있습니다.

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### 쿼리 로깅 사용 시 암호 노출 위험 완화
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

암호가 노출되지 않도록 `log_statement`를 `none`으로 설정하는 것이 좋습니다. `log_statement`를 `all`, `ddl`, 또는 `mod`로 설정하는 경우 다음 단계 중 하나 이상을 수행하는 것이 좋습니다.
+ 클라이언트의 경우 민감한 정보를 암호화합니다. 자세한 내용은 PostgreSQL 설명서의 [암호화 옵션에 관한 문서](https://www.postgresql.org/docs/current/encryption-options.html)를 참조하세요. `CREATE` 및 `ALTER` 문의 `ENCRYPTED`(및 `UNENCRYPTED`) 옵션을 사용합니다. 자세한 내용은 PostgreSQL 설명서에서 [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html)를 참조하세요.
+ RDS for PostgreSQL DB 인스턴스의 경우 PostgreSQL Auditing(pgAudit) 확장을 설정하고 사용합니다. 이 확장은 로그로 전송된 CREATE 및 ALTER 문에서 민감한 정보를 삭제합니다. 자세한 내용은 [pgAudit를 사용하여 데이터베이스 활동 로깅](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md) 섹션을 참조하세요.
+ CloudWatch 로그에 대한 액세스를 제한합니다.
+ IAM 등의 보다 강력한 인증 메커니즘을 사용합니다.

## Amazon CloudWatch Logs에 PostgreSQL 로그 게시
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs"></a>

매우 내구력 있는 스토리지에 PostgreSQL 로그 레코드를 저장하려면 Amazon CloudWatch Logs를 사용하면 됩니다. CloudWatch Logs를 사용하면 로그 데이터에 대한 실시간 분석을 수행하고 CloudWatch를 통해 지표를 보고 경보를 생성할 수도 있습니다. 예를 들어, `log_statement`를 `ddl`로 설정하면 DDL 문이 실행될 때마다 경고하도록 경보를 설정할 수 있습니다. RDS for PostgreSQL DB 인스턴스를 생성하는 동안 PostgreSQL 로그가 CloudWatch Logs에 업로드되도록 선택할 수 있습니다. 이때 로그를 업로드하지 않도록 선택한 경우 나중에 인스턴스를 수정하여 해당 시점부터 로그 업로드를 시작하도록 할 수 있습니다. 즉, 기존 로그는 업로드되지 않습니다. 수정된 RDS for PostgreSQL DB 인스턴스에 생성된 새 로그만 업로드됩니다.

현재 사용 가능한 모든 RDS for PostgreSQL 버전에서는 CloudWatch Logs에 로그 파일 게시를 지원합니다. 자세한 내용은 Amazon RDS for PostgreSQL 릴리스 정보에서 [Amazon RDS for PostgreSQL 업데이트 내용](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html)을 참조하세요.**

CloudWatch Logs로 작업하려면 로그 그룹에 로그 데이터를 게시하도록 RDS for PostgreSQL DB 인스턴스를 구성하십시오.

RDS for PostgreSQL용 CloudWatch Logs에 다음 로그 유형을 게시할 수 있습니다.
+ PostgreSQL 로그
+ 업그레이드 로그 
+ IAM 데이터베이스 인증 오류 로그

구성을 완료하고 나면 Amazon RDS에서 CloudWatch 로그 그룹 내 로그 스트림에 로그 이벤트를 게시합니다. 예를 들면 PostgreSQL 로그 데이터가 로그 그룹 `/aws/rds/instance/my_instance/postgresql` 안에 저장됩니다. 로그를 보려면 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

### 콘솔
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**콘솔을 사용하여 PostgreSQL 로그를 CloudWatch Logs에 게시하려면**

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

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

1. 수정할 DB 인스턴스를 선택한 다음 **수정**을 선택합니다.

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

   **로그 내보내기** 섹션은 CloudWatch Logs에 게시하는 기능을 지원하는 PostgreSQL 버전에서만 제공됩니다.

1. [**Continue**]를 선택한 후, 요약 페이지에서 [**Modify DB Instance**]를 선택합니다.

### AWS CLI
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

AWS CLI를 통해 PostgreSQL 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출할 수 있습니다.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**참고**  
`--cloudwatch-logs-export-configuration` 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `--apply-immediately` 및 `--no-apply-immediately` 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 CLI 명령을 호출하여 PostgreSQL 로그를 게시할 수도 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

다음 옵션으로 CLI 명령 중 하나를 실행합니다.
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

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

**Example 로그를 CloudWatch Logs에 게시하도록 인스턴스 수정**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 PostgreSQL DB 인스턴스를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체에 대한 키는 `EnableLogTypes`이며, 해당 값은 `postgresql` 및 `upgrade`의 조합을 사용하는 문자열의 배열입니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
Windows의 경우:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example 로그를 CloudWatch Logs에 게시하도록 인스턴스 생성**  
다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 PostgreSQL DB 인스턴스를 생성합니다. `--enable-cloudwatch-logs-exports` 값은 문자열의 JSON 배열입니다. 문자열은 `postgresql` 및 `upgrade`의 조합일 수 있습니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class db.m4.large \
5.     --engine postgres
```
Windows의 경우:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine postgres
```

### RDS API
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

RDS API를 사용하여 PostgreSQL 로그를 게시할 수 있습니다. 다음 파라미터로 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출할 수 있습니다.
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**참고**  
`CloudwatchLogsExportConfiguration` 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 `ApplyImmediately` 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출해 PostgreSQL 로그를 게시할 수 있습니다.
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

실행하는 작업에 따라 다른 파라미터가 필요할 수 있습니다.

 