아래 링크를 통해 Azure VM에서 SQL Server failover cluster 를 구성할 수 있습니다. 본 문서에는 Load balancer 를 Internal private 네트워크 사용 기준으로 작성되어 있으나 Load balancer 를 private 이 아닌 public 으로 설정하면 내부/외부 통신에 사용할 수 있는 Public load balancer 로 사용할 수 있습니다. 이 부분에 대한 변경을 위해 클러스터 구성 가이드 문서에서 5단계 load balancer, 6단계 probe 설정 단계가 달라지게 됩니다.
Configure a SQL Server failover cluster instance on Azure virtual machines
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-create-failover-cluster#step-5-create-the-azure-load-balancer
Step 5: Create the Azure load balancer
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-create-failover-cluster#step-5-create-the-azure-load-balancer
Type: Either public or private. A private load balancer can be accessed from within the virtual network. Most Azure applications can use a private load balancer. If your application needs access to SQL Server directly over the internet, use a public load balancer.
위 캡쳐와 같이 Load balancer 를 만드는 과정에서 Internal 대신 Public 을 선택합니다.
Step 6: Configure the cluster for the probe
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-create-failover-cluster#step-6-configure-the-cluster-for-the-probe
probe 설정을 위한 파워쉘 스크립트에서도 Internal load balancer IP 가 아닌 Public load balancer IP 를 등록하면 됩니다.
$ClusterNetworkName = "클러스터 네트워크 이름" Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0} |
NSG 설정으로 각 VM에서 SQL Server 서비스 포트에 연결할 수 있도록 방화벽 설정을 완료하면 외부 네트워크에서 FCI 에 연결이 가능합니다.