SQL Server 데이터베이스 현대화
개요
확장성, 성능 및 비용 최적화를 위해 레거시 데이터베이스를 현대화하는 여정을 시작하는 경우 SQL Server와 같은 상용 데이터베이스와 관련된 과제에 직면할 수 있습니다. 상용 데이터베이스는 비용이 많이 들고 고객을 종속시키며 징벌적 라이선스 조건을 제공합니다. 이 섹션에서는 SQL Server에서 오픈 소스 데이터베이스로 마이그레이션 및 현대화하는 옵션과 워크로드에 가장 적합한 옵션을 선택하는 방법에 대한 간략한 개요를 제공합니다.
SQL Server 데이터베이스를 Amazon Aurora PostgreSQL과 같은 오픈 소스 데이터베이스로 리팩터링하여 Windows 및 SQL Server 라이선스 비용을 절감할 수 있습니다. Aurora와 같은 클라우드 네이티브 최신 데이터베이스는 오픈 소스 데이터베이스의 유연성과 저렴한 비용을 상용 데이터베이스의 강력한 엔터프라이즈급 기능과 병합합니다. 가변 워크로드 또는 다중 테넌트 워크로드가 있는 경우 Aurora Serverless V2로 마이그레이션할 수도 있습니다. 그러면 워크로드 특성에 따라 비용을 90%까지 줄일 수 있습니다. 또한 AWS는 Babelfish for Aurora PostgreSQL
데이터베이스 오퍼링
Windows 기반 SQL Server에서 Amazon Aurora, Amazon RDS for MySQL 또는 Amazon RDS for PostgreSQL과 같은 오픈 소스 데이터베이스로 마이그레이션하면 성능이나 기능을 손상시키지 않고도 상당한 비용 절감 효과를 얻을 수 있습니다. 다음을 고려하세요.
-
Amazon EC2 기반 SQL Server Enterprise 에디션에서 Amazon RDS for PostgreSQL 또는 Amazon RDS for MySQL로 전환하면 비용을 최대 80% 절감할 수 있습니다.
-
Amazon EC2 기반 SQL Server Enterprise 에디션에서 Amazon Aurora PostgreSQL 호환 버전 또는 Amazon Aurora MySQL 호환 버전으로 전환하면 비용을 최대 70% 절감할 수 있습니다.
기존 데이터베이스 워크로드의 경우 Amazon RDS for PostgreSQL 및 Amazon RDS for MySQL은 요구 사항을 해결하고 관계형 데이터베이스를 위한 비용 효율적인 솔루션을 제공합니다. Aurora는 이전에 비용이 많이 드는 상용 벤더로 제한된 수많은 가용성 및 성능 기능을 추가합니다. Aurora의 복원력 기능은 추가 비용입니다. 그러나 다른 상용 벤더의 유사한 기능에 비해 Aurora의 복원력 비용은 동일한 유형의 기능에 대해 상용 소프트웨어가 부과하는 비용보다 여전히 더 저렴합니다. Aurora 아키텍처는 표준 MySQL 및 PostgreSQL 배포에 비해 성능이 크게 향상되도록 최적화되었습니다.
Aurora는 오픈 소스 PostgreSQL 및 MySQL 데이터베이스와 호환되므로 이식성의 추가 이점이 있습니다. 최상의 옵션이 Amazon RDS for PostgreSQL인지, Amazon RDS for MySQL인지 또는 Aurora인지는 비즈니스 요구 사항을 이해하고 필요한 기능을 최상의 옵션에 매핑하는 데 달려 있습니다.
Amazon RDS 및 Aurora 비교
다음 표에는 Amazon RDS와 Amazon Aurora 간 주요 차이가 요약되어 있습니다.
| 범주 | Amazon RDS for PostgreSQL 또는 Amazon RDS for MySQL | Aurora MySQL 또는 Aurora PostgreSQL |
|---|---|---|
| 성능 | 우수한 성능 | 3배 이상의 뛰어난 성능 |
| 장애 조치 | 일반적으로 60~120초* | 일반적으로 30초 |
| 확장성 | 최대 5개의 읽기 복제본 초 단위 지연 |
최대 15개의 읽기 복제본 밀리초 단위 지연 |
| 스토리지 | 최대 64TB | 최대 128TB |
| 스토리지 HA | 각각 데이터베이스 사본이 있는 1개 또는 2개의 대기를 포함하는 다중 AZ | 기본적으로 3개의 가용 영역에 있는 데이터 사본 6개 |
| 백업 | 일일 스냅샷 및 로그 백업 | Amazon S3로의 지속적 비동기식 백업 |
| Aurora를 사용한 혁신 | NA | 100GB 빠른 데이터베이스 복제 |
| 오토 스케일링 읽기 복제본 | ||
| 쿼리 계획 관리 | ||
| Aurora Serverless | ||
| 글로벌 데이터베이스를 사용하는 교차 리전 복제본 | ||
| 클러스터 캐시 관리** | ||
| 병렬 쿼리 | ||
| 데이터베이스 활동 스트림 |
*트랜잭션이 크면 장애 조치 시간이 늘어날 수 있음
**Aurora PostgreSQL에서 사용 가능
다음 표에는 이 섹션에서 다루는 여러 데이터베이스 서비스의 예상 월별 비용이 나와 있습니다.
| 데이터베이스 서비스 | 월별 비용 USD* | AWS Pricing Calculator(AWS 계정 필수) |
|---|---|---|
| Amazon RDS for SQL Server Enterprise 에디션 | 3,750 USD | Estimate |
| Amazon RDS for SQL Server Standard 에디션 | 2,318 USD | Estimate |
| Amazon EC2 기반 SQL Server Enterprise 에디션 | 2,835 USD | Estimate |
| Amazon EC2 기반 SQL Server Standard 에디션 | 1,345 USD | Estimate |
| Amazon RDS for PostgreSQL | 742 USD | Estimate |
| Amazon RDS for MySQL | 712 USD | Estimate |
| Aurora PostgreSQL | 1,032 USD | Estimate |
| Aurora MySQL | 1,031 USD | Estimate |
* 스토리지 요금은 인스턴스 요금에 포함됩니다. 비용은 us-east-1 리전을 기준으로 합니다. 처리량과 IOPS는 가정된 수치입니다. r6i.2xlarge 및 r6g.2xlarge 인스턴스에 대해 계산되었습니다.
비용 최적화 권장 사항
이기종 데이터베이스 마이그레이션에서는 일반적으로 데이터베이스 스키마를 소스에서 대상 데이터베이스 엔진으로 전환하고 데이터를 소스에서 대상 데이터베이스로 마이그레이션해야 합니다. 마이그레이션의 첫 번째 단계는 SQL Server 스키마 및 코드 객체를 평가하고 대상 데이터베이스 엔진으로 전환하는 것입니다.
AWS Schema Conversion Tool(AWS SCT)을 사용하여 Amazon RDS for MySQL 또는 Amazon RDS for PostgreSQL, Aurora MySQL 및 PostgreSQL과 같은 다양한 대상 오픈 소스 데이터베이스와의 호환성을 위해 데이터베이스를 평가할 수 있습니다. Babelfish Compass 도구를 사용하여 Babelfish for Aurora PostgreSQL과의 호환성을 평가할 수도 있습니다. 그러면 AWS SCT 및 Compass와 같은 강력한 도구에서 마이그레이션 전략을 결정하기 전에 관련된 사전 작업을 이해할 수 있습니다. 계속 진행하기로 결정하면 AWS SCT에서 스키마에 필요한 변경 사항을 자동화합니다. Babelfish Compass의 핵심 철학은 SQL 데이터베이스를 전혀 또는 거의 수정하지 않고 Aurora로 이전할 수 있도록 하는 것입니다. Compass는 기존 SQL 데이터베이스를 평가하여 이를 달성할 수 있는지 확인합니다. 이 방법을 사용하면 SQL Server에서 Aurora로 데이터를 마이그레이션하는 데 노력을 기울이기 전에 먼저 성과를 확인할 수 있습니다.
AWS SCT는 데이터베이스 스키마 및 코드를 대상 데이터베이스 엔진으로의 전환 및 마이그레이션을 자동화합니다. Babelfish for Aurora PostgreSQL을 사용하면 스키마를 전혀 또는 거의 변경하지 않고도 데이터베이스와 애플리케이션을 SQL Server에서 Aurora PostgreSQL로 마이그레이션할 수 있습니다. 그러면 마이그레이션이 가속화될 수 있습니다.
스키마를 마이그레이션한 후 AWS DMS를 사용하여 데이터를 마이그레이션할 수 있습니다. AWS DMS는 전체 데이터 로드를 수행하고 변경 사항을 복제하여 가동 중지 시간을 최소화하면서 마이그레이션을 수행할 수 있습니다.
이 섹션에서는 다음 도구를 자세히 살펴봅니다.
-
AWS Schema Conversion Tool
-
Babelfish for Aurora PostgreSQL
-
Babelfish Compass
-
AWS Database Migration Service
AWS Schema Conversion Tool
AWS SCT를 사용하여 기존 SQL Server 데이터베이스를 평가하고 Amazon RDS 또는 Aurora와의 호환성을 평가할 수 있습니다. 마이그레이션 프로세스를 단순화하기 위해 AWS SCT를 사용하여 이기종 데이터베이스 마이그레이션에서 스키마를 한 데이터베이스 엔진에서 다른 데이터베이스 엔진으로 전환할 수도 있습니다. AWS SCT를 사용하여 애플리케이션을 평가하고 C#, C++, Java 및 기타 언어로 작성된 애플리케이션에 대한 임베디드 애플리케이션 코드를 전환할 수 있습니다. 자세한 내용은 AWS SCT 설명서의 Converting application SQL using AWS SCT를 참조하세요.
AWS SCT는 많은 데이터베이스 소스를 지원하는 무료 AWS 도구입니다. AWS SCT를 사용하려면 소스 데이터베이스를 가리킨 다음 평가를 실행합니다. 그런 다음 AWS SCT
다음 표에는 데이터베이스를 다른 대상 플랫폼으로 변경하는 작업과 관련된 복잡성을 보여주기 위해 AWS SCT에서 생성된 실행 요약에 대한 예제가 나와 있습니다.
대상 플랫폼 |
자동 또는 최소 변경 사항 |
복잡한 작업 |
|||||
스토리지 객체 |
코드 객체 |
변환 작업 |
스토리지 객체 |
코드 객체 |
|||
Amazon RDS for MySQL |
60(98%) |
8(35%) |
42 |
1(2%) |
1 |
15(65%) |
56 |
Amazon Aurora MySQL 호환 버전 |
60(98%) |
8(35%) |
42 |
1(2%) |
1 |
15(65%) |
56 |
Amazon RDS for PostgreSQL |
60(98%) |
12(52%) |
54 |
1(2%) |
1 |
11(48%) |
26 |
Amazon Aurora PostgreSQL 호환 에디션 |
60(98%) |
12(52%) |
54 |
1(2%) |
1 |
11(48%) |
26 |
Amazon RDS for MariaDB |
60(98%) |
7(30%) |
42 |
1(2%) |
1 |
16(70%) |
58 |
Amazon Redshift |
61(100%) |
9(39%) |
124 |
0(0%) |
0 |
14(61%) |
25 |
AWS Glue |
0(0%) |
17(100%) |
0 |
0(0%) |
0 |
0(0%) |
0 |
Babelfish |
59(97%) |
10(45%) |
20 |
2(3%) |
2 |
12(55%) |
30 |
또한 AWS SCT 보고서는 자동으로 전환할 수 없는 스키마 요소에 대한 세부 정보도 제공합니다. AWS 마이그레이션 플레이북
Babelfish for Aurora PostgreSQL
Babelfish for Aurora PostgreSQL에서는 SQL Server 클라이언트의 데이터베이스 연결을 수락하는 기능을 사용하여 Aurora PostgreSQL DB 클러스터를 확장합니다. Babelfish를 사용하면 원래 SQL Server용으로 빌드된 애플리케이션은 코드를 거의 변경하지 않고 데이터베이스 드라이버를 수정하지 않고도 Aurora PostgreSQL에서 직접 작동할 수 있습니다. Babelfish는 Aurora PostgreSQL이 T-SQL 및 PL/pgSQL 언어 모두에서 작동할 수 있도록 Aurora PostgreSQL을 이중 언어로 지원합니다. Babelfish는 SQL Server에서 Aurora PostgreSQL로 마이그레이션하는 작업을 최소화합니다. 이를 통해 마이그레이션을 가속화하고 위험을 최소화하며 마이그레이션 비용을 크게 절감할 수 있습니다. T-SQL 사후 마이그레이션을 계속 사용할 수 있지만 개발을 위해 PostgreSQL 네이티브 도구를 사용하는 옵션
다음 다이어그램에서는 T-SQL을 사용하는 애플리케이션이 SQL Server의 기본 포트 1433에 연결하고 Babelfish 변환기를 사용하여 Aurora PostgreSQL 데이터베이스와 통신하는 방법과 PL/pgSQL을 사용하는 애플리케이션이 Aurora PostgreSQL의 기본 포트 5432를 사용하여 Aurora PostgreSQL 데이터베이스에 직접 동시에 연결하는 방법을 보여줍니다.
Babelfish는 특정 SQL Server T-SQL 기능을 지원하지 않습니다. 이러한 이유로 Amazon은 SQL 문을 행 단위로 분석하고 Babelfish에서 지원되지 않는 부분이 있는지 확인하기 위한 평가 도구를 제공합니다.
Babelfish 평가에는 두 가지 옵션이 있습니다. AWS SCT에서 SQL Server 데이터베이스와 Babelfish의 호환성을 평가할 수 있습니다. 또 다른 옵션으로 Compass 도구가 Babelfish for Aurora PostgreSQL의 새 릴리스와 함께 업데이트되므로 권장되는 솔루션인 Babelfish Compass 도구가 있습니다.
Babelfish Compass
Babelfish Compass
평가 및 변경이 완료되면 SSMS 또는 sqlcmd와 같은 SQL Server 네이티브 도구를 사용하여 스키마를 Aurora PostgreSQL로 마이그레이션할 수 있습니다. 관련 지침은 AWS 데이터베이스 블로그의 Migrate from SQL Server to Amazon Aurora using Babelfish
AWS Database Migration Service
스키마를 마이그레이션한 후 AWS Database Migration Service(AWS DMS)를 사용하여 가동 중지 시간을 최소화하면서 AWS로 데이터를 마이그레이션할 수 있습니다. AWS DMS는 전체 데이터 로드를 수행할 뿐만 아니라 소스 시스템이 가동되고 실행되는 동안 소스에서 대상으로 변경 사항을 복제합니다. 소스 데이터베이스와 대상 데이터베이스가 모두 동기화된 후 애플리케이션이 마이그레이션을 완료하는 대상 데이터베이스를 가리키는 전환 활동이 발생할 수 있습니다. AWS DMS는 현재 Aurora PostgreSQL 대상에 대해 Babelfish로 전체 데이터 로드만 수행하고 변경 사항을 복제하지 않습니다. 자세한 내용은 AWS DMS 설명서의 Using Babelfish as a target for AWS Database Migration Service를 참조하세요.
AWS DMS는 동종(동일한 데이터베이스 엔진에서) 마이그레이션과 이기종(다른 데이터베이스 엔진에서) 마이그레이션을 모두 수행할 수 있습니다. AWS DMS는 많은 소스 및 대상 데이터베이스 엔진을 지원합니다. 자세한 내용은 AWS 데이터베이스 블로그의 Migrating your SQL Server database to Amazon RDS for SQL Server using AWS DMS
추가 리소스
-
Goodbye Microsoft SQL Server, Hello Babelfish
(AWS 뉴스 블로그) -
Convert database schemas and application SQL using the AWS Schema Conversion Tool CLI
(AWS 데이터베이스 블로그) -
Migrate SQL Server to Amazon Aurora PostgreSQL using best practices and lessons learned from the field
(AWS 데이터베이스 블로그) -
Validate database objects post-migration from Microsoft SQL Server to Amazon RDS for PostgreSQL and Amazon Aurora PostgreSQL
(AWS 데이터베이스 블로그)