Azure SQL Database의 서버리스 구매 모델
· Version : Azure SQL
Azure SQL을 사용할 때, 다양한 구매모델이 있다. vCore 기반 모델, DTU 서비스 계층, 서버리스 컴퓨팅 계층이 있는데, 이번 포스트에서는 서버리스 구매 모델에 대해서 살펴본다. 자세한 내용은 Microsoft 공식 문서인 아래 링크를 참고 한다.
· (영어) https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless?WT.mc_id=DP-MVP-4039834
· (한국어) https://docs.microsoft.com/ko-kr/azure/sql-database/sql-database-serverless?WT.mc_id=DP-MVP-4039834
Azure SQL Database 서버리스는 단일 데이터베이스에 대한 컴퓨팅 계층으로, 워크로드 수요 및 초당 사용된 컴퓨팅 양에 대한 청구를 기반으로 계산을 자동으로 조정한다. 서버리스 컴퓨팅 계층은 스토리지만 청구될 때 비활성 기간동안 데이터베이스를 자동으로 일시중지하고 활동이 반환되면 데이터베이스를 자동으로 다시 시작한다. 서버리스 컴퓨팅 계층은 자동 확장 및 자동 일시 중지에 대한 설정이 가능하고, 데이터베이스 성능 및 비용계산을 결정한다.
서버리스 Azure SQL Database 는 아래와 같은 특징을 가지고 있다.
· 최소 vCores 및 최대 vCores는 데이터베이스에 사용할 수 있는 계산 용량 범위를 정의할 수 있다. 메모리 및 I/O 제한은 지정된 vCore 범위에 비례한다.
· Autopause delay는 데이터베이스를 자동으로 일시 중지 하기 전에 비활성 상태로 유지 해야하는 기간을 정의한다. 데이터베이스는 다음 로그인 또는 다른 작업이 발생할 때 자동으로 다시 시작된다. 또는 autopausing를 사용 하지 않도록 설정할 수 있다.
· 서버리스 데이터베이스의 비용은 컴퓨팅 비용과 스토리지 비용의 합계이다.
· 계산 사용량이 구성된 최소 및 최대 한계 사이 인 경우 계산 비용은 사용 된 vCore 및 메모리를 기반으로 한다.
· 컴퓨팅 사용량이 구성된 최소 한계 미만인 경우 컴퓨팅 비용은 구성된 최소 vCore 및 최소 메모리를 기준으로 한다.
· 데이터베이스가 일시 정지되면 계산 비용은 0이며 스토리지 비용만 발생 한다.
· 스토리지 비용은 프로비저닝 된 컴퓨팅 계층과 동일한 방식으로 결정된다.
아래 표는 서버리스 컴퓨팅 계층과 프로비저닝된 컴퓨팅 계층 간의 차이점을 요악한다.
|
서버리스 컴퓨팅 |
프로비저닝된 컴퓨팅 |
데이터베이스 사용패턴 |
시간이 지남에 따라 평균 컴퓨팅 활용도가 낮아 간헐적이고 예측할 수없는 사용량 |
시간이 지남에 따라 평균 컴퓨팅 사용률이 높은 정규 사용 패턴 또는 탄력적 풀을 사용하는 여러 데이터베이스 |
성능 관리 작업 |
적음 |
많음 |
컴퓨팅 크기 조정 |
자동 |
수동 |
컴퓨팅 응답성 |
비활성 기간 후 낮음 |
즉시 |
청구 세분성 |
초당 |
시간당 |
일반적으로 서버리스 데이터베이스는 max vCores 값에의해 설정된 한계 내에서 요청된 컴퓨팅에 대한 중단없이 리소스 요구를 충족시키기에 충분한 용량을 가진 머신에서 실행된다. 시스템이 몇 분 내에 리소스 요구를 충족시킬 수없는 경우로드 밸런싱이 자동으로 발생하는 경우가 있다. 예를 들어, 리소스 수요가 4 개의 vCore이지만 2개의 vCore 만 사용할 수 있는 경우 4 개의 vCore가 제공되기 전에로드 밸런싱에 최대 몇 분이 걸릴 수 있다. 연결이 끊어 질 때 작업이 끝날 때 짧은 기간을 제외하고 데이터베이스는로드 균형 조정 중에 온라인 상태로 유지 된다.
서버리스 데이터베이스의 메모리는 프로비저닝 된 컴퓨팅 데이터베이스보다 더 자주 회수됩니다. 이 동작은 서버리스 비용을 제어하는 데 중요하며 성능에 영향을 줄 수 있다. 프로비저닝 된 컴퓨팅 데이터베이스와 달리 CPU 또는 캐시 사용률이 낮으면 SQL 캐시의 메모리가 서버리스 데이터베이스에서 회수된다.
· 가장 최근에 사용한 캐시 항목의 전체 크기가 일정 기간 동안 임계값 아래로 떨어지면 캐시 활용도가 낮은 것으로 간주된다.
· 캐시 재사용이 트리거되면 대상 캐시 크기가 이전 크기의 일부로 점차 감소하고 사용량이 낮을 경우에만 회수 된다.
· 캐시 재사용이 발생하면 제거 할 캐시 항목을 선택하기위한 정책은 프로비저닝 된 컴퓨팅 데이터베이스와 동일하다.
· 캐시 크기는 구성 할 수있는 min vCore에 의해 정의 된 최소 메모리 제한 아래로 절대 축소되지 않는다.
프로비저닝 된 데이터베이스와 동일한 방식으로 동일한 속도로 디스크에서 데이터를 가져올 때 SQL 캐시가 커진다. 데이터베이스가 사용중이면 캐시는 최대 메모리 제한까지 제한되지 않은 상태로 커질 수 있다.
Autopausing 및 Autoresuming는 아래와 같은 제약조건에 따라 자동 활성 비활성 된다. 서버를 사용 하지않는 데이터베이스를 autoresume 및 autopause 하는 대기 시간은 일반적으로 1 분에서 autoresume로, 1-10 분에서 autopause로 정렬 된다.
[Autopausing]
Autopause 지연 기간 동안 다음 조건이 모두 true 인 경우 Autopausing이 트리거된다.
· 세션 수 = 0
· 사용자 풀에서 실행 되는 사용자 작업에 대한 CPU = 0
다음 기능은 autopausing을 지원 하지 않는다. 즉, 다음 기능 중 하나를 사용 하는 경우 데이터베이스 비활성 기간에 관계 없이 데이터베이스가 온라인 상태로 유지 된다.
· 지역에서 복제 (활성 지역 복제 및 자동 장애 조치 그룹)
· 장기 백업 보존 (LTR).
· SQL 데이터 동기화에 사용되는 동기화 데이터베이스 동기화 데이터베이스와 달리 허브 및 멤버 데이터베이스는 autopausing을 지원 한다.
· Elastic Pool에 사용 되는 작업 데이터베이스 이다.
Autopausing는 데이터베이스를 온라인 상태로 만들어야 하는 일부 서비스 업데이트를 배포 하는 동안 일시적으로 차단 된다. 이러한 경우 서비스 업데이트가 완료 되 면 autopausing가 다시 허용 된다.
[Autoresuming]
언제 든 지 다음 조건 중 하나라도 충족 되 면 Autoresuming가 트리거 된다.
기능 |
자동 다시 시작 트리거 |
인증 및 권한 부여 |
로그인 |
위협 검색 |
데이터베이스 또는 서버 수준에서 위협 감지 설정 사용/사용 안 함 데이터베이스 또는 서버 수준에서 위협 검색 설정 수정 |
데이터 검색 및 분류 |
민감도 레이블 추가, 수정, 삭제 또는 보기 |
감사 |
감사 레코드 보기, 감사 정책 업데이트 또는 보기 |
데이터 마스킹 |
데이터 마스킹 규칙 추가, 수정, 삭제 또는 보기 |
투명한 데이터 암호화 |
투명한 데이터 암호화 상태 또는 상태 보기 |
쿼리(성능) 데이터 저장소 |
쿼리 저장소 설정 수정 또는 보기 |
자동 튜닝 |
자동 인덱싱과 같은 자동 실행 추천 사항의 적용 및 확인 |
데이터베이스 복사 |
복사본으로 데이터베이스를 만든다. BACPAC 파일로 내보낸다. |
SQL 데이터 동기화 |
구성 가능한 예약에 따라 실행되거나 수동으로 수행되는 허브 및 멤버 데이터베이스 간의 동기화 |
특정 데이터베이스 메타데이터 수 |
새 데이터베이스 태그를 추가 하 고 있다. 최대 vCores, min vCores 또는 autopause delay를 변경 한다. |
SSMS |
18.1 이전의 SSMS 버전을 사용 하 고 서버의 모든 데이터베이스에 대 한 새 쿼리 창을 열면 동일한 서버에서 자동으로 일시 중지 된 데이터베이스를 다시 시작 합니다. SSMS 버전 18.1 이상을 사용 하는 경우에는이 동작이 발생 하지 않는다. |
[참고자료]
· (영어) https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless?WT.mc_id=DP-MVP-4039834
· (한국어) https://docs.microsoft.com/ko-kr/azure/sql-database/sql-database-serverless?WT.mc_id=DP-MVP-4039834
2019-10-14 / Sungwook Kang / http://sungwookkang.com/
Azure SQL, Managed Instance, Azure DTU,
'SQL Server > SQL on Azure' 카테고리의 다른 글
Azure SQL Database 및 Azure SQL Data Warehouse IP 방화벽 규칙 (0) | 2019.11.07 |
---|---|
Azure SQL Database 보안 기능 개요 (0) | 2019.10.17 |
Azure SQL에서 선택할 수 있는 다양한 배포 옵션 (0) | 2019.10.11 |
Azure SQL Database의 vCore 모델과 DTU 모델에서 마이그레이션 (0) | 2019.10.10 |
Azure SQL Database의 서비스 계층에 따른 DTU 구매 모델 (0) | 2019.10.10 |