Amazon RDS for SQL Server의 tempdb 데이터베이스 인스턴스 스토어 지원

Amazon RDS for SQL Server의 tempdb 데이터베이스 인스턴스 스토어 지원

임시 데이터베이스인 tempdb는 입출력이 매우 잦아요. RDS for SQL Server에서 tempdb의 데이터 파일과 로그 파일을 인스턴스 스토어에 두면 EBS보다 더 낮은 지연 시간을 얻을 수 있어요. 이 페이지에서 인스턴스 스토어 활성화부터 파일 위치, 백업, 디스크 가득 참 문제까지 정리해 둘게요.

출처: 문서

본문

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

tempdb 데이터 파일과 tempdb 로그 파일을 인스턴스 스토어에 두면 Amazon EBS 기반의 표준 스토리지보다 읽기·쓰기 지연 시간을 더 낮출 수 있습니다.

참고: SQL Server 데이터베이스 파일과 데이터베이스 로그 파일은 인스턴스 스토어에 배치되지 않아요.

인스턴스 스토어 활성화

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

  • db.m5d
  • db.r5d
  • db.x2iedn
  • db.x2m

인스턴스 스토어를 활성화하려면 다음 중 하나를 수행하세요.

  • 이 인스턴스 유형 중 하나로 SQL Server DB 인스턴스를 만들거나, 자세한 내용은 "Amazon RDS DB 인스턴스 생성"을 참고하세요.
  • 기존 SQL Server DB 인스턴스를 이 유형 중 하나로 수정하거나, 자세한 내용은 "Amazon RDS DB 인스턴스 수정"을 참고하세요.

인스턴스 스토어는 이 인스턴스 유형 중 하나 이상이 지원되는 모든 AWS 리전에서 사용할 수 있어요. db.m5d, db.r5d, db.x2iedn, db.x2m 인스턴스 클래스에 대한 자세한 내용은 "DB 인스턴스 클래스"를, Amazon RDS for SQL Server에서 지원하는 인스턴스 클래스는 "Microsoft SQL Server용 DB 인스턴스 클래스 지원"을 참고하세요.

파일 위치 및 크기 고려 사항

  • 인스턴스 스토어가 없는 인스턴스에서 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로 늘어납니다.

참고: 인스턴스 스토어(T:\rdsdbdata\DATA)의 tempdb 데이터·로그 파일 외에도 데이터 볼륨(D:\rdsdbdata\DATA)에 추가 tempdb 데이터·로그 파일을 만들 수 있어요. 이 파일들은 항상 8MB의 초기 크기를 가집니다.

백업 고려 사항

백업을 오래 보관해야 하는 경우 시간이 지나면서 비용이 발생할 수 있어요. 워크로드에 따라 tempdb 데이터·로그 블록이 매우 자주 변경될 수 있고, 이로 인해 DB 스냅샷 크기가 크게 늘어날 수 있습니다.

tempdb가 인스턴스 스토어에 있을 때 스냅샷에는 임시 파일이 포함되지 않아요. 따라서 EBS 전용 스토리지에 비해 스냅샷 크기가 더 작고, 무료 백업 할당량도 덜 소비합니다.

디스크 가득 참 오류

인스턴스 스토어의 사용 가능한 공간을 모두 사용하면 다음과 같은 오류가 발생할 수 있어요.

The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'.
Could not allocate space for object 'dbo.SORT temporary run storage: 140738941419520' in database 'tempdb'
because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the
filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the
filegroup.

인스턴스 스토어가 가득 찼을 때 다음 중 하나 이상을 수행할 수 있어요.

  • 워크로드 또는 tempdb 사용 방식을 조정합니다.
  • NVMe 스토리지가 더 많은 DB 인스턴스 클래스로 스케일 업합니다.
  • 인스턴스 스토어 사용을 중단하고 EBS 스토리지만 있는 인스턴스 클래스를 사용합니다.
  • EBS 볼륨에 tempdb용 보조 데이터·로그 파일을 추가하는 혼합 모드를 사용합니다.

인스턴스 스토어 제거하기

인스턴스 스토어를 제거하려면 SQL Server DB 인스턴스를 인스턴스 스토어를 지원하지 않는 인스턴스 유형(예: db.m5, db.r5, db.x1e)으로 수정하세요.

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

더 알아보기 (Learn more)