SlideShare a Scribd company logo
Azure SQL database 의 Geo Replica 와
Managed Instance의 Failover group을
통한 CQRS 구현
Azure SQL database의 Geo Replica, 또는 Managed Instance의 Failover group을 통해 RW와 Readonly를 간편하게 구성할 수 있습니다.
WAS에서 Command는 ReadWrite로 요청하고, Query는 Readonly로 요청하여 CQRS 패턴을 구현합니다.
Level 100
김정우, 클라우드메이트 2023.03
/ 24
Table of Contents
2
1. 발표자 및 회사 소개
2. 비즈니스 연속성을 위한 Azure SQL Database 및 SQL Managed Instance의
고가용성
3. CQRS pattern
4. Azure SQL Database의 Geo Replica 및 Failover Group 구성 및 Live demo
5. Azure SQL Managed Instance의 Failover Group 구성 및 Live demo
6. Q&A
/ 24
발표자 및 회사 소개
3
개발자 입니다.
김정우, Jungwoo (Jayden) Kim
rokag3@gmail.com
https://rokag3-gb.github.io/
Live demo 소스코드: https://github.com/rokag3-gb/PASS_Korea_seminar_2023_03
👨‍💻 주로 .NET을 사용하여 웹앱, 서버, 응용앱을 개발하고 그 애플리케이션이
서비스 목적을 달성하는지에 집중하고 있으며, 내부적으로는 Cloud Native
기반의 어플리케이션을 개발하고자 매진하고 있습니다.
2005 ~ 2009: 소규모 SI 회사에서 커리어 시작.
주로 영림원, LG CNS 프로젝트에 투입.
2009 ~ 2020: 모두투어 ERP 개발 및 유지 보수.
2020 ~ 현재: 클라우드메이트 서비스개발팀에서 다양한 애플리케이션 개발.
/ 24
클라우드메이트는 매니지드 서비스 전문 기업(MSP)으로, 고객이 클라우드의 이점을
최대화하여 사용할 수 있도록 하는 클라우드 네이티브를 미션으로 가지고 있습니다.
다양한 클라우드 플랫폼 및 솔루션 파트너들과 협력해 고객이 목표로 하는 클라우드
환경을 구축하고 효율적인 운영이 가능하도록 컨설팅하고 있습니다.
비즈니스 모델 개발, 운영 프로세스 변화 등 클라우드에 대한 다양한 고객 니즈를
이해하고 성공적인 클라우드 도입을 위해 컨설팅과 마이그레이션을 수행하며, 이후
안정적인 클라우드 운영을 위한 매니지드 서비스와 교육 및 기술지원 서비스를 제공하고
있습니다.
컨설팅 구축/마이그레이션 매니지드
서비스
기술지원/교
육
CLOUDMATE, Managed Service Expert
4
/ 24
비즈니스 연속성을 위한
Azure SQL Database 및 SQL Managed Instance의
고가용성
5
/ 24
Basic, Standard, and General Purpose service tier
locally redundant availability
6
Azure Service Fabric
/ 24
Azure SQL Database connectivity architecture
7
/ 24
Azure SQL Database Geo Replica vs Failover groups
8
Geo Replication Failover Groups
/ 24
Azure SQL Database Geo Replica vs Failover group
9
Feature Geo Replication Failover Group
Asynchronous Replication Yes Yes
Update Connection String After FaiIover Yes No
Multiple Failover groups No Yes
Failover multiple databases at once No Yes
Secondary replica in the same region Yes No
Automatic Failover No Yes
Manual Failover Yes Yes
안바꿔도 됩니다. 좋죠?
Source: https://learn.microsoft.com/en-us/azure/azure-sql/database/auto-failover-group-sql-db?view=azuresql&tabs=azure-
powershell#using-read-write-listener-for-oltp-workload
/ 24
Azure SQL Database Geo Replica vs Failover group
10
고가용성, 자동화된 패치, 자동 성능 조정 기능을 갖춘 완전관리형 RDBMS인 Azure SQL
Database는 다음의 서비스 수준 계약(SLA)을 제공합니다.
RTO는 장애 후 서비스를 다시 사용할 수 있게 되는 시간입니다.
RPO는 장애 발생 시 예상되는 최대 데이터 손실입니다.
Recovery Method Recovery Time Objective Recovery Point Objective
Geo-Replication 30 sec 5 sec
Auto-Failover Groups 1 hr 5 sec
/ 24
Service Level Agreement - Azure SQL Database
11
Source: https://uptime.is
/ 24
Azure SQL Managed Instance Failover group
12
/ 24
Service Level Agreement - Azure SQL Managed
Instance
13
Source: https://uptime.is
/ 24
CQRS Pattern
14
/ 24
CQRS Pattern
15
Command and Query Responsibility Segregation: CQRS는 데이터 저장소에 대한 읽기 및
업데이트 작업을 구분하는 패턴인 명령(command)과 쿼리(query)의 책임 분리를 의미
합니다.
/ 24
CQRS Pattern -> Event Sourcing Pattern
16
Source: https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs
인프라의 복잡성을 크게 증가 시키지 않으면서
효과적이고 현실적인 방법론이 될 수 있습니다.
SQL Server의 Asynchronous commit을 통하여
CQRS pattern의 장점을 극대화할 수 있습니다.
Service Bus
Event Sequence
/ 24
MicroService Architecture Basic Design
17
/ 24
Azure SQL Database의 Geo Replica 및
Failover Group 구성 및 Live demo
18
/ 24
Region: East US Region: East US 2
Azure SQL Database의 Geo Replica 및 Failover Group
구성
Failover group: sql-server-fog-pass-korea
19
sql-server-jungwoo-pass-
korea-2023-02
db1 (R/W)
db2 (R/W)
sql-server-replica-jungwoo-
pass-korea-2023-02
db1 (R/O)
db3 (R/W)
Region: South Central US
sqldb-replica-3rd
db1 (R/O)
Geo Replication
Azure Data Studio에서 Live demo를 해봅시다!!
/ 24
Azure SQL Managed Instance의 Failover Group
구성 및 Live demo
20
/ 24
Azure SQL Managed Instance의 Failover Group 구성
21
vnet-sqlmi-primary-pass-korea vnet-sqlmi-secondary-pass-korea
Korea Central Japan East
Korea Central region
vnet-query-app
vm-query-app-pass-korea
(WAS)
VNet Peering
VNet Peering
👨‍💻
Me
Live demo를
해봅시다!!
http://20.214.207.25:5000/swagger/
(10.20.0.0/24)
(10.40.0.0/24) (10.30.0.0/24)
/ 24
Insights
22
• SQL Managed Instance의 Failover group 생성 과정에서의 시행착오
2개의 인스턴스가 VNet 통신이 가능해야 하며, 그렇지 않으면 다음 에러를 만나게 됩니다.
Failover group creation failed because the primary server's replication traffic cannot reach the secondary server.
Please verify that connectivity between the VNets of the primary and secondary managed servers has been
established.
https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity-architecture-overview?view=azuresql&tabs=current#high-level-
connectivity-architecture
SQL Database SQL Managed Instance
Read/Write 또는 Readonly listener 에 접속이 외부망에서도 접속 가능함
MI가 속한 VNet과 통신이 되는
호스트에서만 접속 가능함
Failover 완료 이후 listener DNS 업데이트 여부
TTL 30초. 실제 failover 해보면
수신기 연결이 매끄러움
공식 자료 없음. 최대 5분 이후 DNS 캐시
초기화하면 정상 접속 가능해짐
Multiple Failover groups 가능 불가능
/ 24
Q&A
질문하지마요~
23
/ 24
References
24
• High availability for Azure SQL Database and SQL Managed Instance - https://learn.microsoft.com/en-us/azure/azure-sql/database/high-availability-
sla?view=azuresql&tabs=azure-powershell
• Service Level Agreements (SLA) for Online Services - https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-
Services?lang=19&year=2023
• Azure SQL Database and Azure Synapse Analytics connectivity architecture - https://learn.microsoft.com/en-us/azure/azure-sql/database/connectivity-
architecture?view=azuresql
• Active geo-replication - https://learn.microsoft.com/ko-kr/azure/azure-sql/database/active-geo-replication-overview?view=azuresql
• Auto-failover groups overview & best practices (Azure SQL Database) - https://learn.microsoft.com/en-us/azure/azure-sql/database/auto-failover-
group-sql-db?view=azuresql&tabs=azure-powershell
• Auto-failover groups overview & best practices (Azure SQL Managed Instance) > DNS Update – https://learn.Microsoft.com/en-us/azure/azure-
sql/managed-instance/auto-failover-group-sql-mi?view=azuresql&tabs=azure-powershell#dns-update
• Connectivity architecture for Azure SQL Managed Instance - https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity-
architecture-overview?view=azuresql&tabs=current#high-level-connectivity-architecture
• Azure Storage redundancy - https://learn.microsoft.com/ko-kr/azure/storage/common/storage-redundancy
• Azure SQL Managed Instance connection types - https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connection-types-
overview?view=azuresql
• Cloud Design Patterns > CQRS pattern - https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs
• Azure SQL Stress Tool (Live demo source code repo) - https://github.com/rokag3-gb/PASS_Korea_seminar_2023_03

More Related Content

PPTX
Azure를 이용한 Join 없는 글로벌 분산 시스템 설계하기
PPTX
1711 azure-live
PPTX
170325 스마트앱개발자포럼-세선1-부산창조혁신센터
PDF
SQL Azure 실무 도입하기
PDF
윈도우 서버가 아닌 곳에서 SQL Server를 만나다! - 박주연 :: AWS Database Modernization Day 온라인
PPTX
가용성을 고려한 웹 서비스 인프라 설계
PDF
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
PDF
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
Azure를 이용한 Join 없는 글로벌 분산 시스템 설계하기
1711 azure-live
170325 스마트앱개발자포럼-세선1-부산창조혁신센터
SQL Azure 실무 도입하기
윈도우 서버가 아닌 곳에서 SQL Server를 만나다! - 박주연 :: AWS Database Modernization Day 온라인
가용성을 고려한 웹 서비스 인프라 설계
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안

Similar to SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed Instance의 Failover group을 통한 CQRS 구현 (20)

PDF
아마존 웹 서비스 상에서 MS SQL 100% 활용하기::김석원::AWS Summit Seoul 2018
PPTX
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
PDF
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
PDF
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
PPTX
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
PDF
대규모 서비스를 가능하게 하는 기술
PDF
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
PDF
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
PDF
[금융 고객을 위한 Resiliency in the Cloud] Open Discussion
PDF
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
PDF
Ms Azure fundamentals
PPTX
1611 azure-live-세션-2
PDF
[2018] MySQL 이중화 진화기
PDF
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
PDF
Scalable webservice
PDF
[2016 데이터 그랜드 컨퍼런스] 6 2(전략,솔루션). 큐브리드 오픈소스 dbms의 클라우드 구축 사례-발표자료
PPTX
개발자가 설명하는 블록체인 세미나
PPTX
Azure Database for MySQL
PDF
DB Migration to Azure Database for MySQL
아마존 웹 서비스 상에서 MS SQL 100% 활용하기::김석원::AWS Summit Seoul 2018
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
대규모 서비스를 가능하게 하는 기술
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
[금융 고객을 위한 Resiliency in the Cloud] Open Discussion
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
Ms Azure fundamentals
1611 azure-live-세션-2
[2018] MySQL 이중화 진화기
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
Scalable webservice
[2016 데이터 그랜드 컨퍼런스] 6 2(전략,솔루션). 큐브리드 오픈소스 dbms의 클라우드 구축 사례-발표자료
개발자가 설명하는 블록체인 세미나
Azure Database for MySQL
DB Migration to Azure Database for MySQL
Ad

SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed Instance의 Failover group을 통한 CQRS 구현

  • 1. Azure SQL database 의 Geo Replica 와 Managed Instance의 Failover group을 통한 CQRS 구현 Azure SQL database의 Geo Replica, 또는 Managed Instance의 Failover group을 통해 RW와 Readonly를 간편하게 구성할 수 있습니다. WAS에서 Command는 ReadWrite로 요청하고, Query는 Readonly로 요청하여 CQRS 패턴을 구현합니다. Level 100 김정우, 클라우드메이트 2023.03
  • 2. / 24 Table of Contents 2 1. 발표자 및 회사 소개 2. 비즈니스 연속성을 위한 Azure SQL Database 및 SQL Managed Instance의 고가용성 3. CQRS pattern 4. Azure SQL Database의 Geo Replica 및 Failover Group 구성 및 Live demo 5. Azure SQL Managed Instance의 Failover Group 구성 및 Live demo 6. Q&A
  • 3. / 24 발표자 및 회사 소개 3 개발자 입니다. 김정우, Jungwoo (Jayden) Kim rokag3@gmail.com https://rokag3-gb.github.io/ Live demo 소스코드: https://github.com/rokag3-gb/PASS_Korea_seminar_2023_03 👨‍💻 주로 .NET을 사용하여 웹앱, 서버, 응용앱을 개발하고 그 애플리케이션이 서비스 목적을 달성하는지에 집중하고 있으며, 내부적으로는 Cloud Native 기반의 어플리케이션을 개발하고자 매진하고 있습니다. 2005 ~ 2009: 소규모 SI 회사에서 커리어 시작. 주로 영림원, LG CNS 프로젝트에 투입. 2009 ~ 2020: 모두투어 ERP 개발 및 유지 보수. 2020 ~ 현재: 클라우드메이트 서비스개발팀에서 다양한 애플리케이션 개발.
  • 4. / 24 클라우드메이트는 매니지드 서비스 전문 기업(MSP)으로, 고객이 클라우드의 이점을 최대화하여 사용할 수 있도록 하는 클라우드 네이티브를 미션으로 가지고 있습니다. 다양한 클라우드 플랫폼 및 솔루션 파트너들과 협력해 고객이 목표로 하는 클라우드 환경을 구축하고 효율적인 운영이 가능하도록 컨설팅하고 있습니다. 비즈니스 모델 개발, 운영 프로세스 변화 등 클라우드에 대한 다양한 고객 니즈를 이해하고 성공적인 클라우드 도입을 위해 컨설팅과 마이그레이션을 수행하며, 이후 안정적인 클라우드 운영을 위한 매니지드 서비스와 교육 및 기술지원 서비스를 제공하고 있습니다. 컨설팅 구축/마이그레이션 매니지드 서비스 기술지원/교 육 CLOUDMATE, Managed Service Expert 4
  • 5. / 24 비즈니스 연속성을 위한 Azure SQL Database 및 SQL Managed Instance의 고가용성 5
  • 6. / 24 Basic, Standard, and General Purpose service tier locally redundant availability 6 Azure Service Fabric
  • 7. / 24 Azure SQL Database connectivity architecture 7
  • 8. / 24 Azure SQL Database Geo Replica vs Failover groups 8 Geo Replication Failover Groups
  • 9. / 24 Azure SQL Database Geo Replica vs Failover group 9 Feature Geo Replication Failover Group Asynchronous Replication Yes Yes Update Connection String After FaiIover Yes No Multiple Failover groups No Yes Failover multiple databases at once No Yes Secondary replica in the same region Yes No Automatic Failover No Yes Manual Failover Yes Yes 안바꿔도 됩니다. 좋죠? Source: https://learn.microsoft.com/en-us/azure/azure-sql/database/auto-failover-group-sql-db?view=azuresql&tabs=azure- powershell#using-read-write-listener-for-oltp-workload
  • 10. / 24 Azure SQL Database Geo Replica vs Failover group 10 고가용성, 자동화된 패치, 자동 성능 조정 기능을 갖춘 완전관리형 RDBMS인 Azure SQL Database는 다음의 서비스 수준 계약(SLA)을 제공합니다. RTO는 장애 후 서비스를 다시 사용할 수 있게 되는 시간입니다. RPO는 장애 발생 시 예상되는 최대 데이터 손실입니다. Recovery Method Recovery Time Objective Recovery Point Objective Geo-Replication 30 sec 5 sec Auto-Failover Groups 1 hr 5 sec
  • 11. / 24 Service Level Agreement - Azure SQL Database 11 Source: https://uptime.is
  • 12. / 24 Azure SQL Managed Instance Failover group 12
  • 13. / 24 Service Level Agreement - Azure SQL Managed Instance 13 Source: https://uptime.is
  • 15. / 24 CQRS Pattern 15 Command and Query Responsibility Segregation: CQRS는 데이터 저장소에 대한 읽기 및 업데이트 작업을 구분하는 패턴인 명령(command)과 쿼리(query)의 책임 분리를 의미 합니다.
  • 16. / 24 CQRS Pattern -> Event Sourcing Pattern 16 Source: https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs 인프라의 복잡성을 크게 증가 시키지 않으면서 효과적이고 현실적인 방법론이 될 수 있습니다. SQL Server의 Asynchronous commit을 통하여 CQRS pattern의 장점을 극대화할 수 있습니다. Service Bus Event Sequence
  • 18. / 24 Azure SQL Database의 Geo Replica 및 Failover Group 구성 및 Live demo 18
  • 19. / 24 Region: East US Region: East US 2 Azure SQL Database의 Geo Replica 및 Failover Group 구성 Failover group: sql-server-fog-pass-korea 19 sql-server-jungwoo-pass- korea-2023-02 db1 (R/W) db2 (R/W) sql-server-replica-jungwoo- pass-korea-2023-02 db1 (R/O) db3 (R/W) Region: South Central US sqldb-replica-3rd db1 (R/O) Geo Replication Azure Data Studio에서 Live demo를 해봅시다!!
  • 20. / 24 Azure SQL Managed Instance의 Failover Group 구성 및 Live demo 20
  • 21. / 24 Azure SQL Managed Instance의 Failover Group 구성 21 vnet-sqlmi-primary-pass-korea vnet-sqlmi-secondary-pass-korea Korea Central Japan East Korea Central region vnet-query-app vm-query-app-pass-korea (WAS) VNet Peering VNet Peering 👨‍💻 Me Live demo를 해봅시다!! http://20.214.207.25:5000/swagger/ (10.20.0.0/24) (10.40.0.0/24) (10.30.0.0/24)
  • 22. / 24 Insights 22 • SQL Managed Instance의 Failover group 생성 과정에서의 시행착오 2개의 인스턴스가 VNet 통신이 가능해야 하며, 그렇지 않으면 다음 에러를 만나게 됩니다. Failover group creation failed because the primary server's replication traffic cannot reach the secondary server. Please verify that connectivity between the VNets of the primary and secondary managed servers has been established. https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity-architecture-overview?view=azuresql&tabs=current#high-level- connectivity-architecture SQL Database SQL Managed Instance Read/Write 또는 Readonly listener 에 접속이 외부망에서도 접속 가능함 MI가 속한 VNet과 통신이 되는 호스트에서만 접속 가능함 Failover 완료 이후 listener DNS 업데이트 여부 TTL 30초. 실제 failover 해보면 수신기 연결이 매끄러움 공식 자료 없음. 최대 5분 이후 DNS 캐시 초기화하면 정상 접속 가능해짐 Multiple Failover groups 가능 불가능
  • 24. / 24 References 24 • High availability for Azure SQL Database and SQL Managed Instance - https://learn.microsoft.com/en-us/azure/azure-sql/database/high-availability- sla?view=azuresql&tabs=azure-powershell • Service Level Agreements (SLA) for Online Services - https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online- Services?lang=19&year=2023 • Azure SQL Database and Azure Synapse Analytics connectivity architecture - https://learn.microsoft.com/en-us/azure/azure-sql/database/connectivity- architecture?view=azuresql • Active geo-replication - https://learn.microsoft.com/ko-kr/azure/azure-sql/database/active-geo-replication-overview?view=azuresql • Auto-failover groups overview & best practices (Azure SQL Database) - https://learn.microsoft.com/en-us/azure/azure-sql/database/auto-failover- group-sql-db?view=azuresql&tabs=azure-powershell • Auto-failover groups overview & best practices (Azure SQL Managed Instance) > DNS Update – https://learn.Microsoft.com/en-us/azure/azure- sql/managed-instance/auto-failover-group-sql-mi?view=azuresql&tabs=azure-powershell#dns-update • Connectivity architecture for Azure SQL Managed Instance - https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity- architecture-overview?view=azuresql&tabs=current#high-level-connectivity-architecture • Azure Storage redundancy - https://learn.microsoft.com/ko-kr/azure/storage/common/storage-redundancy • Azure SQL Managed Instance connection types - https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connection-types- overview?view=azuresql • Cloud Design Patterns > CQRS pattern - https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs • Azure SQL Stress Tool (Live demo source code repo) - https://github.com/rokag3-gb/PASS_Korea_seminar_2023_03