가상 네트워크 통합을 이용하여 Azure Database for MySQL - 유연한 서버의 프라이빗 네트워크에 액세스

적용 대상: Azure Database for MySQL - 유연한 서버

이 문서에서는 Azure Database for MySQL 유연한 서버에 대한 프라이빗 연결 옵션을 설명합니다. Azure에서 서버를 안전하게 만들 수 있도록 Azure Database for MySQL 유연한 서버에 대한 가상 네트워크 개념을 자세히 알아봅니다.

프라이빗 액세스(가상 네트워크 통합)

Azure Virtual Network는 Azure에서 프라이빗 네트워크의 기본 구성 요소입니다. Azure Database for MySQL 유연한 서버와 가상 네트워크가 통합됨으로써 네트워크 보안과 격리라는 Azure의 이점이 구현됩니다.

Azure Database for MySQL 유연한 서버 인스턴스에 대한 가상 네트워크 통합을 사용하면 서버에 대한 액세스를 사용자의 가상 네트워크 인프라에만 한정시킬 수 있습니다. 가상 네트워크는 단일 가상 네트워크에 모든 애플리케이션 및 데이터베이스 리소스를 포함하거나 동일한 지역 또는 다른 지역의 다른 가상 네트워크에 걸쳐 확장할 수 있습니다. Microsoft의 짧은 대기 시간, 고대역폭 프라이빗 백본 인프라를 사용하는 피어링을 통해 다양한 가상 네트워크 간의 원활한 연결을 설정할 수 있습니다. 가상 네트워크는 연결하기 위해 하나로 표시됩니다.

Azure Database for MySQL 유연한 서버는 다음을 통한 클라이언트 연결을 지원합니다.

  • 동일한 Azure 지역 내의 가상 네트워크(로컬 피어링된 가상 네트워크)
  • Azure 지역들 간 가상 네트워크(글로벌 피어링된 가상 네트워크)

서브넷을 사용하면 가상 네트워크를 하나 이상의 하위 네트워크로 분할하고 Azure 리소스를 배포할 수 있는 가상 네트워크 주소 공간의 일부를 각 서브넷에 할당합니다. Azure Database for MySQL 유연한 서버에는 위임된 서브넷이 필요합니다. 위임된 서브넷은 서브넷이 Azure Database for MySQL 유연한 서버 인스턴스만 호스팅할 수 있도록 하는 명시적 식별자입니다. 서브넷을 위임하면 서비스는 Azure Database for MySQL 유연한 서버 인스턴스를 원활하게 관리하기 위해 서비스별 리소스를 만들 수 있는 직접적인 권한을 얻습니다.

참고 항목

서브넷에서 Azure Database for MySQL 유연한 서버를 호스트하도록 지정할 수 있는 최소의 CIDR 범위는 8개의 IP 주소를 제공하는 /29입니다. 그러나 네트워크나 서브넷의 첫 번째 주소와 마지막 주소를 개별 호스트에 할당할 수 없습니다. Azure는 호스트에 할당할 수 없는 이 두 개의 IP 주소를 포함하여 5개의 IP 주소를 Azure 네트워킹에서 내부적으로 사용할 수 있도록 남겨둡니다. 그러면 /29 CIDR 범위에는 사용할 수 있는 IP 주소가 3개 남습니다. Azure Database for MySQL 유연한 서버의 경우 프라이빗 액세스를 사용하도록 설정할 때 위임된 서브넷에서 노드당 하나의 IP 주소를 할당해야 합니다. HA가 활성화된 서버에는 두 개의 IP 주소가 필요하고, 비 HA 서버에는 하나의 IP 주소가 필요합니다. 나중에 고가용성 옵션을 사용할 수 있으므로 Azure Database for MySQL 유연한 서버 인스턴스당 두 개 이상의 IP 주소를 예약하는 것이 좋습니다. Azure Database for MySQL 유연한 서버는 Azure 프라이빗 DNS 영역과 통합되어 사용자 지정 DNS 솔루션을 추가할 필요 없이 가상 네트워크에서 도메인 이름을 관리하고 확인할 수 있는 안정적이고 안전한 DNS 서비스를 제공합니다. 가상 네트워크 링크를 만들어 프라이빗 DNS 영역을 하나 이상의 가상 네트워크에 연결할 수 있습니다.

Flexible server MySQL VNET

위의 다이어그램에서,

  1. Azure Database for MySQL 유연한 서버 인스턴스는 위임된 서브넷(가상 네트워크 VNet-1의 10.0.1.0/24)에 주입됩니다.
  2. 동일한 가상 네트워크 내의 다른 서브넷에 배포된 애플리케이션은 Azure Database for MySQL 유연한 서버 인스턴스에 직접 액세스할 수 있습니다.
  3. 다른 가상 네트워크 VNet-2에 배포된 애플리케이션은 Azure Database for MySQL 유연한 서버 인스턴스에 직접 액세스할 수 없습니다. 인스턴스에 액세스하려면 먼저 프라이빗 DNS 영역 가상 네트워크 피어링을 수행해야 합니다.

가상 네트워크 개념

Azure Database for MySQL 유연한 서버 인스턴스에서 가상 네트워크를 사용할 때는 다음과 같은 몇 가지 개념을 알아야 합니다.

  • 가상 네트워크 -

    Azure Virtual Network에는 사용자가 사용할 수 있도록 개인 IP 주소 공간이 구성되어 있습니다. Azure 가상 네트워킹에 대한 자세한 내용은 Azure Virtual Network 개요를 참조하세요.

    가상 네트워크는 Azure Database for MySQL 유연한 서버 인스턴스와 동일한 Azure 지역에 있어야 합니다.

  • 위임된 서브넷 -

    가상 네트워크에는 서브넷(하위 네트워크)이 포함됩니다. 서브넷을 사용하면 가상 네트워크를 더 작은 주소 공간으로 분할할 수 있습니다. Azure 리소스는 가상 네트워크 내의 특정 서브넷에 배포됩니다.

    Azure Database for MySQL 유연한 서버 인스턴스는 Azure Database for MySQL 유연한 서버에서만 사용하도록 위임된 서브넷에 있어야 합니다. 이렇게 위임하면 Azure Database for MySQL 유연한 서버 인스턴스에서만 해당 서브넷을 사용할 수 있습니다. 다른 Azure 리소스 유형은 위임된 서브넷에 있을 수 없습니다. 위임 속성을 Microsoft.DBforMySQL/flexibleServers로 할당하여 서브넷을 위임합니다.

  • NSG(네트워크 보안 그룹)

    네트워크 보안 그룹의 보안 규칙을 사용하면 가상 네트워크 서브넷 및 네트워크 인터페이스 내외부로 이동할 수 있는 네트워크 트래픽 유형을 필터링할 수 있습니다. 자세한 정보는 네트워크 보안 그룹 개요를 검토하세요.

  • 프라이빗 DNS 영역 통합

    Azure 프라이빗 DNS 영역 통합을 통해 프라이빗 DNS 영역이 연결된 모든 지역 내 피어링된 가상 네트워크 또는 현재 가상 네트워크 내의 프라이빗 DNS를 확인할 수 있습니다.

  • 가상 네트워크 피어링

    가상 네트워크 피어링을 사용하면 Azure에서 두 개 이상의 가상 네트워크를 원활하게 연결할 수 있습니다. 피어링된 가상 네트워크는 연결하기 위해 하나로 표시됩니다. 피어링된 가상 네트워크에 있는 가상 머신 간의 트래픽은 Microsoft 백본 인프라를 사용합니다. 피어링된 가상 네트워크의 클라이언트 애플리케이션과 Azure Database for MySQL 유연한 서버 인스턴스 간의 트래픽은 Microsoft 프라이빗 네트워크를 통해서만 라우팅되며 이 네트워크로 격리됩니다.

프라이빗 DNS 영역 사용

  • Azure Portal 또는 Azure CLI를 사용하여 가상 네트워크를 통해 Azure Database for MySQL 유연한 서버 인스턴스를 만드는 경우, 사용자가 구독 중인 서버별로 제공한 서버 이름을 사용하여 mysql.database.azure.com로 끝나는 새 프라이빗 DNS 영역이 자동으로 프로비전됩니다. Azure Database for MySQL 유연한 서버 인스턴스를 사용하여 사용자 고유의 프라이빗 DNS 영역을 설정하려는 경우에는 프라이빗 DNS 개요 설명서를 참조하세요.

  • Azure API, ARM 템플릿(Azure Resource Manager 템플릿) 또는 Terraform을 사용하는 경우 mysql.database.azure.com으로 끝나는 프라이빗 DNS 영역을 만들고, 프라이빗 액세스를 통해 Azure Database for MySQL 유연한 서버 인스턴스 구성할 때 이것을 사용하세요. 자세한 내용은 프라이빗 DNS 영역 개요를 참조하세요.

    Important

    프라이빗 DNS 영역 이름은 mysql.database.azure.com으로 끝나야 합니다. SSL을 사용하여 Azure Database for MySQL 유연한 서버에 연결하고 인증서 주체 이름으로 전체 확인(sslmode=VERIFY_IDENTITY)을 수행하는 옵션을 사용하는 경우, 연결 문자열에 <servername>.mysql.database.azure.com을 사용합니다.

Azure Portal 또는 Azure CLI의 프라이빗 액세스(가상 네트워크 통합)를 사용하여 Azure Database for MySQL 유연한 서버 인스턴스를 만드는 방법을 알아봅니다.

사용자 지정 DNS 서버와 통합

사용자 지정 DNS 서버를 사용하는 경우에는 DNS 전달자를 사용하여 Azure Database for MySQL 유연한 서버 인스턴스의 FQDN을 확인해야 합니다. 전달자 IP 주소는 168.63.129.16이어야 합니다. 사용자 지정 DNS 서버는 가상 네트워크 내에 있거나 가상 네트워크의 DNS 서버 설정을 통해 연결할 수 있어야 합니다. 자세한 정보는 DNS 서버를 사용하는 이름 확인을 참조하세요.

Important

Azure Database for MySQL 유연한 서버 인스턴스를 성공적으로 프로비전하려면 사용자 지정 DNS 서버를 사용하는 경우에도 NSG를 사용하여 AzurePlatformDNS로 향하는 DNS 트래픽을 차단해서는 안 됩니다.

프라이빗 DNS 영역 및 가상 네트워크 피어링

프라이빗 DNS 영역 설정과 가상 네트워크 피어링은 서로 독립적입니다. 프라이빗 DNS 영역을 만들고 사용하는 방법에 대한 자세한 내용은 프라이빗 DNS 영역 사용 섹션을 참조하세요.

동일한 지역 또는 다른 지역의 다른 가상 네트워크에 프로비저닝된 클라이언트에서 Azure Database for MySQL 유연한 서버 인스턴스에 연결하려면 프라이빗 DNS 영역을 가상 네트워크와 연결해야 합니다. 가상 네트워크 연결 방법 설명서를 참조하세요.

참고 항목

mysql.database.azure.com으로 끝나는 프라이빗 DNS 영역 이름만 연결할 수 있습니다.

ExpressRoute 또는 VPN을 사용하여 온-프레미스에서 가상 네트워크의 Azure Database for MySQL 유연한 서버 인스턴스에 연결

온-프레미스 네트워크에서 가상 네트워크의 Azure Database for MySQL 유연한 서버 인스턴스에 액세스해야 하는 워크로드의 경우 ExpressRoute 또는 VPN온-프레미스에 연결된 가상 네트워크가 필요합니다. 이 설정을 적용한 후, 온-프레미스 가상 네트워크에서 실행되는 클라이언트 애플리케이션(예: MySQL Workbench)에서 연결하려는 경우 Azure Database for MySQL 유연한 서버 이름 확인을 위해 DNS 전달자가 필요합니다. 이 DNS 전달자는 서버 수준 전달자를 통해 Azure 제공 DNS 서비스 168.63.129.16에 대해 DNS 쿼리를 확인해야 합니다.

올바르게 구성하려면 다음 리소스가 필요합니다.

  • 온-프레미스 네트워크
  • 프라이빗 액세스(가상 네트워크 통합)로 프로비저닝된 Azure Database for MySQL 유연한 서버 인스턴스
  • 온-프레미스에 연결된 가상 네트워크
  • Azure에 배포된 DNS 전달자 168.63.129.16

그런 다음 Azure Database for MySQL 유연한 서버 서버명(FQDN)을 사용하여 피어링된 가상 네트워크 또는 온-프레미스 네트워크의 클라이언트 애플리케이션에서 Azure Database for MySQL 유연한 서버 인스턴스에 연결할 수 있습니다.

참고 항목

Azure Database for MySQL 유연한 서버 인스턴스에 연결할 때 연결 문자열에 FQDN(정규화된 도메인 이름) <servername>.mysql.database.azure.com을(를) 사용하는 것이 좋습니다. 서버의 IP 주소는 고정적으로 유지된다는 보장이 없습니다. FQDN을 사용하면 연결 문자열을 변경하지 않아도 됩니다.

지원되지 않는 가상 네트워크 시나리오

  • 퍼블릭 엔드포인트(또는 공용 IP 또는 DNS) - 가상 네트워크에 배포된 Azure Database for MySQL 유연한 서버 인스턴스는 퍼블릭 엔드포인트를 포함할 수 없습니다.
  • Azure Database for MySQL 유연한 서버 인스턴스를 가상 네트워크 및 서브넷에 배포한 후에는 다른 가상 네트워크 또는 서브넷으로 이동할 수 없습니다. 가상 네트워크를 다른 리소스 그룹 또는 구독으로 이동할 수 없습니다.
  • 배포 후에는 프라이빗 DNS 통합 구성을 변경할 수 없습니다.
  • 서브넷에 리소스가 있으면 서브넷 크기(주소 공간)를 늘릴 수 없습니다.

다음 단계

  • Azure Portal 또는Azure CLI를 사용하여 프라이빗 액세스(가상 네트워크 통합)를 사용하도록 설정하는 방법을 알아봅니다.
  • TLS를 사용하는 방법을 알아봅니다.