

# 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 코드에서 큰 따옴표(")를 이스케이프해야 합니다.