Azure Database for PostgreSQL 백업 정보

Azure Backup 및 Azure Database Services는 최대 10년 동안 백업을 유지하는 Azure Database for PostgreSQL 서버에 대한 엔터프라이즈급 백업 솔루션을 빌드하기 위해 함께 제공됩니다. 이 솔루션은 장기 보존 외에도 다음과 같은 기능을 제공합니다.

  • 고객이 예약된 백업 및 요청 시 백업을 개별 데이터베이스 수준에서 제어합니다.
  • 데이터베이스 수준에서 PostgreSQL 서버 또는 Blob 스토리지로 복원합니다.
  • 모든 운영 및 작업에 대한 중앙 모니터링.
  • 별도의 보안 및 장애 도메인에 백업이 저장됩니다. 어떤 상황에서든 원본 서버 또는 구독이 손상된 경우 백업은 Backup 자격 증명 모음(Azure Backup 관리형 스토리지 계정)에서 안전하게 유지됩니다.
  • pg_dump를 사용하면 복원의 유연성이 향상됩니다. 이렇게 하면 데이터베이스 버전 전체에서 복원할 수 있습니다.

이 솔루션은 최대 35일까지 보존할 수 있는 Azure PostgreSQL에서 제공하는 네이티브 백업 솔루션과 독립적으로 또는 함께 사용할 수 있습니다. 네이티브 솔루션은 최신 백업에서 복구하려는 경우와 같은 작업 복구에 적합합니다. Azure Backup 솔루션은 규정 준수 요구 사항과 더 세분화되고 유연한 백업/복원을 지원합니다.

참고 항목

Azure Database for PostgreSQL - 단일 서버는 사용 중지를 향한 여정에 있으며 2025년 3월 28일까지 사용 중지될 예정입니다.

현재 프로덕션 서버를 호스트하는 Azure Database for PostgreSQL - 단일 서버 서비스가 있는 경우 다행히도 Azure Database for PostgreSQL - 단일 서버를 Azure Database for PostgreSQL - 유연한 서버로 마이그레이션할 수 있습니다.

Azure Database for PostgreSQL - 유연한 서버는 Azure Backup의 엔터프라이즈급 백업 솔루션을 사용하여 데이터베이스 관리 기능 및 구성 설정에 대한 보다 세부적인 제어 및 유연성을 제공하도록 설계된 완전 관리형 프로덕션 지원> 데이터베이스 서비스입니다. Azure Database for PostgreSQL - 유연한 서버에 대한 자세한 내용은 Azure Database for PostgreSQL - 유연한 서버를 참조하세요.

백업 프로세스

  1. 백업 관리자는 백업하려는 Azure PostgreSQL 데이터베이스를 지정할 수 있습니다. 또한 지정된 데이터베이스에 연결하는 데 필요한 자격 증명을 저장하는 Azure 키 자격 증명 모음의 세부 정보를 지정할 수도 있습니다. 이러한 자격 증명은 Azure 키 자격 증명 모음의 데이터베이스 관리자가 안전하게 시드합니다.
  2. 그런 다음, 백업 서비스에서 지정된 PostgreSQL 서버로 인증하고 해당 데이터베이스를 백업할 수 있는 적절한 권한이 있는지 확인합니다.
  3. Azure Backup은 보호된 PostgreSQL 서버와 통신하기 위해 백업 확장이 설치된 작업자 역할(VM)을 스핀업합니다. 이 확장은 코디네이터와 PostgreSQL 플러그 인으로 구성됩니다. 코디네이터는 백업 및 복원과 같은 다양한 작업에 대한 워크플로를 트리거하고, 플러그 인은 실제 데이터 흐름을 관리합니다.
  4. 코디네이터는 예약된 시간에 플러그 인과 통신하고 pg_dump(사용자 지정)를 사용하여 PostgreSQL 서버에서 백업 데이터 스트리밍을 시작합니다.
  5. 플러그 인은 데이터를 Azure Backup 관리형 스토리지 계정(Backup 자격 증명 모음에서 마스킹됨)에 직접 보내므로 준비 위치가 필요하지 않습니다. 데이터는 Microsoft 관리 키를 사용하여 암호화되며 Azure Backup 서비스를 통해 스토리지 계정에 저장됩니다.

백업 프로세스를 보여 주는 다이어그램

PostgreSQL 서버를 사용하여 Azure Backup 인증

Azure Backup은 Azure에서 규정한 엄격한 보안 지침을 따릅니다. 백업할 리소스에 대한 권한은 가정되지 않으며 사용자가 명시적으로 제공해야 합니다.

키 자격 증명 모음 기반 인증 모델

Azure Backup 서비스는 각 백업을 수행하면서 Azure PostgreSQL에 연결해야 합니다. 데이터베이스에 해당하는 '사용자 이름 + 암호'(또는 연결 문자열)가 이 연결을 만드는 데 사용되지만 이러한 자격 증명은 Azure Backup에 저장되지 않습니다. 대신 데이터베이스 관리자가 이러한 자격 증명을 비밀로 Azure 키 자격 증명 모음에서 안전하게 시드해야 합니다. 워크로드 관리자는 자격 증명을 관리하고 회전할 책임이 있습니다. Azure Backup은 백업을 수행하기 위해 키 자격 증명 모음에서 최신 비밀 세부 정보를 호출합니다.

워크로드 또는 데이터베이스 흐름을 보여 주는 다이어그램

Azure PostgreSQL 데이터베이스 백업에 필요한 권한 집합

  1. 다음 액세스 권한을 Backup 자격 증명 모음의 MSI에 부여합니다.

    • Azure PostgreSQL 서버에 대한 읽기 권한자 액세스 권한
    • Azure 키 자격 증명 모음에 대한 Key Vault 비밀 사용자(또는 비밀 가져오기, 나열) 액세스 권한
  2. 다음에 대한 네트워크 가시선 액세스 권한

    • Azure PostgreSQL 서버 - Azure 서비스에 대한 액세스 허용 플래그를 로 설정합니다.
    • 키 자격 증명 모음 - 신뢰할 수 있는 Microsoft 서비스 허용 플래그를 로 설정합니다.
  3. 데이터베이스에 대한 데이터베이스 사용자의 백업 권한

참고 항목

백업 관리자가 의도한 리소스에 대한 '쓰기' 액세스 권한이 있는 경우 백업 구성 흐름 내에서 한 번 클릭으로 이러한 권한을 부여하거나, 필요한 권한이 없는 경우(여러 가상 사용자가 관련된 경우) ARM 템플릿을 사용할 수 있습니다.

Azure PostgreSQL 데이터베이스 복원에 필요한 권한 집합

복원에 필요한 권한은 백업에 필요한 권한과 비슷하며, 대상 PostgreSQL 서버 및 해당 키 자격 증명 모음에 대한 권한을 부여해야 합니다. 백업 구성 흐름과 달리 이러한 권한을 인라인으로 부여하는 환경은 현재 사용할 수 없습니다. 따라서 Postgres 서버 및 해당 키 자격 증명 모음에 대한 액세스 권한을 수동으로 부여해야 합니다.

또한 데이터베이스 사용자(키 자격 증명 모음에 저장된 자격 증명에 해당)에게 데이터베이스에 대한 다음과 같은 복원 권한이 있는지 확인합니다.

  • ALTER USER 사용자 이름 CREATEDB
  • 데이터베이스 사용자에게 azure_pg_admin 역할을 할당합니다.

Microsoft Entra ID 기반 인증 모델

이전에 완전히 Microsoft Entra ID를 기반으로 하는 다른 인증 모델이 출시되었습니다. 그러나 이제 구성 프로세스를 용이하게 하는 대체 옵션으로 새 키 자격 증명 모음 기반 인증 모델을 제공합니다(위에서 설명한 대로).

이 문서를 다운로드하여 이 인증 모델을 사용하기 위한 자동화된 스크립트 및 관련 지침을 얻습니다. 백업 및 복원을 위해 적절한 권한 집합을 Azure PostgreSQL 서버에 부여합니다.

참고 항목

모든 새 구성 보호는 새 키 자격 증명 모음 인증 모델에서만 수행됩니다. 그러나 Microsoft Entra ID 기반 인증으로 보호가 구성된 모든 기존 백업 인스턴스는 계속 존재하며 정기적인 백업이 수행됩니다. 이러한 백업을 복원하려면 Microsoft Entra ID 기반 인증을 따라야 합니다.

Azure PostgreSQL 서버 및 키 자격 증명 모음에 대한 액세스 권한을 수동으로 부여

Azure Backup에 필요한 모든 액세스 권한을 부여하려면 다음 섹션을 참조하세요.

Azure PostgreSQL 서버에 대한 액세스 권한

  1. Azure PostgreSQL 서버에 대한 Backup 자격 증명 모음의 MSI 읽기 권한자 액세스 권한을 설정합니다.

    Azure PostgreSQL 서버에 대한 Backup 자격 증명 모음의 MSI 읽기 권한자 액세스 권한을 설정하는 옵션을 보여 주는 스크린샷

  2. Azure PostgreSQL 서버에 대한 네트워크 가시선 액세스 권한: 'Azure 서비스에 대한 액세스 허용' 플래그를 '예'로 설정합니다.

    Azure PostgreSQL 서버에 대한 네트워크 가시선 액세스 권한을 설정하는 옵션을 보여 주는 스크린샷

Azure 키 자격 증명 모음(PostgreSQL 서버와 연결됨)에 대한 액세스 권한

  1. Azure 키 자격 증명 모음에 대한 Backup 자격 증명 모음의 MSI Key Vault 비밀 사용자(또는 비밀 가져오기, 나열) 액세스 권한을 설정합니다. 권한을 할당하기 위해 역할 할당 또는 액세스 정책을 사용할 수 있습니다. 도움이 되지 않으므로 두 옵션을 모두 사용하여 권한을 추가할 필요는 없습니다.

    비밀 사용자 액세스 권한을 제공하는 옵션을 보여 주는 스크린샷

    Key Vault에 대한 백업 자격 증명 모음의 MSI Key Vault 비밀 사용자 액세스 권한을 부여하는 옵션을 보여 주는 스크린샷

    • 액세스 정책 사용(즉, 권한 모델이 자격 증명 모음 액세스 정책으로 설정됨)

      자격 증명 모음 액세스 정책 모델로 설정된 권한 모델을 사용하여 권한을 부여하는 옵션을 보여 주는 스크린샷

  2. 키 자격 증명 모음에 대한 네트워크 가시선 액세스 권한: 신뢰할 수 있는 Microsoft 서비스 허용 플래그를 로 설정합니다.

    Key Vault에 대한 네트워크 가시선 액세스 권한에 대해 신뢰할 수 있는 Microsoft 서비스 허용 플래그를 예로 설정하는 방법을 보여 주는 스크린샷

데이터베이스에 대한 데이터베이스 사용자의 백업 권한

PG 관리 도구에서 다음 쿼리를 실행합니다(사용자 이름을 데이터베이스 사용자 ID로 바꿈).

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

참고 항목

백업이 이미 구성된 데이터베이스가 UserErrorMissingDBPermissions로 인해 실패하는 경우 문제 해결에 도움이 필요하면 이 문제 해결 가이드를 참조하세요.

PG 관리 도구 사용

PG 관리 도구가 아직 없으면 다운로드합니다. 이 도구를 통해 Azure PostgreSQL 서버에 연결할 수 있습니다. 또한 데이터베이스 및 새 사용자를 이 서버에 추가할 수 있습니다.

PG 관리자 도구를 사용하여 Azure PostgreSQL 서버에 연결하는 프로세스를 보여 주는 스크린샷

새 서버를 원하는 이름으로 만듭니다. Azure Portal의 Azure PostgreSQL 리소스 보기에 표시되는 서버 이름과 동일한 호스트 이름/주소 이름을 입력합니다.

PG 관리자 도구를 사용하여 새 서버를 만드는 옵션을 보여 주는 스크린샷

서버 이름과 동일한 호스트 이름 또는 주소 이름을 입력하는 옵션을 보여 주는 스크린샷

연결이 통과할 수 있도록 현재 클라이언트 ID 주소를 방화벽 규칙에 추가해야 합니다.

현재 클라이언트 ID 주소를 방화벽 규칙에 추가하는 프로세스를 보여 주는 스크린샷

새 데이터베이스 및 데이터베이스 사용자를 서버에 추가할 수 있습니다. 데이터베이스 사용자의 경우 새 로그인/그룹 역할을 추가합니다. 로그인할 수 있나요?로 설정되어 있는지 확인합니다.

새 데이터베이스 및 데이터베이스 사용자를 서버에 추가하는 프로세스를 보여 주는 스크린샷

데이터베이스 사용자에 대한 새 로그인 또는 그룹 역할을 추가하는 프로세스를 보여 주는 스크린샷

예로 설정된 로그인할 수 있나요? 옵션에 대한 확인을 보여 주는 스크린샷

다음 단계

Azure Database for PostgreSQL 백업