다음을 통해 공유


빠른 시작: Azure Database for PostgreSQL 유연한 서버 만들기

Azure Database for PostgreSQL은 클라우드에서 고가용성 PostgreSQL 데이터베이스를 실행, 관리 및 확장하는 데 사용할 수 있는 관리형 서비스입니다.

이 빠른 시작에서는 Azure Portal, Azure CLI 또는 ARM(Azure Resource Manager) 템플릿을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스를 만드는 방법을 보여 줍니다.

필수 조건

시작하기 전에 다음을 확인합니다.

  • Azure 구독. 없는 경우 무료 Azure 계정을 만듭니다.
  • 구독에서 리소스를 만들기 위한 적절한 권한이 필요합니다.

무엇을 만드는지 이해하라

Azure Database for PostgreSQL 유연한 서버 인스턴스에는 다음이 포함됩니다.

비고

연결은 일반적으로 기본 제공 PgBouncer 연결 풀러를 통해 연결하는 경우 포트 5432 또는 포트 6432를 사용합니다.

Azure Portal을 사용하여 서버 만들기

  1. Azure Portal에 로그인합니다.
  2. 왼쪽 위 모서리에서 리소스 만들기 를 선택합니다.
  3. 범주 아래에서 데이터베이스를 선택합니다.
  4. Azure Database for PostgreSQL 유연한 서버를 찾아 선택합니다.
  5. 선택하고생성합니다.

기본 설정을 구성하다

프로젝트 세부 정보

Setting 제안된 값 비고
Subscription 귀하의 구독 리소스를 청구할 위치 선택
리소스 그룹 myresourcegroup 새로 만들기 또는 기존 항목 선택

서버 세부 정보

Setting 제안된 값 Description
서버 이름 mydemoserver-pgsql 전역적으로 고유해야 합니다. 도메인 .postgres.database.azure.com 이 자동으로 추가됨
지역 가장 가까운 지역 준수, 데이터 상주, 가격 책정 및 사용자에 대한 근접성 고려
PostgreSQL 버전 최신 버전 사용 가능 현재 지원됨: 18, 17, 16, 15, 14, 13, 12, 11
워크로드 유형 발달 개발에서는 버스트 가능한 SKU를 사용합니다. 생산 환경에서는 범용 또는 메모리 최적화를 사용합니다.
가용성 영역 기본 설정 없음 애플리케이션과 함께 배치하는 데 유용함

고가용성

Option 서비스 수준 계약 (SLA) Description
Disabled 99.9% 대기가 없는 단일 서버
동일한 영역 99.95% 동일한 가용성 영역에서 대기
영역 중복 99.99% 다른 가용성 영역의 대기

Authentication

Setting Description Recommended
인증 방법 사용자가 인증하는 방법 - PostgreSQL 인증만 (빠른 시작용)
- Microsoft Entra 인증 (프로덕션용)
- 둘 다 (유연성을 위해)
관리자 사용자 이름 adminuser - 1-63자여야 합니다.
- 숫자와 문자만
- pg_와 함께 시작할 수 없습니다.
- 시스템 예약 이름이 될 수 없습니다.
암호 복잡한 암호 대문자, 소문자, 숫자 및 특수 문자가 있는 8-128자

컴퓨팅 및 스토리지 구성

사용자 지정하도록 서버 구성 을 선택합니다.

컴퓨팅 계층

계층 사용 사례 Description
버스트 가능 발달 연속 전체 CPU가 필요하지 않은 워크로드의 경우
범용 목적 프로덕션 가장 일반적인 프로덕션 워크로드
메모리 최적화 메모리가 높은 워크로드 높은 메모리 대 CPU 비율이 필요한 워크로드

스토리지 설정

Setting 나중에 변경할 수 있습니다. Description
스토리지 유형 ❌ 아니요 프리미엄 SSD 또는 프리미엄 SSD v2
스토리지 크기 ✅ 예(증가만 해당) 만든 후 축소할 수 없습니다.
성능 계층 ✅ 예 IOPS 및 처리량 제어
스토리지 자동 증가 ✅ 예 제한에 근접할 때 자동 확장

백업 설정

Setting 나중에 변경할 수 있습니다. Description
백업 보존 ✅ 예 7-35일
백업 중복성 ❌ 아니요 로컬 중복, 영역 중복 또는 지역 중복
지리적 중복도 ❌ 아니요 Azure 쌍을 이루는 지역에서만 사용 가능

네트워킹 구성

연결 방법을 선택합니다(만든 후에는 변경할 수 없습니다).

퍼블릭 액세스(허용된 IP 주소)

방화벽 규칙을 사용하여 퍼블릭 엔드포인트를 통해 연결합니다.

설정:

Setting Description
공용 액세스 허용 공용 액세스를 사용하도록 설정하여 방화벽 규칙 구성
Azure 서비스 허용 모든 Azure 서비스에서 연결 허용
현재 클라이언트 IP 추가 허용 목록에 IP 주소 추가

프라이빗 액세스(가상 네트워크 통합)

가상 네트워크 내의 프라이빗 엔드포인트를 통해 연결합니다. 자세한 내용은 Azure Database for PostgreSQL에 대한 프라이빗 액세스 권한이 있는 네트워크를 참조하세요.

보안 구성

Setting 나중에 변경할 수 있습니다. Options
데이터 암호화 키 ❌ 아니요 서비스 관리 또는 고객 관리

리소스 태그 추가(선택 사항)

이름-값 쌍을 사용하여 리소스를 구성합니다.

이름 가치 목적
환경 발달 환경 유형 식별
CostCenter IT-Dept 부서별 비용 추적
소유자 admin@contoso.com 책임 있는 당사자 식별

검토 후 만들기

  1. Review + create를 선택합니다.
  2. 모든 구성을 검토합니다.
  3. 만들기를 선택하여 배포합니다.

배포에는 일반적으로 5-10분이 걸립니다. 완료되면 리소스로 이동하여 서버에 액세스합니다.

Azure CLI를 사용하여 서버 만들기

CLI에 대한 필수 구성 요소

이 스크립트의 경우 Cloud Shell에서 실행하기에 너무 오래 걸리므로 Azure CLI를 로컬로 사용하세요.

Azure에 로그인

다음 스크립트를 사용하여 특정 구독을 사용하여 로그인합니다.

subscription="<subscriptionId>" # add subscription here

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

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

Azure Cloud Shell을 사용하는 경우 이미 로그인되어 있습니다.

CLI를 사용하여 서버 만들기

하나의 명령으로 서버를 만듭니다.

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

CLI 매개 변수 참조

매개 변수 Description 예시
--resource-group 리소스 그룹 이름 myresourcegroup
--name 전역적으로 고유한 서버 이름 mydemoserver-pgsql
--location Azure 지역 이스트유스
--admin-user 관리자 사용자 이름 myadmin
--admin-password 관리자 암호 YourPassword123!
--sku-name Compute SKU Standard_D4ds_v5
--tier 컴퓨팅 계층 버스트 가능, 일반 용도, 메모리 최적화
--storage-size 스토리지(GB) 128
--public-access 허용된 IP 주소 0.0.0.0(모든 Azure 서비스), IP 주소 또는 IP 범위
--version PostgreSQL 버전 16
--high-availability HA 모드 사용 안 함, 동일 영역, 영역 중복
--backup-retention 백업 보존 기간(일) 7-35

고급 CLI 예제

영역 중복 고가용성 서버를 만듭니다.

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

ARM 템플릿을 사용하여 서버 만들기

ARM 템플릿 개요

ARM(Azure Resource Manager) 템플릿을 사용하면 인프라를 코드로 정의할 수 있습니다. 반복 가능한 배포에 템플릿을 사용합니다.

최소 ARM 템플릿

이 파일을 다음과 같이 postgres-server-template.json저장합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

ARM 템플릿 배포

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

연결 정보 가져오기

서버를 만든 후 연결 세부 정보를 검색합니다.

Azure Portal 사용

  1. Azure Portal에서 서버로 이동합니다.
  2. 개요 페이지를 엽니다.
  3. 다음 값을 복사합니다.
    • 서버 이름 (엔드포인트): mydemoserver-pgsql.postgres.database.azure.com
    • 관리자 로그인: myadmin

Azure CLI 사용

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

psql을 사용하여 연결

psql을 설치합니다.

PostgreSQL 클라이언트 도구가 없는 경우 플랫폼용 PostgreSQL을 다운로드 합니다.

서버에 연결

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

메시지가 표시되면 서버를 만드는 동안 설정한 관리자 암호를 입력합니다.

연결 문자열 형식

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

연결 확인

연결한 후 다음이 표시됩니다.

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=>

데이터베이스 만들기

CREATE DATABASE user_database;
\c user_database
\q

연결 문제 해결

방화벽 차단 연결

다음이 보이면:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

해결 방법: 방화벽 규칙에 IP 주소를 추가합니다.

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

SSL이 필요하지만 구성되지 않음

연결 문자열에 sslmode=require가 포함되어 있는지 확인합니다.

자원을 정리하세요

빠른 시작을 마치면 요금이 부과되지 않도록 리소스를 삭제합니다.

전체 리소스 그룹 삭제

az group delete --name myresourcegroup --yes

서버만 삭제

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes