기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
목적별 데이터베이스 고려
개요
Microsoft 기반 워크로드를 실행할 때 가장 비용이 많이 드는 측면 중 하나는 SQL Server와 같은 상용 데이터베이스의 라이선스입니다. 비즈니스는 SQL Server를 선택한 데이터베이스 플랫폼으로 표준화하는 경우가 많으며 이로 인해 조직의 개발 문화에 정체됩니다. 개발자는 일반적으로 사용 사례에 관계없이 관계형 SQL Server 기반 모델을 선택합니다. 이유는 다음과 같습니다.
-
비즈니스에는 이미 사용 가능한 SQL Server 인스턴스 및/또는 라이선스가 있습니다.
-
팀이 공유 라이브러리, ORM 및 비즈니스 로직을 사용하여 SQL 프로그래밍 모델에 적응했습니다.
-
경영진이 대안을 알지 못합니다.
-
개발자가 대안을 알지 못합니다.
목적별 데이터베이스는 사용 사례의 데이터 액세스 패턴을 수용할 수 있습니다. 이러한 데이터베이스는 비즈니스에서 최신 아키텍처(예: 마이크로서비스)를 채택하고 개별 애플리케이션의 범위가 좁아짐에 따라 비즈니스에서 점점 더 많이 채택되고 있습니다.
목적별 데이터베이스에서는 관계형 모델을 제외하거나 NoSQL(비관계형) 모델이 필요하지 않습니다. 실제로 관계형 데이터베이스는 워크로드의 특정 요구 사항에 따라 선택할 때 목적별 데이터베이스로 간주됩니다. 목적별 데이터베이스를 사용하면 팀이 .NET 애플리케이션과 관련된 데이터베이스 비용을 줄이는 동시에 확장성, 복원력, 차별화되지 않은 과중한 부담 감소와 같은 표준 클라우드 이점을 얻을 수 있습니다.
다음 표에는에서 제공하는 목적별 데이터베이스가 나와 있습니다 AWS.
| Database | Type | 특성 |
|---|---|---|
| Amazon Aurora PostgreSQL 또는 Amazon Aurora MySQL | 관계형 | 데이터가 고정된 구조인 사용 사례 관계형 데이터베이스는 자연스럽게 ACID 트랜잭션을 통해 데이터 일관성을 유지 관리합니다. |
| Amazon DynamoDB |
키 값 페어 | 해시 테이블 데이터 구조를 사용하여 데이터를 저장하는 NoSQL 데이터베이스 비정형 데이터의 고성능 스토리지 및 검색 사용 사례로 사용자 프로파일, 세션 상태 및 장바구니 데이터가 포함됩니다. |
| Amazon ElastiCache |
인 메모리 | 액세스 시간이 밀리초 미만이며 비정형 데이터를 메모리에 저장하는 고성능 NoSQL 데이터베이스 사용자 세션과 같은 자주 액세스하는 임시 데이터와 다른 느린 데이터 저장소 전면에 있는 캐싱 계층으로 사용됨 ElastiCache(Redis OSS) 및 ElastiCache(Memcached) 모두에 대한 지원 포함 |
| Amazon MemoryDB |
내구성이 뛰어난 인 메모리 | 내구성이 뛰어난 스토리지를 갖춘 Redis 호환 목적별 데이터베이스 |
| Amazon Timestream |
시계열 | 시간순으로 높은 처리량의 데이터를 수집하도록 설계된 데이터베이스 사용 사례로, 사물 인터넷(IoT) 애플리케이션과 지표 또는 원격 측정 데이터 저장이 포함됩니다. |
| Amazon DocumentDB |
문서 | 규정된 구조 또는 다른 데이터와의 강제된 관계 없이 데이터를 저장하는 NoSQL 데이터베이스 제품 카탈로그와 같은 읽기 집약적인 워크로드에 자주 사용됨 |
| Amazon Neptune |
그래프 | 데이터와 여러 데이터 항목 간 연결 표현을 모두 포함하는 NoSQL 데이터베이스 사용 사례로, 사기 감지, 추천 엔진 및 소셜 애플리케이션이 포함됩니다. |
| Amazon Keyspaces |
와이드 컬럼 | Apache Cassandra 기반 고성능 분산 데이터베이스 사용 사례로, IoT 애플리케이션, 이벤트 처리 및 게임 애플리케이션이 포함됩니다. |
목적별 데이터베이스 채택의 중요한 동인은 상용 라이선스 제거일 수 있습니다. 그러나 DynamoDB(온디맨드 모드
AWS 는 특별히 구축된 오픈 소스 호환 관계형 데이터베이스를 사용하려는 경우 Babelfish for Aurora PostgreSQL
애플리케이션에 대한 목적별 관계형 데이터베이스를 선택할 경우 애플리케이션에 필요한 동일한(또는 기능적으로 동등한) 기능을 유지하는 것이 중요합니다. 이 권장 사항은 목적별 데이터베이스를 애플리케이션의 기본 데이터 저장소로 다룹니다. 특정 애플리케이션(예: 캐싱)은 다른 권장 사항에서 다룹니다.
비용 영향
컴퓨팅 소비/비용에 직접적인 영향을 미칠 가능성은 적지만 .NET 워크로드용 목적별 데이터베이스를 채택하면 .NET 애플리케이션에서 사용하는 데이터베이스 서비스의 비용에 직접적인 영향을 미칠 수 있습니다. 실제로 민첩성, 확장성, 복원력 및 데이터 내구성이라는 추가 이점과 비교할 때 비용 절감이 보조적인 목표일 수 있습니다.
애플리케이션에 대한 목적별 데이터베이스를 선택하고 이를 효과적으로 사용하도록 데이터 전략을 리아키텍팅하는 전체 프로세스를 설명하는 것은 이 가이드의 범위를 벗어납니다. 자세한 내용은 AWS 자습서 디렉터리의 목적별 데이터베이스
다음 표에는 SQL Server를 목적별 데이터베이스로 대체하여 애플리케이션 비용을 변경하는 방법의 몇 가지 예제가 나와 있습니다. 이는 대략적인 추정치일 뿐입니다. 정확한 프로덕션 비용을 계산하려면 실제 워크로드의 벤치마크와 최적화가 필요합니다.
다음은 us-east-1에서 온디맨드 컴퓨팅과 100GB SSD의 단일 인스턴스 데이터베이스를 포함하여 일반적으로 사용되는 목적별 데이터베이스 추정치입니다. 라이선스 비용에는 SQL Server 라이선스와 소프트웨어 보증이 포함됩니다.
다음 표에는 상용 데이터베이스 예제의 예상 비용이 나와 있습니다.
| 데이터베이스 엔진 | 라이선싱 모델 | 인스턴스 유형/사양 | AWS 컴퓨팅 + 스토리지 비용 | 라이선스 비용 | 총 월별 비용 |
|---|---|---|---|---|---|
| Amazon EC2 기반 SQL Server Standard 에디션 | 라이선스 포함 | r6i.2xlarge(CPU 8개/64GB RAM) | 1,345.36 USD | 0.00 USD | 1,345.36 USD |
| Amazon EC2 기반 SQL Server Enterprise 에디션 | 라이선스 포함 | r6i.2xlarge(CPU 8개/64GB RAM) | 2,834.56 USD | 0.00 USD | 2,834.56 USD |
| Amazon EC2 기반 SQL Server Standard 에디션 | BYOL | r6i.2xlarge(CPU 8개/64GB RAM) | 644.56 USD | 456.00 USD | 1,100.56 USD |
| Amazon EC2 기반 SQL Server Enterprise 에디션 | BYOL | r6i.2xlarge(CPU 8개/64GB RAM) | 644.56 USD | 1,750.00 USD | 2,394.56 USD |
| Amazon RDS 기반 SQL Server Standard 에디션 | db.r6i.2xlarge(CPU 8개/64GB RAM) | 2,318.30 USD | 0.00 USD | 2,318.30 USD | |
| Amazon RDS 기반 SQL Server Enterprise 에디션 | db.r6i.2xlarge(CPU 8개/64GB RAM) | 3,750.56 USD | 0.00 USD | 3,750.56 USD |
다음 표에는 목적별 예제의 예상 비용이 나와 있습니다.
| 데이터베이스 엔진 | 인스턴스 유형/사양 | AWS 컴퓨팅 + 스토리지 비용 | 라이선스 비용 | 총 월별 비용 |
|---|---|---|---|---|
| Amazon Aurora PostgreSQL | r6g.2xlarge(CPU 8개/64GB RAM) | 855.87 USD | 0.00 USD | 855.87 USD |
| DynamoDB | 프로비저닝된 기본 100 WCU/400 RCU | 72.00 USD | 72.00 USD | |
| Amazon DocumentDB | db.r6i.2xlarge(CPU 8개/64GB RAM) | 778.60 USD | 778.60 USD |
중요
이 표는 구매 후 처음 3년 동안 SQL Server(소프트웨어 보증 포함)의 예상 라이선스 비용을 기준으로 합니다. SQL Server Standard 에디션의 경우: 4,100 USD, 코어 팩 2개, 3년. SQL Server Enterprise 에디션의 경우: 15,700 USD, 코어 팩 2개, 3년.
목적별 데이터베이스를 채택하기 전에 비용에 미치는 영향을 고려하는 것이 좋습니다. 예를 들어 목적별 데이터베이스를 사용하도록 애플리케이션을 업데이트하는 비용은 애플리케이션 및 소스 데이터베이스의 복잡성과 관련이 있습니다. 이 아키텍처 전환을 계획할 경우 총 소유 비용을 고려해야 합니다. 여기에는 애플리케이션 리팩터링, 새로운 기술에 대한 인력 기술 향상, 각 워크로드에 예상되는 성능 및 소비에 대한 신중한 계획이 포함됩니다. 여기에서 비용 절감을 위한 투가 가치가 있는지 결정할 수 있습니다. 대부분의 경우 지원 종료 제품을 유지 관리하는 것은 보안 및 규정 준수 위험이며, 이를 해결하는 데 드는 비용은 초기 투자와 노력의 가치가 있습니다.
비용 최적화 권장 사항
SQL Server에 액세스하는 .NET 애플리케이션의 경우 목적별 관계형 데이터베이스를 위한 대체 라이브러리가 있습니다. 애플리케이션에서 이러한 라이브러리를 구현하여 유사한 SQL Server 애플리케이션 기능을 대체할 수 있습니다.
다음 표에는 많은 일반적인 시나리오에서 사용할 수 있는 일부 라이브러리가 나와 있습니다.
| 라이브러리 | Database | 다음에 대한 대체 | 프레임워크 호환성 |
|---|---|---|---|
| Npgsql Entity Framework Core Provider |
Amazon Aurora PostgreSQL | Entity Framework Core SQL Server Provider | 최신 .NET |
| Npgsql Entity Framework 6 Provider |
Amazon Aurora PostgreSQL | Entity Framework 6.0 SQL Server Provider | .NET Framework |
| Npgsql |
Amazon Aurora PostgreSQL | ADO.NET | .NET Framework/Modern .NET |
| MySQL Entity Framework Core Provider |
Amazon Aurora MySQL | Entity Framework Core SQL Server Provider | 최신 .NET |
| Pomelo.EntityFrameworkCore.MySql |
Amazon Aurora MySQL | Entity Framework Core SQL Server Provider | 최신 .NET |
Babelfish를 사용하여 Amazon Aurora PostgreSQL에 연결
다른 목적별 데이터베이스에는 목적별 데이터베이스에 액세스할 수 있는 .NET 호환 라이브러리에 액세스하기 위한 라이브러리가 있습니다. 그러한 예는 다음과 같습니다.
-
Amazon DynamoDB NoSQL 데이터베이스 사용(AWS SDK for .NET 문서)
-
MongoDB C# 드라이버
(MongoDB 설명서) -
.NET(Timestream 설명서)
-
Using a Cassandra .NET Core client driver to access Amazon Keyspaces programmatically(Amazon Keyspaces 설명서)
-
Using .NET to connect to a Neptune DB instance(Neptune 설명서)
전용 빌드 데이터베이스로 마이그레이션하는 경우에서 다음 도구를 사용하여 마이그레이션 프로세스를 AWS 지원할 수 있습니다.
-
AWS Schema Conversion Tool (AWS SCT)
을 사용하면 SQL Server 스키마를 Amazon Aurora 및 Amazon DynamoDB로 변환할 수 있습니다. -
AWS Database Migration Service (AWS DMS)
를 사용하면 SQL Server에서 Aurora 또는 DynamoDB로 데이터를 한 번 또는 지속적으로 마이그레이션할 수 있습니다. -
Babelfish Compass
는 Babelfish for Aurora PostgreSQL과 함께 사용할 SQL Server 데이터베이스의 호환성을 확인하는 데 도움이 될 수 있습니다.
추가 리소스
-
Guidance for migrating SQL Server to Amazon Aurora PostgreSQL
(AWS 데이터베이스 블로그) -
Babelfish APP Modernization Immersion Day
(AWS 워크숍 스튜디오) -
.NET Immersion Day
(AWS 워크숍 스튜디오) -
(AWS 프레젠테이션)의 최신 .NET 애플리케이션을 위해 특별히 구축된 데이터베이스 AWS