· Version : Azure SQL
Azure SQL Database는 관리 서비스로 제공되는 범용 관계형 데이터베이스 이며, Azure Portal에서 응용 프로그램 및 솔루션에 대한 고가용성 및 고성능 데이터 저장소 계층을 만들 수 있다. 데이터 또한graph, JSON, spatial(공간), XML등 관계형 데이터와 비관계형 구조 모두 처리할 수있다. Azure SQL Database는 Microsoft SQL Server 데이터베이스 엔진을 기반으로 하며, high-performance In-Memory Optimize 기능및 지능형 쿼리 같은 고급 처리 기술을 사용할 수 있다. 실제 Microsoft에서는 최신 기능은 Azure SQL Database로 출시한 다음 SQL Server로 출시한다.
Azure SQL Database에 대한 자세한 내용은 아래 링크를 참고 한다.
· What is the Azure SQL Database service? : https://docs.microsoft.com/en-us/azure/sql-database/sql-database-technical-overview/?WT.mc_id=DP-MVP-4039834
SQL Database를 사용하면 vCore 기반 구매 모델 및 DTU 기반 구매 모델이라는 두 가지 구매 모델 내에서 성능을 쉽게 정의하고 확장할 수 있다. (vCore 및 DTU에 대한 내용은 다른 포스트에서 자세히 다루도록 한다.) SQL Database는 고가용성, 백업 및 기타 일반적인 유지 관리 작업을 기본 제공하는 완전히 관리되는 서비스이다. Microsoft는 SQL 및 운영체제 코드의 모든 패치 및 업데이트를 처리한다. 사용자는 기본 인프라를 관리할 필요가 없다.
[Deployment models]
Azure SQL Database는 Azure SQL 데이터베이스에 다음과 같은 옵션을 제공한다.
· Single Database는 완전히 관리되는 격리된 데이터베이스를 나타낸다. 안정적인 단일 데이터 원본이 필요한 경우 최신 클라우드 응용프로그램 및 마이크로 서비스를 사용하는 경우 이 옵션을 사용할 수 있다. 단일 데이터베이스는 Microsoft SQL Server 데이터베이스 엔진의 포함된 데이터베이스와 비슷하다.
· Managed instance는 Microsoft SQL Server 데이터베이스 엔진의 완전히 관리되는 인스턴스이다. 함께 사용할 수 있는 데이터베이스 집합이 포함되어 있다. 온-프레미스 SQL Server 데이터베이스를 Azure 클라우드로 쉽게 마이그레이션할 수 있으며, 데이터베이스 엔서 제공하는 SQL Server 데이터베이스 기능을 사용해야하는 경우 이 옵션을 선택한다.
· Elastic Pool은 CPU, 메모리등의 공유 리소스 집합을 포함하는 단일 데이터베이스 컬렉션이다. 단일 데이터베이스를 Elastic Pool로 이동하거나 Elastic Pool에서 제거할 수 있다.
[Scalable performance and pools]
할당된 리소스의 양을 정의할 수 있다.
· Single Database를 사용하는 경우 각 데이터베이스는 다른 데이터베이스와 격리 되며 이식 가능하다. 각 데이터베이스에는 자체 보장된 컴퓨팅, 메모리 및 스토리지 리소스가 있다. 데이터베이스에 할당된 리소스양은 해당 데이터베이스 전용이며 Azure의 다른 데이터베이스와 공유되지 않는다. 단일 데이터베이스 리소스를 동적으로 확장 및 축소 할 수 있다. 또한 hyperscale service tier를 사용하면 빠른 백업 및 복원기능을 통해 100TB 까지 확장할 수 있다.
· Elastic Pool을 사용하면 풀에 있는 모든 데이터베이스에서 공유하는 리소스를 할당할 수 있다. 새 데이터베이스를 만들거나 기존 단일 데이터베이스를 리소스 풀로 이동하여 리소스 사용을 최대화 하고 비용을 절감할 수 있다. 또한 이 옵션을 사용하면 Elastic Pool 리소스를 동적으로 확장 및 축소할 수 있다.
· Managed Instance를 사용할 경우 각각의 관리되는 인스턴스가 다른 인스턴스에서 격리되고 리소스가 보장된다. Managed Instance 내에서 데이터베이스 인스턴스는 리소스 집합을 공유한다. Managed Instance는 리소스를 동적으로 확장 및 축소할 수 있다.
동적확장성과 자동 크기 조정은 의미가 조금 다르다. 자동 크기 조정은 서비스가 조건에 따라 자동으로 크기를 조정하는 경인 반면, 동적 확장성은 가동 중지 시간 없이 수동 크기 조정을 허용한다. Single Database 옵션은 수동 동적확장성을 지원하지만 자동 크기 조정 기능은 지원하지 않는다. 더 많은 자동 환경을 위해 데이터베이스에서 개별 요구 사항에 따라 풀의 리소스를 공유할 수 있도록 하는 Elastic Pool을 사용하는 것이 좋다.
[Purchasing models]
SQL Database는 다음과 같은 구매 모델을 제공한다.
· vCore 기반 구매 모델 : vCore 수, 메모리 양, 스토리지 양 및 속도를 선택할 수 있다. vCore 기반 구매 모델을 사용하면 SQL Server 용 Azure 하이브리드 혜택을 사용하여 비용을 절감 할 수 있다.
· DTU 기반 구매 모델 : DTU 기반 구매 모델은 3 가지 서비스 계층에 컴퓨팅, 메모리 및 I / O 리소스를 혼합하여 다양한 워크로드를 지원합니다. 각 계층 내의 컴퓨팅 크기는 이러한 리소스를 다르게 혼합하여 추가 스토리지 리소스를 추가 할 수 있다.
· 서버리스 모델은 워크로드 요구를 기반으로 계산을 자동으로 조정하고 초당 사용 된 계산량을 청구한다. 또한 서버리스 컴퓨팅 계층은 스토리지만 청구될 때 비활성 기간 동안 데이터베이스를 자동으로 일시 중지하고 활동이 반환되면 데이터베이스를 자동으로 다시 시작한다.
[Elastic pools to maximize resource utilization]
사용 패턴이 비교적 예측 가능한 경우 많은 비즈니스 및 애플리케이션에서 단일 데이터베이스를 만들고 필요에 따라 충분히 성능을 확정하거나 축소할 수 있다. 예측할 수 없는 경우 비즈니스 모델을 관리하기 어려운데 Elastic Pool은 이 문제를 해결하도록 설계되어 있다. 개별 데이터베이스 대신 풀에 성능 리소스를 할당한다. 단일 테이터베이스 성능이 아닌 풀의 집합적 성능 리소스에 대해 비용을 지불한다.
Elastic Pool을 사용하면 리소스에 대한 요구가 변동함에 따라 데이터베이스 성능을 높이거나 낮추는데 집중할 필요가 없다. 풀링된 데이터베이스는 필요에 따라 탄력적 풀의 성능 리소스를 사용한다. 풀링된 데이터베이스는 풀의 한도를 사용하지만 초과하지 않으므로 개별 데이터베이스 사용량을 예측할 수 없는 경우에도 비용을 계속 예측할 수 있다.
[Extensive monitoring and alerting capabilities]
Azure SQL Database는 고급 모니터링 및 문제 해결 기능을 제공한다. 최신 버전의 SQL Server 데이터베이스 엔진에서 제공하는 기본 모니터링 뿐만 아니라 Azure에서 제공되는 PassS 모니터링 기능을 통해 수 많은 데이터베이스 인스턴스를 모니터링하고 문제를 해결 할 수 있다.
· Azure Storage : 적은 비용으로 방대한 양의 원격 분석을 보관
· Azure Event Hubs : SQL Database 원격 분석을 사용자 지정 모니터링 솔루션 또는 핫 파이프 라인과 통합한다.
· Azure Monitor logs : 보고, 경고 및 완화 기능이있는 기본 제공 모니터링 솔루션.
[Availability capabilities]
Azure 가용 영역은 단일 지역 내 단일 데이터 센터 건물의 중단을 방지하려고한다. 건물의 전력 또는 네트워크 손실을 방지한다. SQL Database에서는 서로 다른 가용 영역 (다른 건물, 효과적으로)에 서로 다른 복제본을 배치한다. SQL Database는 기본 제공 비즈니스 영속성 및 글로벌 확장성 기능을 제공한다.
· Automatic backups : SQL Database는 SQL 데이터베이스의 전체, 차등 및 트랜잭션 로그 백업을 자동으로 수행하여 특정 시점으로 복원할 수 있도록 한다. 단일 데이터베이스 및 풀링된 데이터베이스의 경우 장기 백업 보존을 위해 Azure Storage에 전체 데이터베이스 백업을 저장하도록 SQL Database를 구성할 수 있다. Managed Instance의 경우 장기 백업 보존을 위해 복사 전용 백업도 수행할 수 있다.
· Point-in-time restores : 모든 SQL Database 배포 옵션은 SQL 데이터베이스에 대해 자동 백업 보존기간내의 특정 시점으로 복구를 지원한다.
· Active get-replication : 단일 데이터베이스 및 풀링된 데이터베이스 옵션을 사용하여 동일하거나 전 세계적으로 분산된 Azure 데이터센터에서 최대 4개의 읽기 가능한 보조 데이터베이스를 구성할 수 있다.
· Auto-failover groups : 모든 SQL Database 배포 옵션을 사용하면 장애 조치 그룹을 사용하여 글로벌 규모로 고가용성 및 부하 분산을 사용하도록 설정할 수 있다. 여기에는 데이터베이스, Elastic Pool 및 Managed Instance의 지역 복제 및 장애조치가 포함된다.
· Zone-redundant database : SQL Database를 사용하면 여러 가용 영역에 걸쳐 프리미엄 또는 비즈니스 크리티컬 데이터베이스 또는 Elastic Pool을 프로비저닝 할 수 있다. 이러한 데이터베이스와 Elastic Pool에는 고 가용성을위한 중복 복제본이 여러 개 있으므로 이러한 복제본을 여러 가용 영역에 배치하면 복원력이 향상된다. 여기에는 데이터 손실없이 데이터 센터 스케일 오류에서 자동으로 복구하는 기능이 포함된다.
[참고자료]
· What is the Azure SQL Database service? : https://docs.microsoft.com/en-us/azure/sql-database/sql-database-technical-overview/?WT.mc_id=DP-MVP-4039834
2019-10-09 / Sungwook Kang / http://sungwookkang.com
Azure SQL, Managed Instance, Azure overview
'SQL Server > SQL on Azure' 카테고리의 다른 글
Azure SQL Database의 vCore 모델과 DTU 모델에서 마이그레이션 (0) | 2019.10.10 |
---|---|
Azure SQL Database의 서비스 계층에 따른 DTU 구매 모델 (0) | 2019.10.10 |
Azure SQL Managed Instance 에서 SQL Agent의 Job history 기록 보관하기 (0) | 2019.03.26 |
Azure VM에서 SQL Server에 대한 저장소 구성 지침 (0) | 2019.03.26 |
Azure SQL에 도입된 새로운 집계 함수 APPROX_COUNT_DISTINCT (0) | 2019.03.26 |