

# Amazon RDS for SQL Server의 tempdb 데이터베이스에 대한 인스턴스 스토어 지원
<a name="SQLServer.InstanceStore"></a>

*인스턴스 스토어*는 DB 인스턴스에 블록 수준의 임시 스토리지를 제공합니다. 스토리지는 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치합니다. 이러한 디스크에는 SSD(솔리드 스테이트 드라이브)를 기반으로 하는 NVMe(Non-Volatile Memory Express) 인스턴스 스토리지가 있습니다. 이 스토리지는 짧은 지연 시간, 매우 높은 임의 I/O 성능, 높은 순차 읽기 처리량에 최적화되어 있습니다.

인스턴스 스토어에 `tempdb` 데이터 파일과 `tempdb` 로그 파일을 배치하면 Amazon EBS를 기반으로 하는 표준 스토리지에 비해 읽기 및 쓰기 지연 시간을 줄일 수 있습니다.

**참고**  
SQL Server 데이터베이스 파일 및 데이터베이스 로그 파일은 인스턴스 스토어에 저장되지 않습니다.

## 인스턴스 스토어 활성화
<a name="SQLServer.InstanceStore.Enable"></a>

RDS가 다음 인스턴스 클래스 중 하나로 DB 인스턴스를 프로비저닝하면 `tempdb` 데이터베이스가 인스턴스 스토어에 자동으로 배치됩니다.
+ db.m5d
+ db.r5d
+ db.x2iedn

인스턴스 스토어를 활성화하려면 다음 중 하나를 수행합니다.
+ 이러한 인스턴스 유형 중 하나를 사용하여 SQL Server DB 인스턴스를 생성합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 기존 SQL Server DB 인스턴스 중 하나를 사용할 수 있도록 수정합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

인스턴스 스토어는 이러한 인스턴스 유형 중 하나 이상이 지원되는 모든 AWS 리전에서 사용 가능합니다. `db.m5d` 및 `db.r5d` 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요. Amazon RDS for SQL Server에서 지원하는 인스턴스 클래스에 대한 자세한 내용은 [Microsoft SQL Server를 위한 DB 인스턴스 클래스 지원](SQLServer.Concepts.General.InstanceClasses.md) 단원을 참조하세요.

## 파일 위치와 크기 고려 사항
<a name="SQLServer.InstanceStore.Files"></a>

인스턴스 스토어가 없는 인스턴스에서는 RDS가 `tempdb` 데이터 및 로그 파일을 `D:\rdsdbdata\DATA` 디렉터리에 저장합니다. 두 파일은 기본적으로 8MB에서 시작합니다.

인스턴스 스토어가 있는 인스턴스에서는 RDS가 `tempdb` 데이터 및 로그 파일을 `T:\rdsdbdata\DATA` 디렉터리에 저장합니다.

`tempdb`에는 하나의 데이터 파일(`tempdb.mdf`)과 하나의 로그 파일(`templog.ldf`)만 있지만, `templog.ldf`는 기본적으로 8MB에서 시작하며, `tempdb.mdf`는 인스턴스 스토리지 용량의 80% 이상에서 시작합니다. 스토리지 용량의 20% 또는 200GB 중 더 적은 용량에서 자유롭게 시작할 수 있습니다. 여러 `tempdb` 데이터 파일은 80% 디스크 공간을 균등하게 분할하지만 로그 파일은 항상 초기 크기가 8MB입니다.

예를 들어 DB 인스턴스 클래스를 `db.m5.2xlarge`에서 `db.m5d.2xlarge`로 수정하면 `tempdb` 데이터 파일 크기가 각각 8MB에서 총 234GB로 늘어납니다.

**참고**  
인스턴스 스토어(`tempdb`)의 `T:\rdsdbdata\DATA` 데이터 및 로그 파일 외에, 데이터 볼륨(`tempdb`)에도 `D:\rdsdbdata\DATA` 데이터 및 로그 파일을 추가로 생성할 수 있습니다. 해당 파일의 초기 크기는 항상 8MB입니다.

## 백업 고려 사항
<a name="SQLServer.InstanceStore.Backups"></a>

오랫동안 백업을 보존해야 할 수 있으므로 시간이 지나면서 비용이 발생합니다. `tempdb` 데이터와 로그 블록은 워크로드에 따라 매우 자주 변경될 수 있습니다. 이렇게 하면 DB 스냅샷 크기가 크게 증가할 수 있습니다.

`tempdb`이(가) 인스턴스 스토어에 있는 경우 스냅샷에 임시 파일이 포함되지 않습니다. 즉, EBS 전용 스토리지에 비해 스냅샷 크기가 더 작고 더 적은 여유 백업 할당량을 사용합니다.

## 디스크 가득 참 오류
<a name="SQLServer.InstanceStore.DiskFull"></a>

인스턴스 스토어에서 사용 가능한 공간을 모두 사용하면 다음과 같은 오류가 발생할 수 있습니다.
+  데이터베이스 'tempdb'에 대한 트랜잭션 로그가 'ACTIVE\$1TRANSACTION' 때문에 가득 찼습니다.  
+ PRIMARY' 파일 그룹이 가득 찼기 때문에 데이터베이스 'tempdb'에 있는 객체 'dbo.SORT 임시 실행 스토리지: 140738941419520’에 대한 공간을 할당할 수 없습니다. 불필요한 파일을 삭제하거나, 파일 그룹에서 객체를 삭제하거나, 파일 그룹에 파일을 추가하거나, 파일 그룹의 기존 파일에 대해 자동 증가를 설정하여 디스크 공간을 생성합니다.

인스턴스 스토어가 가득 차면 다음 중 하나 이상을 수행할 수 있습니다.
+ 워크로드 또는 `tempdb` 사용 방식을 조정합니다.
+ DB 인스턴스 클래스를 더 많은 NVMe 스토리지와 함께 사용하도록 확장합니다.
+ 인스턴스 스토어 사용을 중지하고, EBS 스토리지만 있는 인스턴스 클래스를 사용합니다.
+ EBS 볼륨에서 `tempdb`에 대한 보조 데이터 또는 로그 파일을 추가하여 혼합 모드를 사용합니다.

## 인스턴스 스토어 제거
<a name="SQLServer.InstanceStore.Disable"></a>

인스턴스 스토어를 제거하려면 db.m5, db.r5 또는 db.x1e등 인스턴스 스토어를 지원하지 않는 인스턴스 유형을 사용하도록 SQL Server DB 인스턴스를 수정합니다.

**참고**  
인스턴스 스토어를 제거하면 임시 파일이 `D:\rdsdbdata\DATA` 디렉터리로 이동되고 크기가 8MB로 줄어듭니다.