DP-300 시험에서 Azure SQL 배포 모델 파트는 '이 시나리오에 어떤 서비스를 선택해야 하는가'를 반복해서 묻습니다. Azure SQL Database, Azure SQL Managed Instance, SQL Server on Azure VM — 이름이 비슷해서 같은 것처럼 보이지만, 관리 책임 범위와 지원 기능이 전혀 다릅니다. 호텔 객실을 예약하는 것과, 임대 사무실 한 층을 빌리는 것과, 건물을 직접 매입하는 것만큼 차이가 있습니다. 처음 배포 모델을 잘못 고르면 나중에 바꾸기 어렵기 때문에 선택 기준을 제대로 이해하는 것이 중요합니다.
Azure SQL Database — 호텔 객실형 PaaS
호텔에 묵을 때 손님은 객실만 관리합니다. 건물 유지보수, 엘리베이터, 전기 배선은 호텔이 책임집니다. Azure SQL Database가 딱 이 구조입니다. OS, SQL Server 엔진 패치, 백업, 고가용성 구성까지 Microsoft가 전부 처리하고, 관리자는 스키마·쿼리·접근 제어에만 집중하면 됩니다.
서비스 계층은 세 가지입니다. General Purpose는 일반 워크로드에 맞고, Business Critical은 인메모리 복제본을 포함한 고성능 계층입니다. Hyperscale은 최대 100TB까지 자동 확장되고, Serverless 계층은 워크로드가 없을 때 컴퓨팅이 자동 일시정지됩니다. 멀티테넌트 SaaS 환경이라면 Elastic Pool이 강점입니다. 다만 SQL Server Agent, cross-database 쿼리, CLR 어셈블리, Service Broker는 지원하지 않습니다.
Azure SQL Managed Instance — 임대 사무실형 PaaS
사무실 건물에서 한 층 전체를 임차하면, 그 층 안의 칸막이·가구·조명은 마음대로 배치할 수 있습니다. 건물 외벽이나 엘리베이터는 건물주 담당이고요. Azure SQL Managed Instance가 이 구조입니다. OS와 인프라는 Microsoft가 관리하지만, 인스턴스 수준의 기능은 온프레미스 SQL Server와 거의 동일하게 쓸 수 있습니다.
SQL Server Agent, cross-database 쿼리, CLR 어셈블리, Service Broker, Linked Server, Database Mail이 모두 지원됩니다. SQL Server 2019 기준으로 거의 완전한 기능 호환성을 제공합니다. Managed Instance는 전용 VNet 서브넷 안에 배포되어 ExpressRoute나 S2S VPN으로 온프레미스와 직접 연결할 수 있습니다. Instance Pool을 쓰면 여러 소규모 인스턴스를 공유 풀에 배포해 비용을 줄일 수도 있습니다.
SQL Server on Azure VM — 건물 직접 소유형 IaaS
건물을 직접 사면 외벽에 창문을 뚫을 수도 있고, 지하에 서버룸을 만들 수도 있습니다. 그 대신 건물 관리는 전부 본인 책임입니다. SQL Server on Azure VM이 이 방식입니다. OS부터 SQL Server 버전까지 완전히 제어하지만, 패치·백업·모니터링도 DBA팀이 직접 해야 합니다.
OS 수준 접근이 필요하거나, SQL Server의 특정 구버전을 계속 써야 하거나, Windows Server Failover Cluster 기반 FCI나 Always On Availability Group을 수동으로 구성해야 할 때 이 모델이 유일한 선택지입니다. Azure Hybrid Benefit으로 기존 온프레미스 라이선스를 가져와 비용을 절감할 수도 있습니다.
Azure Arc-enabled SQL Server — 하이브리드 확장
해외 지점의 재고 시스템을 본사 ERP와 연결해서 실시간으로 파악하는 장면을 떠올려보세요. Azure Arc-enabled SQL Server가 비슷한 역할을 합니다. 온프레미스나 다른 클라우드에서 실행 중인 SQL Server를 Azure 컨트롤 플레인에 연결해서, Azure Policy·Microsoft Defender for SQL·Azure Monitor를 일괄 적용할 수 있습니다.
인프라 책임은 여전히 온프레미스 팀에 있는 IaaS 방식이지만, Azure의 관리 도구와 보안 정책을 멀티클라우드 전체에 균일하게 적용할 수 있다는 점이 핵심입니다. 시험에서 '하이브리드 SQL 관리 + Azure 컨트롤 플레인'이라는 조건이 나오면 Azure Arc-enabled SQL Server를 선택하면 됩니다.
Hyperscale과 Serverless — 특수 계층
도서관에서 책이 10만 권이 넘으면 일반 서가로는 감당이 안 되고, 자동화 보관 시스템이 필요해집니다. Azure SQL Database Hyperscale이 비슷한 상황에서 등장합니다. 스토리지가 최대 100TB까지 자동 확장되고, 스냅샷 기반 백업이 거의 즉시 완료됩니다. 읽기 스케일아웃도 지원합니다.
Serverless는 반대 상황입니다. 아침엔 바쁘고 밤엔 완전히 멈추는 워크로드 — 예를 들어 업무 시간에만 쓰는 내부 앱이라면, 컴퓨팅이 자동으로 일시정지되어 비용이 절감됩니다. 두 계층 모두 Azure SQL Database 안에 있지만 해결하는 문제가 전혀 다릅니다.
배포 모델 선택 기준
전기차를 살지 휘발유차를 살지 고민할 때 가장 중요한 질문은 '어디까지 달릴 건가'입니다. SQL 배포 모델도 딱 몇 가지 질문으로 좁힐 수 있습니다.
SQL Server Agent, cross-database 쿼리, CLR 중 하나라도 필요한가? 그렇다면 Managed Instance를 선택합니다. OS 직접 접근이나 특정 SQL Server 버전 유지가 필요한가? 그렇다면 VM이 유일한 선택지입니다. 운영 오버헤드를 최소화하고 단일 데이터베이스면 충분한가? 그렇다면 Azure SQL Database가 가장 단순합니다. 온프레미스나 멀티클라우드 SQL을 Azure로 통합 관리하고 싶은가? Azure Arc-enabled SQL Server를 씁니다.
Managed Instance와 Azure SQL Database 사이에서 헷갈릴 때는 SQL Server Agent 하나만 확인하면 됩니다. 필요하다면 Managed Instance, 아니라면 Azure SQL Database가 더 단순합니다. 자동 백업 기본 제공 여부도 자주 나오는 포인트입니다. Azure SQL Database와 Managed Instance는 기본 제공되지만 VM은 별도 설정이 필요합니다.
!Azure SQL 배포 모델 선택
자주 나오는 함정
레스토랑 메뉴판에서 사진만 보고 주문했다가 생각보다 매운 경우가 있습니다. Azure SQL 배포 모델도 이름만 보고 고르면 비슷한 실수가 생깁니다.
가장 흔한 함정은 'PaaS면 당연히 되겠지'라는 가정입니다. SQL Server Agent와 CLR은 PaaS인 Managed Instance에서는 되지만, 역시 PaaS인 Azure SQL Database에서는 안 됩니다. 시험 문제에서 SQL Server Agent가 조건으로 나오면 Azure SQL Database는 바로 제외하세요.
Elastic Pool과 Instance Pool 혼동도 자주 나옵니다. Elastic Pool은 여러 Azure SQL Database를 하나의 컴퓨팅 풀에 담는 것이고, Instance Pool은 여러 Managed Instance를 공유 풀에 담는 것입니다. 이름이 같아 보이지만 담는 리소스가 다릅니다.
시험 핵심 정리
"운영 오버헤드 최소화 + 단일 데이터베이스" -- Azure SQL Database
"SQL Server Agent 필요 + PaaS 유지" -- Azure SQL Managed Instance
"OS 직접 접근 / 특정 SQL 버전 유지" -- SQL Server on Azure VM
"멀티테넌트 SaaS + 비용 최적화" -- Azure SQL Database + Elastic Pool
"100TB 이상 대용량 + 빠른 스냅샷" -- Azure SQL Database Hyperscale
"간헐적 워크로드 + 자동 일시정지" -- Azure SQL Database Serverless
"온프레미스 SQL을 Azure 컨트롤 플레인으로 관리" -- Azure Arc-enabled SQL Server
"cross-database 쿼리 + 리프트앤시프트" -- Azure SQL Managed Instance
"Elastic Pool vs Instance Pool" -- Database 여러 개 공유(Elastic Pool) vs MI 여러 개 공유(Instance Pool)
"자동 백업 기본 제공 여부" -- Database·MI는 기본 제공, VM은 직접 구성 필요
Azure SQL Database = 완전 PaaS 단일 DB, Azure SQL Managed Instance = 인스턴스 호환 PaaS, SQL Server on Azure VM = 완전 제어 IaaS