다음을 통해 공유


Azure Database for PostgreSQL - Private Link를 통한 유연한 서버 네트워킹

Azure Private Link를 사용하면 Azure Database for PostgreSQL 유연한 서버에 대한 프라이빗 엔드포인트를 만들어 가상 네트워크 내부로 가져올 수 있습니다. 이 기능은 가상 네트워크 통합에서 제공하는 기존 네트워킹 기능에 추가로 도입되었으며, 현재 Azure Database for PostgreSQL - 유연한 서버에서 일반 공급되고 있습니다.

Private Link를 사용하면 가상 네트워크와 서비스 간의 트래픽이 Microsoft 백본 네트워크를 통해 이동합니다. 서비스를 공용 인터넷에 더 이상 노출할 필요가 없습니다. 가상 네트워크에 자체 프라이빗 링크 서비스를 만들어서 고객에게 제공할 수도 있습니다. 프라이빗 링크를 사용한 설치 및 소비는 Azure PaaS, 고객 소유 및 공유 파트너 서비스에서 일관적입니다.

참고 항목

프라이빗 링크는 공용 액세스 네트워킹이 있는 서버에만 사용할 수 있습니다. 프라이빗 액세스(가상 네트워크 통합)가 있는 서버에 대해서는 만들 수 없습니다.

프라이빗 링크는 이 기능이 릴리스된 후에 만든 서버에 대해서만 구성할 수 있습니다. 이 기능의 릴리스 이전에 존재했던 모든 서버는 프라이빗 링크를 설정할 수 없습니다.

Private Link는 두 가지 Azure 리소스 종류를 통해 사용자에게 노출됩니다.

  • 프라이빗 엔드포인트(Microsoft.Network/PrivateEndpoints)
  • Private Link 서비스(Microsoft.Network/PrivateLinkServices)

프라이빗 엔드포인트

프라이빗 엔드포인트는 리소스에 네트워크 인터페이스를 추가하여 가상 네트워크에서 할당된 개인 IP 주소를 리소스에 제공합니다. 적용한 후에는 가상 네트워크를 통해서만 이 리소스와 통신할 수 있습니다. 프라이빗 링크 기능을 지원하는 PaaS 서비스의 목록을 보려면 프라이빗 링크 설명서를 검토하세요. 프라이빗 엔드포인트는 특정 가상 네트워크 및 서브넷 내의 개인 IP 주소입니다.

동일한 공용 서비스 인스턴스는 주소 공간이 겹치는 경우에도 서로 다른 가상 네트워크 또는 서브넷의 여러 프라이빗 엔드포인트에서 참조할 수 있습니다.

프라이빗 링크는 다음과 같은 이점이 있습니다.

  • Azure 플랫폼의 프라이빗 액세스 서비스: 프라이빗 엔드포인트를 사용하여 가상 네트워크를 Azure에서 애플리케이션 구성 요소로 사용할 수 있는 모든 서비스에 연결합니다. 서비스 공급자는 자체 가상 네트워크에서 서비스를 렌더링할 수 있습니다. 소비자는 로컬 가상 네트워크에서 해당 서비스에 액세스할 수 있습니다. Private Link 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다.
  • 온-프레미스 및 피어링된 네트워크: 프라이빗 엔드포인트를 사용하여 온-프레미스에서 Azure ExpressRoute 개인 피어링, VPN(가상 사설망) 터널 및 피어링된 가상 네트워크를 통해 Azure에서 실행되는 서비스에 액세스할 수 있습니다. 서비스에 연결하기 위해 ExpressRoute Microsoft 피어링을 구성하거나 인터넷을 트래버스할 필요가 없습니다. Private Link는 워크로드를 Azure로 안전하게 마이그레이션하는 방법을 제공합니다.
  • 데이터 유출 방지: 프라이빗 엔드포인트는 전체 서비스가 아닌 PaaS 리소스의 인스턴스에 매핑됩니다. 소비자는 특정 리소스에만 연결할 수 있습니다. 서비스의 다른 리소스에 대한 액세스는 차단됩니다. 이 메커니즘은 데이터 유출 위험을 방지합니다.
  • Global Reach: 다른 지역에서 실행되는 서비스에 비공개로 연결: 소비자의 가상 네트워크는 지역 A에 있을 때, 이는 지역 B의 프라이빗 링크 뒤로 서비스에 연결할 수 있습니다.

클라이언트는 다음에서 프라이빗 엔드포인트로 연결할 수 있습니다.

클라이언트는 또한 ExpressRoute, 프라이빗 피어링 또는 VPN 터널링을 사용하여 온-프레미스에서도 연결할 수 있습니다. 다음의 간소화된 다이어그램은 일반적인 사용 사례를 보여 줍니다.

프라이빗 링크가 프라이빗 엔드포인트에서 작동하는 방식을 보여 주는 다이어그램.

Azure Database for PostgreSQL - 유연한 서버의 프라이빗 엔드포인트에 대한 교차 기능 가용성 행렬입니다.

기능 가용성 주의
고가용성 설계된 대로 작동.
읽기 복제본 설계된 대로 작동.
가상 엔드포인트를 사용하는 읽기 복제본 설계된 대로 작동.
지정 시간 복원 설계된 대로 작동.
방화벽 규칙을 사용하여 공용/인터넷 액세스도 허용 설계된 대로 작동.
주 버전 업그레이드 설계된 대로 작동.
Microsoft Entra 인증 설계된 대로 작동.
PGBouncer를 사용한 연결 풀링 설계된 대로 작동.
프라이빗 엔드포인트 DNS 디자인 및 문서화된 대로 작동합니다.
고객 관리 키로 암호화 설계된 대로 작동.

피어링된 가상 네트워크의 Azure VM에서 연결

피어링된 가상 네트워크의 Azure 가상 머신(VM)에서 Azure Database for PostgreSQL - 유연한 서버에 대한 연결을 설정하도록 가상 네트워크 피어링을 구성합니다.

네트워크 간 환경의 Azure VM에서 연결

다른 지역 또는 구독의 Azure VM에서 Azure Database for PostgreSQL 유연한 서버에 대한 연결을 설정하도록 네트워크 간 VPN Gateway 연결을 구성합니다.

VPN을 통해 온-프레미스 환경에서 연결

온-프레미스 환경에서 Azure Database for PostgreSQL 유연한 서버로의 연결을 설정하려면 다음 옵션 중 하나를 선택하고 구현합니다.

프라이빗 엔드포인트를 사용하는 경우 트래픽은 프라이빗 링크 리소스로 보호됩니다. 플랫폼은 네트워크 연결의 유효성을 검사하여 지정된 프라이빗 링크 리소스에 도달하는 연결만 허용합니다. 동일한 Azure 서비스 내에서 더 많은 하위 리소스에 액세스하려면 해당 대상이 있는 더 많은 프라이빗 엔드포인트가 필요합니다. 예를 들어 Azure Storage 경우 파일 및 blob 하위 리소스에 액세스하려면 별도의 프라이빗 엔드포인트가 필요합니다.

프라이빗 엔드포인트는 Azure 서비스에 비공개로 액세스할 수 있는 IP 주소를 제공하지만 공용 네트워크 액세스를 반드시 제한하지는 않습니다. 그러나 다른 모든 Azure 서비스에는 또 다른 액세스 제어가 필요합니다. 이러한 컨트롤은 리소스에 추가 네트워크 보안 계층을 제공하여 프라이빗 링크 리소스와 연결된 Azure 서비스에 대한 액세스를 방지하는 데 도움이 되는 보호를 제공합니다.

프라이빗 엔드포인트는 네트워크 정책을 지원합니다. 네트워크 정책을 사용하면 NSG(네트워크 보안 그룹), UDR(사용자 정의 경로) 및 ASG(애플리케이션 보안 그룹)를 지원할 수 있습니다. 프라이빗 엔드포인트에 대한 네트워크 정책을 사용하도록 설정하는 방법에 대한 자세한 내용은 프라이빗 엔드포인트에 대한 네트워크 정책 관리를 참조하세요. 프라이빗 엔드포인트에서 ASG를 사용하려면 프라이빗 엔드포인트를 사용하여 애플리케이션 보안 그룹 구성을 참조하세요.

프라이빗 엔드포인트를 사용하는 경우 동일한 Azure 서비스에 연결해야 하지만 프라이빗 엔드포인트 IP 주소를 사용해야 합니다. 친밀한 엔드포인트 연결에는 개인 IP 주소를 리소스 이름으로 확인하기 위해 별도의 DNS(Domain Name System) 설정이 필요합니다.

프라이빗 DNS 영역은 사용자 지정 DNS 해결 방법 없이 가상 네트워크 내에서 도메인 이름 확인을 제공합니다. 프라이빗 DNS 영역을 각 가상 네트워크에 연결하여 해당 네트워크에 DNS 서비스를 제공합니다.

프라이빗 DNS 영역은 각 Azure 서비스에 대해 별도의 DNS 영역 이름을 제공합니다. 예를 들어, 이전 이미지에서 스토리지 계정 Blob service에 대한 프라이빗 DNS 영역을 구성한 경우 DNS 영역 이름은 privatelink.blob.core.windows.net 입니다. 모든 Azure 서비스에 대한 프라이빗 DNS 영역 이름을 자세히 알아보려면 Microsoft 설명서를 검토합니다.

참고 항목

프라이빗 엔드포인트 프라이빗 DNS 영역 구성은 권장되는 명명 체계 privatelink.postgres.database.azure.com 를 사용하는 경우에만 자동으로 생성됩니다. (가상 네트워크가 아닌)새로 프로비전된 공용 액세스 서버에서 DNS 레이아웃이 변경됩니다. 이제 서버의 FQDN은 servername.postgres.database.azure.com 형식의 CNAME 레코드가 되며 이는 다음 형식 중 하나의 A 레코드를 가리킵니다.

  1. 서버에 기본 프라이빗 DNS 영역이 연결된 프라이빗 엔드포인트가 있는 경우 A 레코드는 다음과 같은 server_name.privatelink.postgres.database.azure.com 형식입니다.
  2. 서버에 프라이빗 엔드포인트가 없는 경우 A 레코드는 server_name.rs-<15 semi-random bytes>.postgres.database.azure.com 형식입니다.

Azure 및 온-프레미스 리소스용 하이브리드 DNS

DNS는 전체 랜딩 존 아키텍처에서 중요한 디자인 항목입니다. 기존에 투자한 DNS 자산을 사용하려는 조직도 있을 것이고, 다른 조직은 모든 DNS 요구 사항에 대해 원시 Azure 기능을 채택할 수도 있습니다.

프레미스 간 이름 확인을 위해 Azure 프라이빗 DNS 영역과 함께 Azure DNS Private Resolver 를 사용할 수 있습니다. DNS Private Resolver는 DNS 요청을 다른 DNS 서버로 전달할 수 있으며 외부 DNS 서버에서 요청을 전달하는 데 사용할 수 있는 IP 주소도 제공합니다. 따라서 외부 온-프레미스 DNS 서버는 프라이빗 DNS 영역에 있는 이름을 확인할 수 있습니다.

온-프레미스 DNS 전달자를 통해 DNS Private Resolver를 사용하여 Azure DNS로 DNS 트래픽을 전달하는 방법에 대한 자세한 내용은 다음을 참조하세요.

설명된 솔루션은 Azure.Microsoft 아키텍처에서 리소스를 확인할 수 있도록 이미 DNS 솔루션이 있는 온-프레미스 네트워크를 확장합니다.

프라이빗 DNS 영역은 허브 가상 네트워크가 배포하는 동일한 Azure 구독에서 일반적으로 중앙에서 호스트됩니다. 이 중앙 호스팅 방법은 프레미스 간 DNS 이름 확인 및 Microsoft Entra와 같은 중앙 DNS 확인의 기타 요구 사항에 따라 좌우됩니다. 대부분의 경우 네트워킹 및 ID 관리자만 영역에서 DNS 레코드를 관리할 수 있는 권한이 있습니다.

이러한 아키텍처에서는 다음 구성 요소가 구성됩니다.

  • 온-프레미스 DNS 서버에는 허브 가상 네트워크에서 호스트되는 프라이빗 DNS 확인자를 가리키는 각 프라이빗 엔드포인트 퍼블릭 DNS 영역에 대해 구성된 조건부 전달자가 있습니다.
  • 허브 가상 네트워크에서 호스트되는 프라이빗 DNS 확인자는 Azure 제공 DNS(168.63.129.16)를 전달자로 사용합니다.
  • 허브 가상 네트워크는 Azure 서비스의 프라이빗 DNS 영역 이름(예: Azure Database for PostgreSQL - 유연한 서버의 경우 privatelink.postgres.database.azure.com)에 연결되어야 합니다.
  • 모든 Azure 가상 네트워크는 허브 가상 네트워크에서 호스트되는 프라이빗 DNS 확인자를 사용합니다.
  • 프라이빗 DNS 확인자는 단순한 전달자(예: Microsoft Entra 도메인 이름)이기에 고객 회사 도메인을 신뢰할 수 없으므로, 해당 영역에 대해 신뢰할 수 있는, Azure에 배포된 온-프레미스 DNS 서버 또는 DNS 서버를 가리키는 고객 회사 도메인에 대한 아웃바운드 엔드포인트 전달자가 있어야 합니다.

기본적으로 가상 네트워크의 서브넷에 대한 네트워크 정책은 사용하지 않도록 설정되어 있습니다. UDR 및 NSG 지원과 같은 네트워크 정책을 활용하려면 서브넷에 대해 네트워크 정책 지원을 사용하도록 설정해야 합니다. 이 설정은 서브넷 내의 프라이빗 엔드포인트에만 적용됩니다. 이 설정은 서브넷 내의 모든 프라이빗 엔드포인트에 영향을 줍니다. 서브넷의 다른 리소스에 대한 액세스는 NSG의 보안 규칙을 기반으로 제어됩니다.

NSG에 대해서만, UDR에 대해서만, 또는 둘 다에 대해 네트워크 정책을 사용하도록 설정할 수 있습니다. 자세한 내용은 프라이빗 엔드포인트에 대한 네트워크 정책 관리를 참조하세요.

NSG 및 프라이빗 엔드포인트에 대한 제한 사항은 프라이빗 엔드포인트란?에 나열되어 있습니다.

Important

데이터 유출 방지: 프라이빗 엔드포인트는 전체 서비스가 아닌 PaaS 리소스 인스턴스에 매핑됩니다. 소비자는 특정 리소스에만 연결할 수 있습니다. 서비스의 다른 리소스에 대한 액세스는 차단됩니다. 이 메커니즘은 데이터 유출 위험에 대한 기본적인 보호를 제공합니다.

Private Link를 방화벽 규칙과 함께 사용하면 다음과 같은 상황 및 결과가 발생할 수 있습니다.

  • 방화벽 규칙을 구성하지 않으면 기본적으로 트래픽이 Azure Database for PostgreSQL 유연한 서버에 액세스할 수 없습니다.

  • 공용 트래픽 또는 서비스 엔드포인트를 구성하고 프라이빗 엔드포인트를 만들면 해당 유형의 방화벽 규칙이 다양한 유형의 수신 트래픽 유형에 권한을 부여합니다.

  • 공용 트래픽 또는 서비스 엔드포인트를 구성하지 않고 프라이빗 엔드포인트를 만드는 경우 Azure Database for PostgreSQL 유연한 서버는 프라이빗 엔드포인트를 통해서만 액세스할 수 있습니다. 공용 트래픽 또는 서비스 엔드포인트를 구성하지 않으면 승인된 모든 프라이빗 엔드포인트가 거부되거나 삭제된 후에는 트래픽이 Azure Database for PostgreSQL - 유연한 서버에 액세스할 수 없습니다.

프라이빗 엔드포인트 기반 네트워킹 관련 연결 문제 해결

프라이빗 엔드포인트 기반 네트워킹을 사용하는 동안 연결 문제가 있다면 다음 영역을 확인하세요.

  • IP 주소 할당 확인: 프라이빗 엔드포인트에 올바른 IP 주소가 할당되어 있고 다른 리소스와 충돌하지 않는지 확인합니다. 프라이빗 엔드포인트 및 IP에 대한 자세한 내용은 Azure 프라이빗 엔드포인트 관리를 참조하세요.
  • NSG 확인: 프라이빗 엔드포인트의 서브넷에 대한 NSG 규칙을 검토하여 필요한 트래픽이 허용되는지와 충돌하는 규칙이 없는지 확인합니다. NSG에 대한 자세한 내용은 네트워크 보안 그룹을 참조하세요.
  • 경로 테이블 구성 유효성 검사: 프라이빗 엔드포인트의 서브넷과 연결된 경로 테이블과 연관된 리소스가 적절한 경로로 올바르게 구성되었는지 확인합니다.
  • 네트워크 모니터링 및 진단 사용: Azure Network Watcher를 사용하여 연결 모니터 또는 패킷 캡처와 같은 도구를 사용해 네트워크 트래픽을 모니터링하고 진단합니다. 네트워크 진단에 대한 자세한 내용은 Azure Network Watcher란?을 참조하세요.

프라이빗 엔드포인트 문제 해결에 대한 자세한 내용은 Azure 프라이빗 엔드포인트 연결 문제 해결에서도 사용할 수 있습니다.

프라이빗 엔드포인트 기반 네트워킹을 통한 DNS 확인 문제 해결

프라이빗 엔드포인트 기반 네트워킹을 사용하는 동안 DNS 확인 문제가 있다면 다음 영역을 확인하세요.

  • DNS 확인 유효성 검사: 프라이빗 엔드포인트에서 사용하는 DNS 서버 또는 서비스와 연결된 리소스가 제대로 작동하는지 확인합니다. 프라이빗 엔드포인트의 DNS 설정이 정확한지 확인합니다. 프라이빗 엔드포인트 및 DNS 영역 설정에 관한 자세한 내용은 Azure 프라이빗 엔드포인트 프라이빗 DNS 영역 값을 참조하세요.
  • DNS 캐시 지우기: 프라이빗 엔드포인트 또는 클라이언트 컴퓨터에서 DNS 캐시를 지워 최신 DNS 정보를 검색하고 일관되지 않은 오류를 방지합니다.
  • DNS 로그 분석: DNS 로그에서 DNS 쿼리 오류, 서버 오류 또는 시간 제한과 같은 비정상적인 패턴이나 오류 메시지를 검토합니다. DNS 메트릭에 대한 자세한 내용은 Azure DNS 메트릭 및 경고를 참조하세요.

Azure Portal 또는 Azure CLI에서 프라이빗 액세스(VNet 통합) 옵션을 사용하여 Azure Database for PostgreSQL 유연한 서버를 만드는 방법을 알아봅니다.