온 프로메스 환경에서의 수신기와 마찬가지로 Load Balancer에서 발급한 IP를 통해서
외부 Client에서 해당 가용성 그룹으로 접속할 수 있다.
Azure에서의 차이점은 Load Balancer가 외부와 통신을 할 수 있도록 설정할 수 있어
Nat Gateway 역할을 수행할 수 있어 Public용 Load Balancer를 이용하여 수신기를 구축한다.
Azure의 아웃바운드 연결방법은 총 5개의 방법으로 제공을 하는데
위의 방법은 대규모가 아닌 프로덕션 등급의 추천이고 대규모 작업 시에는
인프라 전문팀(클라우드 전문팀)과의 논의를 통하여 Nat Gateway와 내부 Load Balancer를
연동하는 방법으로 진행하는 것이 좋다.
아웃바운드 연결을 위한 SNAT(Source Network Address Translation) - Azure Load Balancer | Microsoft Docs
.
1. Network Security Group(NSG) 방화벽 오픈
가상 머신을 생성할 때 NSG를 같이 생성했었다면 해당 리소스에서
SQL 관련 Inbound를 오픈해줘야 한다.
해당 작업은 SQL Server가 설치된 2개의 VM에 연결된 NSG에서 모두 해줘야 한다.
해당 예제에서는 수신기 포트를 2550 이용하고자 한다.
추가 버튼을 눌러 해당 Port를 오픈해준다.
2. Load Balancer에 health Probe 및 부하 분산 규칙 추가
상태 Probe는 VM의 Health를 체크하는 Port이고
부하 분산 규칙은 Load Balancer에서 접속했을 시 해당 규칙에 따라 Backend Pool로
연결을 분산 해주는 역할을 한다.
SQL Server Always On에서는 59999 Port로 상태 체크를 하도록 설정할 것이기 때문에
59999 Port로 Probe를 설정해 준다.
Probe가 추가 되었으면 해당 Probe를 기반으로 하는 부하 분산 규칙을 설정한다.
부하 분산 규칙은 외부에서 들어올 때 NSG에서 설정했던 대로
2550 Port로 접속을 시도할 것이기 때문에 2550을 frontend Port로 설정하고
Backend Port를 SQL Port인 1433으로 설정한다.
Probe는 방금 전에 생성한 Probe를 선택하도록 한다.
3. Failover Manager에서 Client Access Point 설정
Azure의 Load Balancer에서 설정한 내용을 기반으로 Failover Manager에서 Always On 역할에
Client Access Point를 지정한다.
먼저 해당 역할을 중지한다.
역할에 Client Access Point를 리소스를 추가해준다.
해당과 같이 추가된 리소스를 확장하면 나오는 IP Address 리소스의 속성에 들어간다.
이후 Powershell에서 사용하기 위한 변수 처리를 위해
해당 IP Address 리소스의 이름을 편한 방법으로 수정한다.
해당 failover Cluster의 Network 이름 다음과 같이 확인한다.
Powershell에서 해당 작업을 진행하는 이유는 VM의 Network가 Public이 아닌 Private에 연결되어 있고 Public 관리는 Azure에서 하고 있기 때문에 GUI로는 Public IP 수신기를 생성할 수 없다.
Powershell을 관리자 모드로 실행하여 다음과 같은 명령어를 실행한다.
$ClusterNetworkName = "Cluster Network 1" #Failover 네트워크 이름
$IPResourceName = "IPListener1" #Client Access Point IP Address
$ILBIP = "xxx.xxx.xxx.xxx" #Load Balancer Frontend IP
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName |
Set-ClusterParameter -Multiple @{"Address"="$ILBIP";
"ProbePort"="59999";
"SubnetMask"="255.255.255.255";
"Network"="$ClusterNetworkName";
"EnableDhcp"=0}
이후 가용성 그룹 역할의 속성에서 해당 Client Access Point를 상속 시킨다.
이후 가용성 그룹 역할을 온라인으로 변경하면 모두 온라인으로 변경되고
다음과 같이 SSMS에서 수신기가 등록된 것을 볼 수 있다.
4. 가용성 그룹 Port 설정
추가된 수신기에 사용될 Port에 대한 설정을 진행해야 한다.
2개의 SQL Server VM에서 이 전에 Load Balancer에서 셋팅한 Frontend Port의 방화벽을 오픈 한다.
이후 SSMS에서 가용성 그룹 수신기의 속성에서 해당 Port를 설정한다.
이렇게 가용성 그룹 수신기가 완료되었고 외부에서 해당 서버에 접근을 할 수 있다.
'Database > SQL Server' 카테고리의 다른 글
가속 데이터베이스 복구 [ADR] (1) Row Versioning (0) | 2021.11.18 |
---|---|
SQL Server Connection Pool 대하여 (0) | 2021.11.11 |
가용성 그룹(Always On) 구축 [On Azure] (6) Alaways On 구성 (0) | 2021.09.29 |
가용성 그룹(Always On) 구축 [On Azure] (5) Failover Cluster (0) | 2021.09.16 |
가용성 그룹(Always On) 구축 [On Azure] (4) SQL Server 구축 (0) | 2021.09.13 |
최근댓글