SQL Server 백업 전략 최적화
개요
많은 조직이 목표 복구 시점(RPO), 마지막 백업 이후 허용 가능한 최대 시간, 목표 복구 시간(RTO), 서비스 중단 및 서비스 복원 사이 허용 가능한 최대 지연 시간에 대한 현재 요구 사항을 충족하기 위해 Amazo EC2 기반 SQL Server에서 데이터를 보호하는 올바른 솔루션을 찾고 있습니다. EC2 기반 SQL Server 인스턴스를 실행하는 경우 데이터 백업을 생성하고 복원하는 여러 옵션이 있습니다. SQL Server on Amazon EC2의 데이터를 보호하기 위한 백업 전략에는 다음이 포함됩니다.
-
Windows Volume Shadow Copy Service(VSS) 지원 Amazon Elastic Block Store(Amazon EBS)
스냅샷 또는 AWS Backup 을 사용한 서버 수준 백업 -
SQL Server에서 네이티브 백업 및 복원
을 사용한 데이터베이스 수준 백업
데이터베이스 수준의 네이티브 백업에 대해 다음과 같은 스토리지 옵션이 있습니다.
-
Amazon EBS 볼륨을 사용한 로컬 백업
-
Amazon FSx for Windows File Server 또는 Amazon FSx for NetApp ONTAP을 사용한 네트워크 파일 시스템 백업
-
AWS Storage Gateway를 사용한 Amazon Simple Storage Service(Amazon S3)로 네트워크 백업
-
Amazon S3 for SQL Server 2022로 직접 백업
이 섹션에서는 다음을 수행합니다.
-
스토리지 공간을 절약하는 데 도움이 되는 주요 기능 강조
-
다양한 백엔드 스토리지 옵션 간 비용 비교
-
이러한 권장 사항을 구현하는 데 도움이 되는 심층 설명서 링크 제공
VSS 지원 EBS 스냅샷을 사용한 서버 수준 백업
VSS 지원 스냅샷 아키텍처는 AWS Systems Manager Run Command를 사용하여 SQL Server 인스턴스에 VSS 에이전트를 설치합니다. 또한 Run Command를 사용하여 운영 체제 및 애플리케이션 버퍼를 디스크에 플러시하고, I/O 작업을 일시 중지하고, EBS 볼륨의 특정 시점 스냅샷을 생성한 다음, I/O를 재개하는 전체 워크플로를 간접적으로 호출할 수 있습니다.
이 Run Command는 대상 인스턴스에 연결된 모든 EBS 볼륨의 자동 스냅샷을 생성합니다. 사용자 데이터베이스 파일은 일반적으로 다른 볼륨에 저장되므로 루트 볼륨을 제외하는 옵션도 있습니다. 여러 EBS 볼륨을 스트라이핑하여 SQL Server 파일용 단일 파일 시스템을 생성하는 경우 Amazon EBS는 단일 API 명령을 사용하여 중단 일관성 다중 볼륨 스냅샷도 지원합니다. 애플리케이션 일치 VSS 지원 EBS 스냅샷
다음 다이어그램에서는 VSS 지원 스냅샷을 사용한 서버 수준 백업을 위한 아키텍처를 보여줍니다.
VSS 지원 스냅샷을 사용할 경우 다음과 같은 이점을 고려합니다.
-
DB 인스턴스의 첫 번째 스냅샷에는 전체 DB 인스턴스에 대한 데이터가 포함됩니다. 동일한 DB 인스턴스의 후속 스냅샷은 증분식이며, 마지막 스냅샷 이후 변경된 데이터만 저장됩니다.
-
EBS 스냅샷은 특정 시점 복구를 제공합니다.
-
스냅샷에서 새 SQL Server EC2 인스턴스로 복원할 수 있습니다.
-
Amazon EBS를 사용하여 인스턴스를 암호화하거나 TDE를 사용하여 인스턴스에서 데이터베이스를 암호화한 경우 해당 인스턴스나 데이터베이스는 동일한 암호화로 자동 복원됩니다.
-
자동화된 크로스 리전 백업을 복사할 수 있습니다.
-
스냅샷에서 EBS 볼륨을 복원하면 애플리케이션에서 해당 EBS 볼륨에 즉시 액세스할 수 있습니다. 즉, 스냅샷에서 하나 이상의 기본 EBS 볼륨을 복원한 후 SQL Server를 즉시 온라인 상태로 전환할 수 있습니다.
-
기본적으로 복원된 볼륨은 애플리케이션이 처음 읽기를 시도할 때 Amazon S3에서 기본 블록을 가져옵니다. 이는 스냅샷에서 EBS 볼륨이 복원된 후 성능이 지연될 수 있음을 의미합니다. 볼륨은 결국 공칭 성능을 따라잡습니다. 그러나 빠른 스냅샷 복원(FSR) 스냅샷을 사용하면 이러한 지연을 방지할 수 있습니다.
-
EBS 스냅샷에 수명 주기 관리
를 사용할 수 있습니다.
VSS 지원 스냅샷을 사용할 경우 다음과 같은 제한 사항을 고려합니다.
-
SQL Server 인스턴스의 암호화된 스냅샷으로는 교차 리전 특정 시점 복구를 수행할 수 없습니다.
-
암호화되지 않은 인스턴스의 암호화된 스냅샷은 생성할 수 없습니다.
-
스냅샷은 EBS 볼륨 수준에서 만들어지므로 개별 데이터베이스를 복원할 수 없습니다.
-
인스턴스 자체를 복원할 수 없습니다.
-
DB 인스턴스의 스냅샷은 DB 인스턴스와 동일한 AWS Key Management Service(AWS KMS) 키를 사용하여 암호화해야 합니다.
-
스냅샷 백업 프로세스 중에는 스토리지 I/O가 1초 미만(약 10밀리초) 동안 일시 중지됩니다.
AWS Backup을 사용한 SQL Server 백업
AWS Backup
다음 다이어그램에서는 AWS Backup을 사용하는 EC2 기반 SQL Server에 대한 백업 및 복원 솔루션 아키텍처를 보여줍니다.
AWS Backup을 사용하여 SQL Server를 백업할 경우 다음과 같은 이점을 고려합니다.
-
백업 일정, 보존 관리 및 수명 주기 관리를 자동화할 수 있습니다.
-
여러 계정과 AWS 리전에 걸쳐 조직 전체의 백업 전략을 중앙 집중화할 수 있습니다.
-
AWS 서비스에서 백업 활동과 알림 모니터링을 중앙 집중화할 수 있습니다.
-
재해 복구 계획을 위해 크로스 리전 백업을 구현할 수 있습니다.
-
크로스 계정 백업을 지원합니다.
-
보조 백업 암호화로 보안 백업을 수행할 수 있습니다.
-
모든 백업이 AWS KMS 암호화 키를 사용한 암호화를 지원합니다.
-
이 솔루션은 TDE와 함께 작동합니다.
-
AWS Backup 콘솔에서 특정 복구 지점으로 복원할 수 있습니다.
-
모든 SQL Server 데이터베이스를 포함하는 전체 SQL Server 인스턴스를 백업할 수 있습니다.
데이터베이스 수준 백업
이러한 접근 방식은 네이티브 Microsoft SQL Server 백업 기능을 사용합니다. SQL Server 인스턴스에서 개별 데이터베이스를 백업하고 복원할 수 있습니다.
네이티브 SQL Server 백업 및 복원에 대한 이러한 각 옵션은 다음과 같은 기능도 지원합니다.
-
압축 및 다중 파일 백업
-
전체, 차등 및 T-로그 백업
-
TDE 암호화 데이터베이스
Amazon S3로 SQL Server 네이티브 백업 및 복원
Amazon EC2 기반 SQL Server는 SQL Server 데이터베이스에 대한 네이티브 백업 및 복원을 지원합니다. SQL Server 데이터베이스를 백업한 다음 기존 데이터베이스나 새 SQL Server EC2 인스턴스, Amazon RDS for SQL Server 또는 온프레미스 서버로 백업 파일을 복원할 수 있습니다.
Storage Gateway는 온프레미스 애플리케이션에 사실상 무제한의 클라우드 스토리지에 대한 액세스를 제공하는 하이브리드 클라우드 스토리지 서비스입니다. Storage Gateway를 사용하면 Microsoft SQL Server 데이터베이스를 Amazon S3에 직접 백업하여 온프레미스 스토리지 공간을 줄이고 Amazon S3를 사용하여 내구성, 확장성, 비용 효율성이 뛰어난 스토리지를 사용할 수 있습니다.
다음 다이어그램에서는 Store Gateway 및 Amazon S3를 사용하는 네이티브 백업 및 복원 솔루션의 아키텍처를 보여줍니다.
Store Gateway를 통한 네이티브 SQL Server 백업을 사용할 경우 다음과 같은 이점을 고려합니다.
-
스토리지 게이트웨이를 EC2 인스턴스의 서버 메시지 블록(SMB) 파일 공유로 매핑하고 백업을 Amazon S3로 전송할 수 있습니다.
-
백업은 S3 버킷에 직접 또는 Storage Gateway 파일 캐시를 통해 수행됩니다.
-
다중 파일 백업이 지원됩니다.
Store Gateway를 사용한 네이티브 백업에서 다음과 같은 제한 사항을 고려합니다.
-
각 개별 데이터베이스에 대해 백업 및 복원을 설정해야 합니다.
-
백업 파일에 대한 Amazon S3 수명 주기 정책을 관리해야 합니다.
Store Gateway를 설정하는 방법에 대한 자세한 내용은 AWS 블로그의 Store SQL Server backups in Amazon S3 using AWS Storage Gateway
EBS 볼륨에 대한 SQL Server 네이티브 백업
SQL Server 데이터베이스의 네이티브 백업을 수행하고 해당 파일을 Amazon EBS 볼륨에 저장할 수 있습니다. Amazon EBS는 고성능 블록 스토리지 서비스입니다. EBS 볼륨은 암호화를 지원하는 탄력적 요소입니다. EC2 인스턴스에 연결하고 분리할 수 있습니다. 동일한 EBS 볼륨 유형이나 다른 EBS 볼륨 유형에 EC2 인스턴스의 SQL Server를 백업할 수 있습니다. 다른 EBS 볼륨에 백업할 때의 이점 중 하나는 비용 절감입니다.
다음 다이어그램에서는 EBS 볼륨에 네이티브 백업의 아키텍처를 보여줍니다.
EBS 볼륨으로의 SQL Server 네이티브 백업을 사용하는 경우 다음과 같은 이점을 고려합니다.
-
SQL Server EC2 인스턴스에서 개별 데이터베이스의 백업을 수행하고 전체 인스턴스를 복원하는 대신 개별 데이터베이스를 복원할 수 있습니다.
-
다중 파일 백업이 지원됩니다.
-
SQL Server 에이전트와 SQL Server 작업 엔진을 사용하여 백업 작업을 예약할 수 있습니다.
-
하드웨어 선택을 통해 성능상의 이점을 얻을 수 있습니다. 예를 들어, st1 스토리지 볼륨을 사용하여 처리량을 높일 수 있습니다.
EBS 볼륨으로의 네이티브 백업을 사용하는 경우 다음과 같은 제한 사항을 고려합니다.
-
EBS 볼륨에서 Amazon S3로 백업을 수동으로 이동해야 합니다.
-
대규모 백업의 경우 EC2의 디스크 공간을 관리해야 합니다.
-
EC2 인스턴스에서는 Amazon EBS 처리량이 병목 현상을 일으킬 수 있습니다.
-
Amazon EBS에 백업을 저장하려면 추가 스토리지가 필요합니다.
Amazon FSx for Windows File Server에 SQL Server 네이티브 백업
Amazon FSx for Windows File Server
다음 다이어그램에서는 FSx for Windows File Server에 대한 기본 SQL Server 백업의 아키텍처를 보여줍니다.
FSx for Windows File Server로의 네이티브 SQL Server 백업을 사용하는 경우 다음과 같은 이점을 고려합니다.
-
Amazon FSx 파일 공유에 SQL Server 데이터베이스를 백업할 수 있습니다.
-
SQL Server 인스턴스에서 개별 데이터베이스의 백업을 수행하고 전체 인스턴스를 복원하는 대신 개별 데이터베이스를 복원할 수 있습니다.
-
여러 부분으로 구성된 백업이 지원됩니다.
-
SQL Server 에이전트와 작업 엔진을 사용하여 백업 작업을 예약할 수 있습니다.
-
인스턴스는 Amazon EBS에 비해 네트워크 대역폭이 더 높습니다.
FSx for Windows File Server로의 네이티브 SQL Server 백업을 사용하는 경우 다음과 같은 제한 사항을 고려합니다.
-
AWS Backup 또는 AWS DataSync를 사용하여 Amazon FSx에서 Amazon S3로 백업을 수동으로 이동해야 합니다.
-
대규모 백업에는 Amazon FSx의 디스크 공간 관리를 위한 추가 오버헤드가 필요할 수 있습니다.
-
EC2 인스턴스 네트워크 처리량이 병목 현상을 일으킬 수 있습니다.
-
FSx for Windows File Server에 백업을 저장하려면 추가 스토리지가 필요합니다.
Amazon FSx for NetApp ONTAP으로 SQL Server 백업
FSx for ONTAP에서의 스냅샷은 항상 장애 시 일관되지만 애플리케이션 일치 스냅샷을 생성하려면 데이터베이스를 중지하거나 데이터베이스의 I/O를 일시 중지해야 합니다. FSx for ONTAP과 함께 NetApp SnapCenter(SQL Server를 비롯한 특정 애플리케이션에 대한 플러그인이 포함된 오케스트레이션 도구)를 사용하여 추가 비용 없이 애플리케이션 일치 스냅샷을 생성하고 데이터베이스를 보호 및 복제할 수 있습니다.
NetApp SnapCenter
NetApp SnapCenter는 애플리케이션 일치 데이터 보호를 위한 통합 플랫폼입니다. SnapCenter에서는 스냅샷을 백업이라고 합니다. 이 가이드에서는 동일한 명명 규칙을 채택합니다. SnapCenter는 애플리케이션 일치 백업, 복원 및 복제를 관리하기 위한 단일 창을 제공합니다. 특정 데이터베이스 애플리케이션에 대한 SnapCenter 플러그인을 추가하여 애플리케이션 일치 백업을 생성합니다. SQL Server에 대한 SnapCenter 플러그인은 데이터 보호 워크플로를 단순화하는 다음과 같은 기능을 제공합니다.
-
전체 및 로그 백업을 위해 세분성을 지원하는 백업 및 복원 옵션
-
인플레이스 복원 및 대체 위치로 복원
SnapCenter에 대한 자세한 내용은 AWS 스토리지 블로그의 Protect your SQL Server workloads using NetApp SnapCenter with Amazon FSx for NetApp ONTAP
백업을 위한 비용 최적화
다음 옵션은 AWS에서 SQL Server 백업을 저장하는 데 드는 비용을 줄이는 데 도움이 될 수 있습니다.
-
백업 파일을 생성하는 동안 SQL Server 압축
을 활성화하고 가능한 가장 작은 파일을 스토리지로 전송합니다. 예를 들어 3:1 압축률은 디스크 공간의 약 66% 절약하고 있음을 나타냅니다. 이러한 열을 쿼리하려면 Transact-SQL 문 SELECT backup_size/compressed_backup_size FROM msdb..backupset;를 사용할 수 있습니다. -
S3 버킷으로 이동하는 백업의 경우 Amazon S3 Intelligent-Tiering
스토리지 클래스를 활성화하여 스토리지 비용을 30%만큼 절감합니다. -
FSx for Windows File Server 또는 FSx for ONTAP으로 백업하는 경우 다중 가용 영역을 사용할 때와 비교해서 50%의 비용 절감을 위해 단일 가용 영역을 사용합니다. 요금 정보는 Amazon FSx for Windows File Server 요금
및 Amazon FSx for NetApp ONTAP 요금 을 참조하세요. -
SQL Server 2022의 가장 효율적인 옵션은 Amazon S3로의 직접 백업입니다. Storage Gateway를 피하면 추가 비용을 절감할 수 있습니다.
백업에 대한 테스트 결과 벤치마크
이 섹션에서는 이 가이드에서 다루는 백업 솔루션에서 테스트한 성능 벤치마크 결과를 기반으로 샘플 1TB 데이터베이스의 비용 및 성능 관점에서 다음 옵션을 비교합니다.
-
EC2 인스턴스 사양 - Windows Server 2019 및 SQL Server 2019 Developer 에디션에서 r5d.8xlarge
-
데이터베이스 사양 - TDE가 비활성화된 상태에서 크기 1TB
테스트는 r5d.8xlarge 인스턴스와 1TB SQL Server 데이터베이스를 소스로 사용하여 수행되었습니다. 소스 시스템은 모범 사례에 따라 구성되었으며 소스 데이터베이스에는 별도의 gp3 볼륨에 분산된 데이터 파일 4개(각각 250GB)와 로그 파일 1개(50GB)가 포함되어 있습니다. SQL Server 네이티브 BACKUP 명령에는 10개의 백업 파일에 쓰는 작업이 포함되었으며, 압축을 사용하여 백업 성능을 최적화하고 네트워크를 통해 전송되어 대상에 기록되는 데이터의 양을 줄이는 작업이 포함되었습니다. 모든 테스트 사례에서 스토리지 성능에서 병목 현상이 발생했습니다.
이러한 유형의 테스트에 사용할 수 있는 구성은 거의 무궁무진합니다. 이 테스트는 성능, 비용, 확장성 및 실제 사용 사례를 최적화하는 데 중점을 두었습니다. 다음 표에는 백업 대상 옵션에 대해 캡처된 성능 지표가 나와 있습니다.
| 백업 옵션 | 수준 | 실행 기간(근사치) | 백업 속도 | 월별 비용 USD* |
|---|---|---|---|---|
| 로컬 EBS 볼륨 st1 HDD(2TB)로 네이티브 백업 | 데이터베이스 | 00:30:46(분) | 554.7Mbps | 92.16 USD |
| 로컬 EBS SSD gp3(2TB)로 네이티브 백업 | 데이터베이스 | 00:22:00(분) | 512Mbps | 193.84 USD |
| FSx for Windows File Server HDD(2TB @512Mbps 처리량)로 네이티브 백업 | 데이터베이스 | 00:20:58(분) | 814.0Mbps | 1,146 USD |
| FSx for Windows File Server SSD(2TB @512Mbps 처리량)로 네이티브 백업 | 데이터베이스 | 00:20:00(분) | 814.0Mbps | 1,326 USD |
| S3 File Gateway m6i.4xlarge(16개 vCPU, 64GB, 2TB gp3 사용)로 네이티브 백업 | 데이터베이스 | 00:23:20(분) | 731.5Mbps | 470.42 USD |
| EBS VSS 스냅샷 | EBS 볼륨 | 00:00:02(초) 00:00:53(초) |
N/A 스냅샷 | 51 USD |
| AWS Backup(AMI 백업) | AMI | 00:00:04(초) 00:08:00(분) |
N/A 스냅샷 | $75 |
| Amazon S3로 직접 네이티브 SQL Server 백업(SQL Server 2022) | 데이터베이스 | 00:12:00(분) | 731.5Mbps | 월별 첫 50TB, GB당 0.023 USD, 월별 23.55 USD |
| FSx for ONTAP으로 네이티브 백업(SnapCenter 사용) | 데이터베이스 | – | – | 440.20 USD |
이전 표에서는 다음을 가정합니다.
-
데이터 전송 및 Amazon S3 비용은 포함되지 않습니다.
-
스토리지 요금은 인스턴스 요금에 포함됩니다.
-
비용은
us-east-1리전을 기준으로 합니다. -
처리량과 IOPS는 여러 백업에서 10%씩 증가하며, 한 달 동안 전체 변화율은 10%입니다.
테스트 결과에 따르면 가장 빠른 옵션은 FSx for Windows File Server로의 네이티브 SQL Server 데이터베이스 백업입니다. Storage Gateway 및 로컬로 연결된 EBS 볼륨으로의 백업은 더 비용 효율적인 옵션이지만 성능이 더 느립니다. 서버 수준 백업(AMI)의 경우 최적의 성능, 비용 및 관리 효율성을 위해 AWS Backup을 사용하는 것이 좋습니다.
비용 최적화 권장 사항
Amazon EC2 기반 SQL Server를 백업하는 데 사용할 수 있는 솔루션을 이해하는 것은 데이터를 안전하게 보호하고 백업 요구 사항을 충족하는 것은 물론 중요한 이벤트로부터 복구를 계획하는 데 중요합니다. 이 섹션에서 살펴보는 SQL Server 인스턴스 및 데이터베이스를 백업하고 복원하는 다양한 방법은 데이터를 보호하고 조직의 요구 사항을 충족하는 백업 및 복원 전략을 설계하는 데 도움이 될 수 있습니다.
이 섹션에서는 다음 백업 옵션을 다룹니다.
-
압축
-
Amazon S3 Intelligent Tiering
-
단일 가용 영역
-
URL로 백업
이러한 각 옵션에 대해 제공되는 지침은 개략적인 수준입니다. 조직에서 이러한 권장 사항을 구현하려면 계정 팀에 문의하는 것이 좋습니다. 그런 다음 팀에서 Microsoft 전문가 SA와 협력하여 대화를 주도할 수 있습니다. optimize-microsoft@amazon.com으로 이메일을 보내 문의할 수도 있습니다.
요약하면 다음을 권장합니다.
-
SQL Server 2022를 사용하는 경우 Amazon S3로 백업하는 것이 가장 비용 효율적인 옵션입니다.
-
SQL Server 2019 및 이전 SQL Server 에디션을 사용하는 경우 가장 비용 효율적인 옵션으로 Amazon S3에서 지원하는 Storage Gateway에 백업하는 방법을 고려합니다.
압축
압축의 목표는 각 백업에서 소비하는 스토리지를 줄이는 것입니다. 이는 다양한 스토리지 옵션에 유용합니다. SQL Server 인스턴스
BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION
(ALGORITHM = QAT_DEFLATE)
Amazon S3 Intelligent Tiering
Amazon S3 버킷으로 이동하는 백업의 경우 Amazon S3 Intelligent-Tiering
다음 다이어그램에서는 S3 Intelligent-Tiering에 기반한 솔루션의 아키텍처를 보여줍니다.
기본적으로 S3 버킷에 작성된 백업 파일은 Standard 티어를 사용합니다. 백업 파일을 Standard 티어에서 S3 Intelligent-Tiering으로 변환하려면 수명 주기 규칙을 생성해야 합니다. AWS Management 콘솔을 사용하여 S3 Intelligent-Tiering을 활성화할 수도 있습니다. 자세한 내용은 AWS 설명서의 Amazon S3 Intelligent-Tiering 사용 시작하기
단일 가용 영역
단일 가용 영역 파일 시스템을 생성하려면 FSx for Windows File Server 파일 시스템을 생성할 때 단일 AZ 옵션을 선택합니다. 또한 Amazon FSx는 Windows Volume Shadow Copy Service를 사용하여 파일 시스템의 내구성이 뛰어난 백업(Amazon S3에 저장됨)을 매일 수행하며 언제든지 추가 백업을 수행할 수 있습니다. 단일 가용 영역 사용과 관련된 몇 가지 문제에 유의하세요. 예를 들어 파일 시스템이 프로비저닝되는 영향을 받는 가용 영역이 한 번에 몇 시간 동안 중단되면 SMB 파일 공유에 액세스할 수 없습니다. 데이터에 액세스해야 하는 경우 소스 리전 내 사용 가능한 가용 영역에 있는 백업에서 복원해야 합니다. 자세한 내용은 이 가이드의 단일 가용 영역 사용 섹션을 참조하세요.
URL로 백업
SQL Server 2022의 경우 URL로 백업
추가 리소스
-
Amazon EC2 기반 SQL Server에 대한 백업 및 복원 옵션(AWS 권장 가이드)
-
Point-in-time recovery and continuous backup for Amazon RDS with AWS Backup
(AWS 스토리지 블로그) -
Protect your SQL Server workloads using NetApp SnapCenter with Amazon FSx for NetApp ONTAP
(AWS 스토리지 블로그) -
Amazon S3 Intelligent-Tiering 사용 시작하기
(AWS 시작하기 리소스 센터) -
Backup and Restore Strategies for Amazon RDS for SQL Server
(AWS 데이터베이스 블로그) -
온프레미스 Microsoft SQL Server 데이터베이스를 Amazon EC2로 마이그레이션(AWS 권장 가이드)
-
Best Practices for Deploying Microsoft SQL Server on Amazon EC2(AWS 백서)