Azure 가상 머신의 SQL Server

클라우드 환경에서의 데이터베이스 관리 옵션 및 아키텍처

이 글에서는 Azure 가상 머신의 SQL Server, Azure SQL Database, 그리고 다양한 배포 모델 및 고급 기능에 대한 포괄적인 개요를 제공한다.
Engineering
저자

Kwangmin Kim

공개

2025년 04월 02일

1 Microsoft Intelligent Data Platform 역할 설명

Microsoft는 클라우드(Microsoft Intelligent Data Platform 서비스 활용) 데이터 관련 업무를 위한 5가지 주요 역할을 정의하고 있다:

  1. Azure 데이터베이스 관리자
    • Azure 데이터 서비스와 SQL Server 기반 데이터 플랫폼 솔루션 관리 (데이터 관리, 모니터링, 보안 및 개인정보 보호 설계)
    • T-SQL을 활용한 일상적인 운영 및 관리 작업 수행
  2. Azure 데이터 분석가
    • Microsoft Power BI를 사용
    • 확장 가능한 데이터 모델을 설계 및 구축하고, 데이터를 정리 및 변환하며, 이해하기 쉬운 데이터 시각화
  3. Azure 데이터 분석가
    • Power BI를 활용한 데이터 모델링 및 시각화
    • 데이터 정제/변환을 통한 비즈니스 인사이트 도출
  4. Azure 데이터 과학자
    • Azure Machine Learning 기반 ML 워크로드 구현
    • 데이터 과학/머신러닝 지식 활용
  5. Azure 인공지능 엔지니어
    • Cognitive Services, ML, Knowledge Mining 활용
    • 자연어처리, 음성, 컴퓨터 비전, 봇 등 AI 솔루션 구현

2 Azure VM의 SQL Server

2.1 Azure 가상 머신의 SQL Server: 특징, 백업, 고가용성

  • Azure 가상 머신에서 실행되는 SQL Server(IaaS)는 온프레미스 SQL Server와 동등
  • 가상 머신에서 SQL Server를 선택하는 주요 이유:
  1. 애플리케이션 호환성: 특정 버전의 SQL Server가 필요하거나 PaaS와 호환되지 않는 설치 요구사항이 있는 경우
  2. 다양한 SQL Server 서비스 활용: SQL Server Analysis Services(SSAS), Integration Services(SSIS), Reporting Services(SSRS)를 데이터베이스 엔진과 함께 실행할 수 있음

2.2 백업 솔루션

최근 SQL Server 릴리스에서는 다음 두 가지 주요 백업 기능을 제공:
- URL로 백업: Azure Blob Storage 서비스에 데이터베이스를 백업
* Azure Blob Storage란?
* Blob (Binary Large Object): 이미지, 오디오, 비디오, 문서 등과 같은 대용량 비정형 데이터를 저장하는 데 사용되는 데이터 형식
* Azure의 클라우드 기반 스토리지 서비스
* 비교적 저렴한 비용으로 높은 가용성, 내구성, 확장성을 제공
* 데이터 암호화, 보안, 백업 등 다양한 기능 제공
* Azure Backup: SQL Server VM을 위한 포괄적인 엔터프라이즈 백업 솔루션

2.3 배포 옵션

  • Azure의 모든 리소스는 Azure Resource Manager를 통해 관리되고 배포
  • 최종적으로 JSON 문서인 Azure Resource Manager 템플릿으로 변환됨
  • 대규모 배포에는 선언적 접근 방식이 권장됨

2.4 Azure 스토리지 개요

SQL Server 운영 환경에서는 다음 4가지 스토리지 유형 제공:

  • Standard HDD: 비용 절감을 위해 사용, 데이터베이스 백업에는 표준 스토리지를 사용
  • Standard SSD: 비교적 빠른 속도와 비교적 저렴한 비용
  • Premium SSD: 5-10ms 지연 시간
  • Ultra Disk: 1-2ms 지연 시간(최적화 시 1ms 미만 가능)

2.5 Azure의 High Availability

  • Azure 플랫폼은 fault tolerance을 갖추고 있으며 서비스 중단과 일시적 오류로부터 빠르게 복구됨
  • Premium SSD 또는 Ultra Disk를 사용하는 단일 인스턴스 Azure 가상 머신의 경우 최소 99.9%(1년의 0.01%인 약 9시간 정도의 가동 중단 리스크)의 가동 시간을 보장
  • 가용성 집합, 가용성 영역, 부하 분산 기술을 통해 high availability을 제공

2.6 Azure Arc 지원 SQL Server

  • Azure Arc는 Azure 관리 기능을 온프레미스, 다른 클라우드 또는 엣지에서 실행되는 SQL Server 인스턴스로 확장
  • Azure Arc를 통해 기존 SQL Server를 Azure로 이전하지 않고도 일관된 정책 적용, 규정 준수, Azure Monitor 및 Security Center 활용이 가능
  • 중앙 집중식 관리, 자동 업데이트, 백업 및 복원, 재해 복구와 같은 고급 기능을 활용할 수 있으며, Azure의 머신러닝과 AI 기능도 기존 데이터에 적용 가능

3 클라우드 기반 Azure SQL Database 설계

Azure SQL Database는 PaaS(Platform as a Service) 형태로 제공되는 고확장성 데이터베이스 서비스로, 최소한의 유지 관리로 특정 워크로드에 최적화되어 있다. 개발자에게 유연성과 세분화된 배포 옵션을 제공하여 새로운 애플리케이션 개발에 적합하다.

3.1 구매 모델

1. vCore 기반 모델

  • 컴퓨팅과 스토리지 리소스를 독립적으로 확장 가능
  • 서비스 Tier:
    • 범용(General Purpose): 덜 집약적인 작업용, 프로비저닝 및 서버리스 컴퓨팅 계층 제공
    • 비즈니스 크리티컬(Business Critical): In-Memory OLTP, 읽기 전용 복제본, 로컬 SSD 지원
      • OLTP: In-Memory OLTP(Online Transaction Processing)는 Microsoft SQL Server에서 제공하는 메모리 최적화 기술
      • 이 기술은 데이터베이스 테이블과 저장 프로시저를 메인 메모리(RAM)에 저장하여 디스크 I/O 작업을 최소화함으로써 트랜잭션 처리 성능을 크게 향상
      • 주요 특징
        • 데이터를 디스크가 아닌 메모리에 저장하여 액세스 속도 향상
        • 락(lock)이나 래치(latch) 없는 동시성 제어 메커니즘으로 경합 감소
        • 높은 처리량과 낮은 지연 시간이 필요한 트랜잭션 중심 애플리케이션에 적합
    • 하이퍼스케일(Hyperscale): 수평적 확장 기능, 대규모 데이터 처리에 적합

2. DTU 기반 모델

  • 컴퓨팅과 스토리지가 DTU 수준에 종속
    • DTU(Database Transaction Unit): Azure SQL Database에서 사용하는 성능 측정 단위
    • Microsoft가 개발한 이 단위는 CPU, 메모리, 데이터 I/O 및 트랜잭션 로그 I/O의 혼합된 측정값으로, 데이터베이스 성능을 단일 값으로 표현
    • DTU 기반 구매 모델에서는 데이터베이스에 특정 DTU 레벨을 할당하며, 이 레벨은 해당 데이터베이스가 사용할 수 있는 컴퓨팅 및 스토리지 리소스의 양을 결정 (DTU 계층에 따라 성능과 비용이 증가)
    • 이 모델은 vCore 모델과 달리 컴퓨팅과 스토리지가 함께 묶여 있어, 스토리지만 늘리고 싶어도 DTU 수준을 전체적으로 올려야 하는 단점이 있다.
  • Basic, Standard, and Premium 세 가지 서비스 tier 제공
  • 스토리지 한도 도달 시 컴퓨팅 사용률과 무관하게 DTU 증가 필요

3.2 서버리스 컴퓨팅

  • 자동 확장 및 일시 중지 기능을 제공하여 개발/테스트 환경의 비용 절감에 효과적
  • 워크로드에 따라 동적으로 확장되며 비활성 상태일 때는 자동으로 일시 중지되어 스토리지 비용만 발생

3.3 배포 모델

1.단일 데이터베이스

  • 각 데이터베이스를 개별적으로 관리
  • 동일 서버에 배포되어도 각 데이터베이스는 전용 리소스 보유
  • Azure 포털을 통한 리소스 모니터링 가능

2.탄력적 풀

  • 여러 데이터베이스가 리소스를 공유하는 모델
  • 개별 데이터베이스 스케일링이 불필요해 관리 용이
  • SaaS 애플리케이션에 비용 효율적
  • 사용률이 낮은 멀티테넌트 환경에 적합

3.4 주요 기능

네트워크 옵션

방화벽 규칙, 가상 네트워크 엔드포인트, Private Link 등으로 액세스 제어가 가능

백업 및 복원

Azure는 SQL Database 및 SQL Managed Instance에 대한 원활한 백업 및 복원 기능을 제공

  • 지속적 백업(seamless backup): 정기적인 백업과 지역 중복 스토리지, 전체 백업은 매주 수행되고, 차등 백업은 12~24시간마다 수행되며, 트랜잭션 로그 백업은 5~10분마다 수행됨
  • 지역 복원(geo-restore): 다른 지리적 지역으로 복원 가능, 덜 엄격한 재해 복구 시나리오에 특히 유용
  • 시점 복원(PITR, point-in-time restore): 특정 시점 복원 가능, 1-35일 보존 기간 설정 가능, 실제로 지정하지 않으면 기본 구성은 7일
  • 장기 보존(LTR, long-term retention): 최대 10년까지 보존 정책 설정, 이 옵션은 기본적으로 사용하지 않도록 설정

자동 튜닝

머신러닝 기반으로 쿼리 성능을 자동 최적화
- 비용 많은 쿼리 식별
- 실행 계획 최적화
- 인덱스 추가/제거 기능

탄력적 쿼리 및 작업

  • 여러 데이터베이스에 걸친 쿼리 실행과 유지 관리 작업 자동화를 지원
  • 여러 데이터베이스를 연결하는 T-SQL 쿼리를 실행 가능하고 이 기능은 변경할 수 없는 세 부분 및 네 부분으로 된 이름을 사용하는 애플리케이션에 유용
  • 마이그레이션을 허용하기 때문에 이식성이 향상
  • 다음 분할 전략을 지원
    • 수직 분할: 데이터베이스 간 쿼리라고도 합니다. 데이터는 여러 데이터베이스 간에 세로로 분할 (컬럼 단위 분할도 가능).
    • 가로 분할: 데이터는 여러 확장된 데이터베이스에 행을 분산하기 위해 수평(행또는 record 단위)으로 분할

Microsoft Fabric 통합

  • Microsoft 생태계와 완벽하게 통합되어 데이터 워크플로 간소화, 협업 강화, 고급 분석 지원 등의 이점을 제공
  • Microsoft Fabric은 모든 데이터 및 분석 요구 사항을 위한 통합 플랫폼
    • Microsoft의 SaaS(Software as a Service) 분석 제품군
    • Power BI, Azure Synapse Analytics, Azure Data Factory 등의 Microsoft 서비스를 하나의 통합된 환경으로 결합
  • 주요 특징:
    • 데이터 수집, 처리, 저장, 분석, 시각화를 위한 end-to-end 솔루션
    • 공통 데이터 저장소인 OneLake를 중심으로 구축
    • 다양한 워크로드 지원: 데이터 엔지니어링, 데이터 과학, 실시간 분석, BI 등
    • 통합된 거버넌스 및 보안 모델
    • Microsoft 365와 긴밀한 통합
    • Fabric은 SQL Database와 같은 여러 데이터 서비스를 통합하여 조직이 데이터 사일로를 제거하고 더 효율적으로 데이터를 활용하도록 지원

4 Azure SQL Managed Instance

Azure SQL Managed Instance는 Azure SQL Database와 많은 공통 코드를 공유하는 완전 관리형 PaaS 솔루션으로 SQL Server 잘 작동하는 완전 관리형 데이터베이스 서비스

4.1 주요 이점

  • 자동 백업 및 패치
  • 기본 제공 고가용성(99.99% 가동시간 보장, 년간 52분 가동 중단 시간 허용 리스크)
  • 보안 및 성능 도구
  • 통합 감사 기능
  • SQL Server 설치 및 패치 불필요로 유지 관리 감소

4.2 SQL Database와의 차별점

SQL Database가 단일 데이터베이스 중심인 반면, SQL Managed Instance는 다음을 지원:
- 데이터베이스 간 쿼리
- CLR(Common Language Runtime, 공통 언어 런타임)
- 다양한 .NET 언어(C#, Visual Basic .NET 등)로 작성된 코드를 SQL Server 내에서 실행 가능
- 스토어드 프로시저, 트리거, 사용자 정의 함수, 사용자 정의 형식, 사용자 정의 집계 등을 .NET 언어로 작성 가능
- T-SQL로 구현하기 어려운 복잡한 비즈니스 로직, 문자열 처리, 수학 계산 등을 효율적으로 처리 가능
- T-SQL(Transact-SQL): Microsoft SQL Server에서 사용되는, SQL(Structured Query Language)의 확장 버전
- 외부 리소스(파일 시스템, 네트워크 등)에 접근하는 코드 실행 가능
- 시스템 데이터베이스 액세스
- SQL 에이전트 기능
- Microsoft SQL Server의 작업 자동화 서비스
- 작업 예약, 작업 모니터링, 작업 로깅 등 다양한 기능 제공

4.3 하이브리드 라이선스 옵션

  • Active Software Assurance가 있는 기존 라이선스를 활용해 PaaS(SQL Database 및 SQL Managed Instance) 비용 절감(최대 40%)
    • Enterprise Edition: 코어당 비즈니스 크리티컬 vCore 1개 또는 범용 vCore 8개
    • Standard Edition: 코어당 범용 vCore 1개

4.4 Connectivity Architecture

  • SQL Managed Instance에 대한 연결은 TDS 엔드포인트를 통한 연결
    • TDS(Tabular Data Stream)는 Microsoft SQL Server 및 Sybase에서 클라이언트와 데이터베이스 서버 간의 통신에 사용되는 네트워크 프로토콜
  • 고가용성 방식으로 배포된 게이트웨이 구성 요소
  • 자동화된 백업(지역 중복 및 자동 복제)
  • 자동 장애 조치 그룹 지원

4.5 Migration Options

  1. Log 재생 서비스: 온라인 마이그레이션, 세부 제어 가능
  2. Azure Data Studio 확장: 준비 상태 평가, 리소스 추천, 중소규모 DB에 적합
  3. Managed Instance 링크: 분산 가용성 그룹 사용, 즉시 데이터 복제
  4. 네이티브 백업 및 복원: 간단한 마이그레이션 방법
  5. 트랜잭션 복제: 대규모 DB의 온/오프라인 마이그레이션에 적합

4.6 Machine Learning Services

  • Python 및 R 패키지 지원
  • 데이터 이동 없이 기계 학습 모델 학습 및 배포
  • T-SQL 저장 프로시저를 통한 모델 배포
  • scikit-learn, PyTorch, TensorFlow 등 오픈소스 라이브러리 지원
  • T-SQL PREDICT 함수로 예측 가속화
  • sp_configure 'external scripts enabled', 1; 명령으로 활성화

Subscribe

Enjoy this blog? Get notified of new posts by email: