CLI를 사용하여 Azure Database for PostgreSQL - 단일 서버에 대한 프라이빗 링크 만들기 및 관리

적용 대상: Azure Database for PostgreSQL - 단일 서버

Important

Azure Database for PostgreSQL - 단일 서버는 곧 사용 중지됩니다. Azure Database for PostgreSQL - 유연한 서버로 업그레이드하는 것이 좋습니다. Azure Database for PostgreSQL - 유연한 서버로 마이그레이션하는 방법에 대한 자세한 내용은 Azure Database for PostgreSQL 단일 서버에 대한 새로운 소식을 참조하세요.

프라이빗 엔드포인트는 Azure에서 프라이빗 링크를 만드는 데 사용되는 기본 구성 요소입니다. 프라이빗 엔드포인트는 VM(Virtual Machines) 같은 Azure 리소스가 프라이빗 링크 리소스와 비공개로 통신할 수 있게 해줍니다. 이 문서에서는 Azure CLI를 사용하여 Azure 프라이빗 엔드포인트가 있는 Azure Virtual Network 및 Azure Database for PostgreSQL 서버에서 VM을 만드는 방법을 알아봅니다.

참고 항목

프라이빗 링크 기능은 범용 또는 메모리 최적화 가격 책정 계층의 Azure Database for PostgreSQL 서버에만 사용할 수 있습니다. 데이터베이스 서버가 이러한 가격 책정 계층 중 하나에 포함되어 있는지 확인하세요.

필수 조건

이 방법 가이드를 단계별로 실행하려면 다음이 필요합니다.

Azure Cloud Shell

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.

옵션 예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. Azure Cloud Shell에 대한 사용 예제를 보여 주는 스크린샷
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. Azure Cloud Shell을 시작하는 단추입니다.
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Azure Portal의 Cloud Shell 단추를 보여 주는 스크린샷

Azure Cloud Shell을 사용하려면:

  1. Cloud Shell을 시작합니다.

  2. 코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.

  3. Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.

  4. Enter를 선택하여 코드 또는 명령을 실행합니다.

대신 Azure CLI를 로컬에 설치하고 사용하려는 경우 이 빠른 시작을 진행하려면 Azure CLI 버전 2.0.28 이상을 사용해야 합니다. 설치된 버전을 확인하려면 az --version을 실행합니다. 설치 또는 업그레이드 정보는 Azure CLI 설치를 참조하세요.

리소스 그룹 만들기

리소스를 만들려면 먼저 Virtual Network를 호스팅할 리소스 그룹을 만들어야 합니다. az group create를 사용하여 리소스 그룹을 만듭니다. 이 예제에서는 westeurope 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create --name myResourceGroup --location westeurope

Virtual Network 만들기

az network vnet create를 사용하여 Virtual Network를 만듭니다. 다음 예제에서는 mySubnet이라는 하나의 서브넷이 있는 myVirtualNetwork라는 기본 Virtual Network를 만듭니다.

az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet

서브넷 프라이빗 엔드포인트 정책 사용 안 함

Azure는 리소스를 가상 네트워크 내의 서브넷에 배포하므로 프라이빗 엔드포인트 네트워크 정책을 사용하지 않도록 서브넷을 만들거나 업데이트해야 합니다. az network vnet subnet update를 사용하여 mySubnet이라는 서브넷 구성을 업데이트합니다.

az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true

VM 만들기

az vm create를 사용하여 VM을 만듭니다. 메시지가 표시되면 VM에 대한 로그인 자격 증명으로 사용할 암호를 제공합니다. 다음 예제에서는 myVm이라는 VM을 만듭니다.

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

VM의 공용 IP 주소를 적어둡니다. 이 주소를 사용하여 다음 단계에서 인터넷을 통해 VM에 연결합니다.

Azure Database for PostgreSQL - 단일 서버 만들기

az postgres server create 명령을 사용하여 Azure Database for PostgreSQL를 만듭니다. PostgreSQL Server의 이름은 Azure 전체에서 고유해야 하므로 자리 표시자 값을 위에서 사용한 고유의 값으로 바꿉니다.

# Create a server in the resource group

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

프라이빗 엔드포인트 만들기

Virtual Network에서 PostgreSQL 서버의 프라이빗 엔드포인트를 만듭니다.

az network private-endpoint create \  
    --name myPrivateEndpoint \  
    --resource-group myResourceGroup \  
    --vnet-name myVirtualNetwork  \  
    --subnet mySubnet \  
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforPostgreSQL/servers" --query "id" -o tsv) \    
    --group-id postgresqlServer \  
    --connection-name myConnection  

프라이빗 DNS 영역 구성

PostgreSQL 서버 도메인의 프라이빗 DNS 영역을 만들고, Virtual Network와의 연결 링크를 만듭니다.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.postgres.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.postgres.database.azure.com"\ 
   --name MyDNSLink \ 
   --virtual-network myVirtualNetwork \ 
   --registration-enabled false

#Query for the network interface ID  

networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)


az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for PostgreSQL name

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


#Create DNS records 

az network private-dns record-set a create --name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup  
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

참고 항목

고객 DNS 설정의 FQDN이 구성된 개인 IP로 확인되지 않습니다. 여기에 표시된 대로 구성된 FQDN의 DNS 영역을 설정해야 합니다.

참고 항목

Azure Database for PostgreSQL 및 VNet 서브넷이 서로 다른 구독에 있는 경우도 있습니다. 이러한 경우에는 다음과 같은 구성을 확인해야 합니다.

  • 두 구독 모두에 Microsoft.DBforPostgreSQL 리소스 공급자를 등록해야 합니다. 자세한 내용은 리소스 공급자를 참조하세요.

인터넷에서 VM에 연결

다음과 같이 인터넷에서 myVm VM에 연결합니다.

  1. 포털의 검색 창에서 myVm을 입력합니다.

  2. 연결 단추를 선택합니다. 연결 단추를 선택하면 가상 머신에 연결이 열립니다.

  3. RDP 파일 다운로드를 선택합니다. Azure에서 원격 데스크톱 프로토콜(.rdp) 파일을 만들고, 컴퓨터에 다운로드합니다.

  4. downloaded.rdp 파일을 엽니다.

    1. 메시지가 표시되면 연결을 선택합니다.

    2. VM을 만들 때 지정한 사용자 이름과 암호를 입력합니다.

      참고 항목

      추가 선택 사항>다른 계정 사용을 선택하여 VM을 만들 때 입력한 자격 증명을 지정해야 할 수도 있습니다.

  5. 확인을 선택합니다.

  6. 로그인 프로세스 중에 인증서 경고가 나타날 수 있습니다. 인증서 경고가 표시되면 또는 계속을 선택합니다.

  7. VM 데스크톱이 나타나면 최소화하여 로컬 데스크톱으로 돌아갑니다.

VM에서 비공개로 PostgreSQL 서버에 액세스

  1. myVM의 원격 데스크톱에서 PowerShell을 엽니다.

  2. nslookup mydemopostgresserver.privatelink.postgres.database.azure.com를 입력합니다.

    다음과 유사한 메시지가 표시됩니다.

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. 사용 가능한 모든 클라이언트를 사용하여 PostgreSQL 서버의 프라이빗 링크 연결을 테스트합니다. 다음 예제에서는 Azure Data Studio를 사용하여 작업을 수행합니다.

  4. 새 연결에서 다음 정보를 입력하거나 선택합니다.

    설정
    서버 유형 PostgreSQL을 선택합니다.
    서버 이름 mydemopostgresserver.privatelink.postgres.database.azure.com 선택
    User name PostgreSQL 서버를 만드는 동안 제공된 사용자 이름을 username@servername으로 입력합니다.
    암호 PostgreSQL 서버 생성 중에 제공한 암호를 입력합니다.
    SSL 필수를 선택합니다.
  5. 연결을 선택합니다.

  6. 왼쪽 메뉴에서 데이터베이스를 찾아봅니다.

  7. (선택 사항) postgreSQL 서버에서 정보를 만들거나 쿼리합니다.

  8. myVm에 대한 원격 데스크톱 연결을 닫습니다.

리소스 정리

더 이상 필요하지 않은 경우 az group delete를 사용하여 리소스 그룹 및 해당 그룹에 포함된 모든 리소스를 제거할 수 있습니다.

az group delete --name myResourceGroup --yes 

다음 단계