Azure Database for MySQL - 유연한 서버에 대한 연결 및 네트워킹 개념

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

이 문서에서는 Azure Database for MySQL 유연한 서버 인스턴스에 대한 연결을 제어하는 개념을 소개합니다. Azure에서 서버를 안전하게 만들고 액세스할 수 있도록 Azure Database for MySQL 유연한 서버에 대한 네트워킹 개념을 자세히 알아봅니다.

Azure Database for MySQL 유연한 서버는 서버에 대한 연결을 구성하는 세 가지 방법을 지원합니다.

  • 공용 액세스 퍼블릭 엔드포인트를 통해 유연한 서버에 액세스합니다. 퍼블릭 엔드포인트는 공개적으로 확인할 수 있는 DNS 주소입니다. "허용된 IP 주소"라는 문구는 서버에 액세스할 수 있는 권한을 부여하도록 선택한 IP 범위를 나타냅니다. 이러한 권한을 방화벽 규칙이라고 합니다.

  • 프라이빗 엔드포인트 프라이빗 엔드포인트를 사용하여 가상 네트워크 VNet의 호스트가 Private Link를 통해 데이터에 안전하게 액세스할 수 있도록 할 수 있습니다.

  • 프라이빗 액세스(VNet 통합) Azure Virtual Network에 유연한 서버를 배포할 수 있습니다. Azure 가상 네트워크는 프라이빗 및 보안 네트워크 통신을 제공합니다. 가상 네트워크의 리소스는 개인 IP 주소를 통해 통신할 수 있습니다.

참고 항목

VNet 통합을 통해 공용 또는 프라이빗 액세스 권한이 있는 서버를 배포한 후에는 연결 모드를 수정할 수 없습니다. 그러나 공용 액세스 모드에서는 필요에 따라 프라이빗 엔드포인트를 사용하거나 사용하지 않도록 설정하고 필요한 경우 공용 액세스를 사용하지 않도록 설정할 수도 있습니다.

네트워킹 옵션 선택

다음 기능을 원하는 경우 공용 액세스(허용된 IP 주소) 및 프라이빗 엔드포인트 메서드를 선택합니다.

  • 가상 네트워크 지원 없이 Azure 리소스에서 커넥트
  • VPN 또는 ExpressRoute로 연결되지 않은 Azure 외부의 리소스에서 커넥트
  • 유연한 서버는 퍼블릭 엔드포인트를 통해 액세스할 수 있으며 권한 있는 인터넷 리소스를 통해 액세스할 수 있습니다. 필요한 경우 공용 액세스를 사용하지 않도록 설정할 수 있습니다.
  • VNet(가상 네트워크)의 호스트에서 서버에 액세스하도록 프라이빗 엔드포인트를 구성하는 기능

다음 기능을 원하는 경우 프라이빗 액세스(VNet 통합)를 선택합니다.

  • 프라이빗 엔드포인트를 구성할 필요 없이 동일한 가상 네트워크 또는 피어된 가상 네트워크 내의 Azure 리소스에서 유연한 서버로 커넥트
  • VPN 또는 ExpressRoute를 사용하여 비 Azure 리소스에서 유연한 서버에 연결
  • 퍼블릭 엔드포인트 없음

다음 특징은 프라이빗 액세스 또는 퍼블릭 액세스 옵션을 사용하도록 선택하는 경우에 적용됩니다.

  • 허용된 IP 주소에서 커넥트 유효한 자격 증명을 사용하여 Azure Database for MySQL 유연한 서버 인스턴스에 인증해야 합니다.
  • 네트워크 트래픽에 연결 암호화를 사용할 수 있습니다.
  • 서버에 FQDN(정규화된 도메인 이름)이 있습니다. 연결 문자열 호스트 이름 속성의 IP 주소 대신 fqdn을 사용하는 것이 좋습니다.
  • 두 옵션 모두 데이터베이스 수준 또는 테이블 수준이 아닌 서버 수준에서 액세스를 제어합니다. MySQL의 역할 속성을 사용하여 데이터베이스, 테이블 및 기타 개체 액세스를 제어합니다.

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

  • 퍼블릭 엔드포인트(또는 공용 IP 또는 DNS): 가상 네트워크에 배포된 유연한 서버는 퍼블릭 엔드포인트를 포함할 수 없습니다.
  • 유연한 서버가 가상 네트워크 및 서브넷에 배포된 후에는 다른 가상 네트워크 또는 서브넷으로 이동할 수 없습니다.
  • 유연한 서버를 배포한 후에는 유연한 서버가 사용하는 가상 네트워크를 다른 리소스 그룹 또는 구독으로 이동할 수 없습니다.
  • 서브넷에 리소스가 있으면 서브넷 크기(주소 공간)를 늘릴 수 없습니다.
  • 서버를 만든 후에는 공용에서 프라이빗 액세스로 변경할 수 없습니다. 지정 시간 복원을 사용하는 것이 좋습니다.

참고 항목

사용자 지정 DNS 서버를 사용하는 경우 DNS 전달자를 사용하여 Azure Database for MySQL 유연한 서버 인스턴스의 FQDN을 확인해야 합니다. 자세한 내용은 DNS 서버를 사용하는 이름 확인을 참조하세요.

Hostname

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

FQDN을 호스트 이름으로 사용하는 예제는 hostname = servername.mysql.database.azure.com. 가능한 경우 호스트 이름 = 10.0.0.4(개인 주소) 또는 호스트 이름 = 40.2.45.67(공용 주소)을 사용하지 마세요.

TLS 및 SSL

Azure Database for MySQL 유연한 서버는 TLS(전송 계층 보안) 암호화를 사용하여 SSL(Secure Sockets Layer)을 사용하여 클라이언트 애플리케이션을 Azure Database for MySQL 유연한 서버 인스턴스에 연결할 수 있도록 지원합니다. TLS는 데이터베이스 서버와 클라이언트 애플리케이션 간에 암호화된 네트워크 연결을 보장하여 규정 준수 요구 사항을 준수할 수 있도록 하는 업계 표준 프로토콜입니다.

Azure Database for MySQL 유연한 서버는 기본적으로 TLS 1.2(전송 계층 보안)를 사용하여 암호화된 연결을 지원하며, TLS 1.0 및 TLS 1.1로 들어오는 모든 연결은 기본적으로 거부됩니다. 유연한 서버에서 암호화된 연결 적용 또는 TLS 버전 구성을 구성하고 변경할 수 있습니다.

다음은 유연한 서버에 사용할 수 있는 SSL 및 TLS 설정의 다양한 구성입니다.

시나리오 서버 매개 변수 설정 설명
SSL 사용 안 함(암호화된 연결) require_secure_transport = OFF 레거시 애플리케이션이 Azure Database for MySQL 유연한 서버 인스턴스에 대한 암호화된 연결을 지원하지 않는 경우 require_secure_transport=OFF를 설정하여 유연한 서버에 대한 암호화된 연결 적용을 사용하지 않도록 설정할 수 있습니다.
TLS 버전 1.2 미만으로 SSL 적용 require_secure_transport = ON 및 tls_version = TLS 1.0 또는 TLS 1.1 레거시 애플리케이션이 암호화된 연결을 지원하지만 TLS 버전 < 1.2가 필요한 경우 암호화된 연결을 사용하도록 설정할 수 있지만 애플리케이션에서 지원하는 TLS 버전(v1.0 또는 v1.1)과의 연결을 허용하도록 유연한 서버를 구성할 수 있습니다.
TLS 버전 = 1.2(기본 구성)를 사용하여 SSL 적용 require_secure_transport = ON 및 tls_version = TLS 1.2 유연한 서버에 권장되는 기본 구성입니다.
TLS 버전 = 1.3을 사용하여 SSL 적용(MySQL v8.0 이상에서 지원됨) require_secure_transport = ON 및 tls_version = TLS 1.3 이는 새 애플리케이션 개발에 유용하고 권장됩니다.

참고 항목

유연한 서버의 SSL 암호 변경은 지원되지 않습니다. FIPS 암호 그룹은 tls_version TLS 버전 1.2로 설정된 경우 기본적으로 적용됩니다. 버전 1.2가 아닌 TLS 버전의 경우 SSL 암호화는 MySQL 커뮤니티 설치와 함께 제공되는 기본 설정으로 설정됩니다.

자세한 내용은 SSL/TLS를 사용하여 연결하는 방법을 검토합니다.

다음 단계