Azure SQL에서 네트워크를 구성하는 방법
· Version : Azure SQL
Azure SQL Managed Instance는 Azure 클라우드에서 호스팅되고 Azure 가상 네트워크를 사용하는 완전히 관리되는 SQL Server 인스턴스이다. Managed Instance는 가상 네트워크를 사용하기 때문에 Azure 관리 서비스에서 사용자가 네트워크 액세스 규칙을 정의할 수 있다. 잘못된 네트워크 구성은 Managed Instance를 배포할때 오류가 발생하므로 아래 순서에 따라서 네트워크 환경을 구성하여 사용한다. 일반적으로 인스턴스용 가상 네트워크를 구성할 때 기본 5가지 단계로 정리할 수 있다.
1. Managed Instance가 사용할 가상 네트워크를 구성
2. Managed Instance가 Azure 관리 서비스와 통신할 수 있도록Route 테이블 생성
3. 가상 네트워크 생성시 생성된 기본 서브넷을 사용하거나Managed Instance 전용 서브넷을생성
4. 서브넷에 Route 테이블 할당
5. 4단계 까지 올바르게 구성되었는지 확인
[1. 가성 네트워크 구성]
Managed Instance는 사설 IP주소가 할당된 Azure Virtual network를 사용한다. 가상 네트워크는 Managed Instance를 만들기 전에 생성해야 한다. 가상 네트워크는 Azure Portal, PowerShell, Azure CLI등을 이용하여 생성할 수 있다. Azure Portal을 사용하여 가상 네트워크를 생성할때 Resource Manager 배포 모델을 사용해야 한다. 클래식 가상 네트워크 모델은 지원되지 않는다. 가상 네트워크를 생성할 때 Virtual Network Blade 는 Service Endpoint 옵션이 Disable로 설정되어 생성 되는데 는기본 옵션이므로 변경하지 않는 것을 권장한다.
Managed Instance 서브넷은 16 ~ 256개의 주소를 사용할 수 있다. 따라서 기본 서브넷의IP범위를 정의할 때 서브넷 마스크 /28 - /24 범위를 사용한다. 많은 인스턴스가 있을 경우 기본 서브넷에 (인스턴스 수 X 2) + 5개의 주소가 있는지 확인한다.
[2. Route 테이블 생성]
가성 네트워크 생성이 완료 되었으면 Managed Instance가 Azure 관리 서비스와 통신할 수 있도록 Route 테이블을 구성해야한다. Route 테이블은 Managed Instance가 배포된 서브넷에 연결되며 서브넷을 통해서 나가는 각 패킷은 연결된 Route 테이블 기반으로 처리된다. 서브넷은 단일 Route 테이블에만 연결할 수 있다. (Azure에서 Route 테이블을 만드는데는 비용이 부과 되지 않는다.)
Azure Portal에서 ‘Route table’이라는 새 리소스를 추가하고 Route 규칙에 “0.0.0.0/0 Next Hop Internet” 경로를 추가한다. 이 경로를 사용하면 가상 네트워크에 있는 Managed Instance가 인스턴스를 관리하는 Azure 관리 서비스와 통신할 수 있다. 이렇게 하지 않으면 Managed Instance를 배포 할 수 없다.
[3. 추가 서브넷 생성(선택사항)]
Managed Instance는 서브넷에 배포되므로 Managed Instance를 배포하기 전에 서브넷을 생성해야 한다. 기본 서브넷에 인스턴스를 배포하고 기본 경로를 사용하는경우 이 단계를 건너 뛸 수 있다. 서브넷은 Managed Instance 전용이며 다른 리소스를 포함할 수 없다. 서브넷에는 최소한 16개의 주소가 있어야 하고 5개의 주소는 Azure 내부 서비스용으로 예약되어 있다. 서브넷에 포함되는 모든 Managed Instance 에는 인스턴스당 2개의 주소가 필요하다. 서브넷에 Managed Instance를 배치하면 서브넷의 크기를 변경할 수 없으므로 주의한다.
[4.서브넷 구성]
서브넷(기본값 1 또는 신규)에는 “0.0.0.0/0 Next Hop Internet” 정보를 포함한 User Route Table(UDR)이 있어야 한다. “0.0.0.0/0 Next Hop Internet” Route 테이블을 생성하면 Managed Instance를 서브넷에 할당 할 수 있다. Azure Portal에서 서브넷을 정보를 확인할 수 있으며 아래 항목을 확인한다.
1. 서브넷에 할당된 Managed Instance Route 테이블 있다.
2. 서브넷에는 네트워크 보안그룹이 없어야 한다.
3. 서브넷에는 서비스 엔드 포인트가 없어야 한다.
4. 서브넷에는 다른 리소스가 없다.
[5. 체크리스트]
4단계 까지 구성이 완료 되었으면 Managed Instance를 배포할때 문제가 발생하지 않도록 아래 체크리스트 항목을 확인한다.
1. 가상 네트워크에서 서비스 끝점을 사용하지 않도록 설정한다.
2. 서브넷에는 16 ~256개의 IP 주소가 있어야 한다. (Masks from /28~ /24)
3. Managed Instance 서브넷에는 다른 리소스가 없어야 한다.
4. 서브넷에는 0.0.0.0/0 Next Hop Internet 경로가 있어야 한다.
5. 서브넷에는 보안 그룹이 없어야 한다.
6. 서브넷에는 서비스 끝점이 없어야 한다.
모든 구성이 완료 되었어면 Azure Portal을 사용하여 새로운 Managed Instance를 만들고 사용자가 만든 가상 네트워크 및 서브넷을 할당 할 수 있다.
[참고자료]
2018-06-14 / Sungwook Kang / http://sqlmvp.kr
SQL Server, Azure SQL, Azure Managed Instance, Azure network, Azure route table, Azure Virtual Network
출처: https://sqlmvp.tistory.com/1254?category=618825 [Database Lab]