다음을 통해 공유


가상 네트워크 통합을 이용하여 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 영역을 하나 이상의 가상 네트워크에 연결할 수 있습니다.

유연한 서버 MySQL VNET의 스크린샷.

위의 다이어그램에서,

  1. Azure Databases 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 유연한 서버 인스턴스에서 Virtual Network를 사용할 때 알아야 할 몇 가지 개념은 다음과 같습니다.

  • 가상 네트워크 -

    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 유연한 서버 인스턴스를 만드는 경우 제공된 서버 이름을 사용하여 구독의 서버별로 새 프라이빗 DNS 영역이 자동으로 mysql.database.azure.com 프로비전됩니다. 또는 Azure Database for MySQL 유연한 서버 인스턴스를 사용하여 고유한 프라이빗 DNS 영역을 설정하려는 경우 프라이빗 DNS 개요 설명서를 참조하세요.

  • Azure API, ARM 템플릿(Azure Resource Manager 템플릿) 또는 Terraform을 사용하는 경우 프라이빗 액세스 권한이 있는 Azure Database for MySQL 유연한 서버 인스턴스를 구성하는 동안 끝나는 mysql.database.azure.com 프라이빗 DNS 영역을 만들고 사용합니다. 자세한 내용은 프라이빗 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

사용자 지정 DNS 서버를 사용하는 경우에도 Azure Database for MySQL 유연한 서버 인스턴스를 성공적으로 프로비전하려면 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 Database for MySQL 유연한 서버는 프라이빗 링크를 사용하는 옵션을 사용하여 프라이빗 액세스(가상 네트워크 통합)에서 공용 액세스로 전환할 수 있습니다. 이 기능을 사용하면 서버 이름을 변경하거나 데이터를 마이그레이션할 필요 없이 서버가 통합된 가상 네트워크에서 Private Link/공용 인프라로 원활하게 전환할 수 있어 고객의 프로세스가 간소화됩니다.

참고 항목

일단 전환이 이루어지면 되돌릴 수 없습니다. 비 HA 서버의 경우 약 5~10분, HA 지원 서버의 경우 약 20분의 가동 중지 시간이 포함되어 전환이 이루어집니다.

이 프로세스는 오프라인 모드에서 수행되며 다음 두 단계로 구성됩니다.

  1. 가상 네트워크 인프라에서 서버를 분리합니다.
  2. Private Link를 설정하거나 공용 액세스를 사용하도록 설정합니다.