빠른 시작: Azure 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 Cloud Shell에서 Azure CLI 명령을 사용하여 5분 안에 단일 Azure Database for PostgreSQL 서버를 만드는 방법을 보여줍니다.

더 단순한 az postgres up Azure CLI 명령을 사용하는 것이 좋습니다. 빠른 시작을 사용해 보세요.

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

사전 요구 사항

Azure Cloud Shell 시작

Azure Cloud Shell은 이 문서의 단계를 실행하는 데 무료로 사용할 수 있는 대화형 셸입니다. 공용 Azure 도구가 사전 설치되어 계정에서 사용하도록 구성되어 있습니다.

Cloud Shell을 열려면 코드 블록의 오른쪽 위 모서리에 있는 사용해 보세요를 선택하기만 하면 됩니다. 또한 https://shell.azure.com 로 이동하여 별도의 브라우저 탭에서 Cloud Shell을 시작할 수 있습니다.

Cloud Shell이 열리면 환경에 대해 Bash가 선택되어 있는지 확인합니다. 후속 세션은 Bash 환경에서 Azure CLI를 사용합니다. 복사를 선택하여 코드 블록을 복사하고 Cloud Shell에 붙여넣고 Enter 키를 눌러 실행합니다.

Azure에 로그인

Cloud Shell은 로그인한 초기 계정에서 자동으로 인증됩니다. 다음 스크립트를 통해 다른 구독을 사용하여 로그인하고 <Subscription ID>를 Azure 구독 ID로 바꿉니다. Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

자세한 내용은 활성 구독 설정 또는 대화형으로 로그인을 참조하세요.

매개 변수 값 설정

다음 값은 데이터베이스와 필요한 리소스를 만드는 후속 명령에 사용됩니다. 서버 이름은 모든 Azure에서 전역적으로 고유해야 하므로 $RANDOM 함수를 사용하여 서버 이름을 만듭니다.

환경에 맞게 위치를 변경합니다. 0.0.0.0을 특정 환경과 일치하도록 IP 주소 범위로 바꿉니다. 사용 중인 컴퓨터의 공용 IP 주소를 사용하여 서버에 대한 액세스를 사용자의 IP 주소로만 제한합니다.

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."

리소스 그룹 만들기

az group create 명령을 사용하여 리소스 그룹을 만듭니다. Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다. 다음 예제에서는 eastus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

서버 만들기

az postgres server create 명령으로 서버를 만듭니다.

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

참고 항목

  • 서버 이름은 소문자, 숫자 및 하이픈(-) 문자만 포함할 수 있으며, 3~63자를 포함해야 합니다. 자세한 내용은 Azure Database for PostgreSQL 명명 규칙을 참조하세요.
  • 관리자 사용자 이름은 azure_superuser, admin, administrator, root, guest 또는 public일 수 없습니다.
  • 암호에는 영어 대문자, 영어 소문자, 숫자 및 영숫자가 아닌 문자의 세 범주에 해당하는 8~128자의 문자가 포함되어야 합니다.
  • SKU에 관한 자세한 내용은 Azure Database for PostgreSQL 가격 책정을 참조하세요.

Important

  • 서버의 기본 PostgreSQL 버전은 9.6입니다. 지원되는 모든 버전을 보려면 지원되는 PostgreSQL 주 버전을 참조하세요.
  • SSL은 서버에서 기본적으로 사용하도록 설정됩니다. SSL에 대한 자세한 내용은 SSL 연결 구성을 참조하세요.

서버 기반 방화벽 규칙 구성

az postgres server firewall-rule create 명령을 사용하여 방화벽 규칙을 생성하여 서버에 연결할 수 있는 액세스 권한을 로컬 환경에 부여할 수 있습니다.

# Configure a firewall rule for the server 
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp

IP 주소를 모르는 경우 WhatIsMyIPAddress.com으로 이동하여 가져옵니다.

참고 항목

연결 문제를 방지하려면 네트워크 방화벽에서 포트 5432를 허용하는지 확인합니다. Azure Database for PostgreSQL 서버는 해당 포트를 사용합니다.

서버 기반 방화벽 규칙 나열

기존 서버 방화벽 규칙을 나열하려면 az postgres server firewall-rule list 명령을 실행합니다.

# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.

출력에 기본적으로 JSON 형식으로 방화벽 규칙(있는 경우)이 나열됩니다. 읽기 쉬운 테이블 형식으로 출력하기 위해 --output table 스위치를 사용할 수도 있습니다.

연결 정보 가져오기

서버에 연결하려면 호스트 정보와 액세스 자격 증명을 제공합니다.

az postgres server show --resource-group $resourceGroup --name $server

administratorLoginfullyQualifiedDomainName 값을 기록해 둡니다.

psql을 사용하여 Azure Database for PostgreSQL 서버에 연결

psql 클라이언트는 PostgreSQL 서버에 연결하는 데 널리 사용되는 옵션입니다. Azure Cloud Shell을 통해 psql을 사용하여 서버에 연결할 수 있습니다. 사용 가능한 경우 로컬 환경에서도 psql을 사용할 수 있습니다. 빈 데이터베이스인 postgres는 새 PostgreSQL 서버와 함께 자동으로 만들어집니다. 다음 코드와 같이 psql을 통해 해당 데이터베이스를 사용하여 연결할 수 있습니다.

psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres

URL 경로를 사용하여 Postgres에 연결하려는 경우 URL의 사용자 이름에서 @ 기호가 %40으로 인코딩됩니다. 예를 들어 psql에 대한 연결 문자열은 다음과 같습니다.

psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres

리소스 정리

다음 명령을 사용하여 이러한 리소스가 계속해서 필요한 경우가 아니면 az group delete 명령을 사용하여 리소스 그룹 및 연결된 모든 리소스를 제거합니다. 이러한 리소스 중 일부는 만들기 및 삭제하는 데 시간이 걸릴 수 있습니다.

az group delete --name $resourceGroup

다음 단계