Azure에서 제공하는 DB 옵션 확인하기
이번 블로그 포스팅은 다음 링크의 내용을 편집 및 각색하였습니다.
링크 : 데이터 옵션
클라우드 도입을 위한 랜딩존 환경을 준비할 때, 애플리케이션이 사용할 데이터 요구사항 정리가 필요합니다. 랜딩존 환경을 데이터 요구 사항에 맞게 구성하는 방법은 워크로드 관리 요구사항 그리고 기술적 및 비즈니스 관점의 요구사항에 따라 달라질 수 있습니다.
데이터 서비스 요구사항 파악하기
랜딩존을 배포하기 전 준비하는 단계에서, 애플리케이션이 필요로 하는 데이터 서비스를 먼저 파악해야 합니다. 파악한 필요사항을 문서화한 후 이 부분을 정책으로 적용시켜서 허용한 리소스만 배포하도록 가드레일 정책으로 제한할 수 있습니다.
요구사항을 파악하기 위해 활용할 수 있는 질문
OS와 데이터베이스 엔진을 어느 정도로 컨트롤 하길 원하는가?
일부 시나리오는 소프트웨어와 호스트 자체에 대해서 높은 수준의 제어권을 필요로 합니다. 이 경우 IaaS 기반 옵션을 고려할 수 있습니다. 만약 소프트웨어와 호스트단에 대한 제어는 필요로 하지 않지만, 아직 PaaS 옵션을 고려하기에는 시기상조라고 판단한다면 managed instance를 고려할 수 있습니다. Managed instance를 사용하게 되면 온프레미스 데이터베이스 엔진과 높은 호환성을 제공하면서도 관리형 플랫폼의 이점을 누릴 수 있습니다.
관계형 데이터베이스를 사용할 것인가?
Azure는 Azure SQL Database, MySQL, PostgreSQL 그리고 MariaDB와 같은 관리형 PaaS 데이터베이스 제품을 제공합니다. Azure CosmosDB는 MongoDB와 PostgreSQL api를 제공하면서 자동 고가용성 확보 및 즉각적인 스케일링같은 이점을 누릴 수 있습니다.
SQL 서버를 사용할 것인가?
Azure에서는 VM 기반의 SQL Server 혹은 PaaS 기반의 Azure SQL Database를 지원합니다. 두 옵션을 나누는 가장 중요한 판단 요소는 데이터베이스를 직접 관리할 것인지, 패치, 백업 등 관리 요소를 직접 관리 혹은 Azure에 위임할 것인지에 따릅니다. 일부 시나리오에서는 호환성 이슈가 있어서 IaaS 기반의 SQL Server만 사용해야 하는 경우도 종종 있습니다.
Key-value 데이터베이스 스토리지를 사용할 것인가?
Azure Cache for Redis를 사용하거나 혹은 일반적인 성능 수준만 필요한 경우 Azure Cosmos DB도 고려하라 수 있습니다.
도큐먼트 혹은 그래프 데이터를 사용할 것인가?
Azure Cosmos DB는 다양한 데이터 타입과 api를 지원하는 멀티모델 데이터베이스 서비스입니다. Azure Cosmos DB는 또한 도큐먼트 및 그래프 데이터를 지원합니다. Mongo DB와 Apache Gremlin은 Cosmos DB에서 지원하는 도큐먼트 및 그래프 API입니다.
column-family 데이터를 사용할 것인가?
Azure Managed Instance for Apache Cassandra는 온프레미스 데이터센터를 클라우드로 확장시키거나 클라우드 유일 클러스터로 사용할 수 있는 완전 관리형 Apache Cassandra 클러스터를 제공합니다.
대용량의 데이터 분석 기능을 필요로 하는가?
그렇다면 Azure Synapse Analytics를 고려할 수 있습니다. 페타바이트 단위의 정형 데이터를 저장 및 쿼리할 수 있습니다.
비정형의 빅데이터 워크로드는 Azure Data Lake서비스를 이용할 수 있습니다.
시계열 데이터를 사용할 것인가?
IoT 디바이스에서 생성한 시계열 데이터 같은 경우, Azure Time Series Insights를 통해 데이터를 저장, 시각화 및 쿼리할 수 있습니다.
데이터베이스 기능 비교
기능 | Azure SQL Database | Azure SQL Managed Instance | Azure Database for PostgreSQL | Azure Database for MySQL | Azure Database for MariaDB | Azure Managed Instance for Apache Cassandra | Azure Cosmos DB | Azure Cache for Redis | Azure Cosmos DB for MongoDB |
---|---|---|---|---|---|---|---|---|---|
데이터베이스 타입 | Relational | Relational | Relational | Relational | Relational | NoSQL | NoSQL | In-memory | NoSQL |
데이터 모델 | Relational | Relational | Relational | Relational | Relational | Multimodel: Document, Wide-column, Key-value, Graph | Wide-column | Key-value | Document |
분산된 멀티마스터의 쓰기 지원 | No | No | No | No | No | Yes | Yes | Yes (Enterprise and Flash tiers only) | Yes |
가상네트워크 연결성 지원 | Virtual network service endpoint | Native virtual network implementation | Virtual network injection (flexible server only) | Virtual network injection (flexible server only) | Virtual network service endpoint | Native virtual network implementation | Virtual network service endpoint | Virtual network injection (Premium, Enterprise, and Flash tiers only) | Virtual network service endpoint |