기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SaaS 애플리케이션용 데이터베이스 선택
많은 멀티테넌트 SaaS 애플리케이션의 경우 운영 데이터베이스 선택은 관계형 데이터베이스와 비관계형 데이터베이스 중 하나를 선택하거나 이 둘을 조합하여 선택하는 것으로 요약할 수 있습니다. 결정을 내리려면 다음과 같은 높은 수준의 애플리케이션 데이터 요구 사항 및 특성을 고려하십시오.
-
애플리케이션의 데이터 모델
-
데이터 액세스 패턴
-
데이터베이스 지연 요구 사항
-
데이터 무결성 및 트랜잭션 무결성 요구 사항 (원자성, 일관성, 격리성, 내구성 또는 ACID)
-
지역 간 가용성 및 복구 요구 사항
다음 표에는 애플리케이션 데이터 요구 사항 및 특성이 나열되어 있으며 AWS 데이터베이스 오퍼링과 관련하여 이에 대해 설명합니다. Aurora PostgreSQL과 호환되고 PostgreSQL용 Amazon RDS (관계형), Amazon DynamoDB (비관계형) 등이 있습니다. 관계형 운영 데이터베이스 제품과 비관계형 운영 데이터베이스 제품 중 하나를 결정하려는 경우 이 매트릭스를 참조할 수 있습니다.
데이터베이스 | SaaS 애플리케이션 데이터 요구 사항 및 특성 | ||||
---|---|---|---|---|---|
데이터 모델 | 액세스 패턴 | 지연 요구 사항 | 데이터 및 트랜잭션 무결성 | 지역 간 가용성 및 복구 | |
관계형 (Aurora PostgreSQL과 호환되며 PostgreSQL용 Amazon RDS) |
관계형이거나 고도로 표준화되어 있습니다. | 사전에 철저하게 계획을 세울 필요는 없습니다. | 지연 시간 허용 범위를 높이는 것이 좋습니다. 기본적으로 Aurora를 사용하고 읽기 전용 복제본, 캐싱 및 유사한 기능을 구현하여 지연 시간을 줄일 수 있습니다. | 기본적으로 높은 데이터 및 트랜잭션 무결성이 유지됩니다. | Amazon RDS에서는 리전 간 확장 및 장애 조치를 위한 읽기 전용 복제본을 생성할 수 있습니다. Aurora는 이 프로세스를 대부분 자동화합니다. |
비관계형 (아마존 다이나모DB) |
일반적으로 비정규화됩니다. 이러한 데이터베이스는 패턴을 활용하여 many-to-many관계, 대형 항목 및 시계열 데이터를 모델링합니다. | 데이터 모델을 생성하기 전에 데이터에 대한 모든 액세스 패턴 (쿼리) 을 철저히 이해해야 합니다. | Amazon DynamoDB 가속기 (DAX) 와 같은 옵션을 사용하면 지연 시간이 매우 짧아 성능을 더욱 향상시킬 수 있습니다. | 선택적 트랜잭션 무결성 (성능 저하). 데이터 무결성 문제는 애플리케이션으로 옮겨갑니다. | 글로벌 테이블을 사용한 간편한 지역 간 복구 및 액티브-액티브 구성 (ACID 규정 준수는 단일 지역에서만 가능합니다.) AWS |
일부 멀티테넌트 SaaS 애플리케이션에는 이전 표에 포함되지 않은 데이터베이스에서 더 나은 서비스를 제공하는 고유한 데이터 모델 또는 특수 상황이 있을 수 있습니다. 예를 들어 시계열 데이터 세트, 연결성이 높은 데이터 세트 또는 중앙 집중식 트랜잭션 원장을 유지 관리하려면 다른 유형의 데이터베이스를 사용해야 할 수 있습니다. 모든 가능성을 분석하는 것은 이 가이드의 범위를 벗어납니다. AWS 데이터베이스 제품의 전체 목록과 이러한 제품이 다양한 사용 사례를 개괄적으로 충족하는 방법은 Amazon Web Services 개요 백서의 데이터베이스 섹션을 참조하십시오.
이 가이드의 나머지 부분에서는 PostgreSQL을 지원하는 AWS 관계형 데이터베이스 서비스 (Amazon RDS 및 Aurora PostgreSQL과 호환됨) 에 중점을 둡니다. DynamoDB는 SaaS 애플리케이션을 최적화하기 위한 다른 접근 방식이 필요하며, 이는 이 가이드의 범위를 벗어납니다. DynamoDB에 대한 자세한 내용은 Amazon DynamoDB를 사용하여 풀링된 AWS 멀티테넌트 SaaS 데이터를 분할하는 블로그 게시물을
아마존 RDS와 Aurora 중에서 선택하기
대부분의 경우 PostgreSQL용 Amazon RDS보다 Aurora PostgreSQL과 호환되는 Aurora를 사용하는 것이 좋습니다. 다음 표에는 이러한 두 옵션 중 하나를 결정할 때 고려해야 하는 요소가 나와 있습니다.
DBMS 컴포넌트 | Amazon RDS for PostgreSQL | Aurora 포스트그레SQL 호환 |
---|---|---|
확장성 | 복제 지연 시간 (분), 읽기 전용 복제본 최대 5개 | 1분 미만의 복제 지연 (글로벌 데이터베이스의 경우 일반적으로 1초 미만), 최대 15개의 읽기 전용 복제본 |
장애 복구 | 체크포인트가 5분 간격 (기본값) 으로 인해 데이터베이스 성능이 저하될 수 있음 | 신속한 복구를 위한 병렬 스레드를 사용한 비동기 복구 |
페일오버 | 크래시 복구 시간 외에 60-120초 | 보통 약 30초 (크래시 복구 포함) |
스토리지 | 최대 IOPS 256,000 | Aurora 인스턴스 크기 및 용량에 의해서만 IOPS가 제한됩니다. |
고가용성 및 재해 복구 | 대기 인스턴스가 있는 가용 영역 2개, 읽기 전용 복제본 또는 복사된 백업을 위한 지역 간 장애 조치 | 기본적으로 세 개의 가용 영역, Aurora 글로벌 데이터베이스를 사용한 지역 간 페일오버, 액티브-액티브 구성을 위한 쓰기 포워딩 AWS 리전 |
백업 | 백업 기간 중에는 성능에 영향을 미칠 수 있음 | 자동 증분 백업, 성능에 영향을 미치지 않음 |
데이터베이스 인스턴스 클래스 | Amazon RDS 인스턴스 클래스 목록을 참조하십시오. | Aurora 인스턴스 클래스 목록 보기 |
위 표에 설명된 모든 범주에서는 일반적으로 Aurora PostgreSQL과 호환되는 것이 더 나은 옵션입니다. 하지만 Amazon RDS for PostgreSQL은 Aurora의 더욱 강력한 기능 세트를 희생시키면서도 더 비용 효율적인 옵션을 제공할 수 있는 다양한 인스턴스 클래스를 갖추고 있기 때문에 중소 규모의 워크로드에는 여전히 적합할 수 있습니다.