메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

Amazon RDS의 PostgreSQL

Amazon RDS는 여러 PostgreSQL 버전을 실행하는 DB 인스턴스를 지원합니다. DB 인스턴스 및 DB 스냅샷, 특정 시점으로 복원 및 백업을 만들 수 있습니다. PostgreSQL을 실행하는 DB 인스턴스는 다중 AZ 배포, 읽기 전용 복제본(버전 9.3.5 이상), 프로비저닝된 IOPS를 지원하며, VPC 내부에서 생성될 수 있습니다. 또한, SSL(Secure Socket Layer)을 사용하여 PostgreSQL을 실행하는 DB 인스턴스에 연결할 수 있습니다.

DB 인스턴스를 생성하기 전에 이 안내서의 Amazon RDS 설정 섹션에 있는 단계를 완료해야 합니다.

클라이언트 컴퓨터에서 표준 SQL 클라이언트 애플리케이션을 사용하여 인스턴스에 대한 명령을 실행할 수 있습니다. 이런 애플리케이션으로는 PostgreSQL용으로 널리 사용되는 오픈 소스 관리 및 개발 도구인 pgAdmin 또는 PostgreSQL 설치 시 포함되는 명령줄 유틸리티인 psql이 포함됩니다. 관리되는 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 호스트 액세스를 제공하지 않으며, 고급 권한을 필요로 하는 특정 시스템 프로시저와 테이블에 대한 액세스를 제한합니다. Amazon RDS는 모든 표준 SQL 클라이언트 애플리케이션을 사용하여 DB 인스턴스의 데이터베이스에 대한 액세스를 지원합니다. Amazon RDS는 Telnet 또는 Secure Shell(SSH)을 통해 DB 인스턴스에 직접 호스트 액세스하는 것을 허용하지 않습니다.

PostgreSQL용 Amazon RDS는 다수의 산업 표준을 준수합니다. 예를 들면, PostgreSQL 데이터베이스용 Amazon RDS를 사용하여 HIPAA 준수 애플리케이션을 구축하고 AWS와 체결한 이행 중인 비즈니스 제휴 계약(BAA)에 따라 보호 대상 건강 정보(PHI)를 비롯한 의료 관련 정보를 저장할 수 있습니다. PostgreSQL용 Amazon RDS 역시 FedRAMP(연방 정부의 위험 및 인증 관리 프로그램) 보안 요건을 준수합니다. PostgreSQL용 Amazon RDS는 FedRAMP 공동 승인 위원회(JAB)로부터 AWS GovCloud (US) 리전 내에서 행사할 수 있는 FedRAMP HIGH Baseline 수준의 잠정적 운영 권한(P-ATO)을 취득했습니다. 지원되는 규정 준수 표준에 대한 자세한 정보는 AWS 클라우드 규정 준수를 참조하십시오.

PostgreSQL 데이터를 DB 인스턴스로 가져오려면 Amazon RDS에서 PostgreSQL로 데이터 가져오기 섹션의 정보를 따릅니다.

Amazon RDS의 PostgreSQL을 위한 공통 관리 작업

다음은 Amazon RDS PostgreSQL DB 인스턴스로 수행하는 일반적인 관리 작업과 각 작업에 해당하는 문서 링크입니다.

작업 영역 관련 문서

처음 사용 시 Amazon RDS 설정

DB 인스턴스를 만들기 전에 완료해야 하는 필수 사항이 있습니다. 예를 들어, DB 인스턴스는 기본적으로 인스턴스에 대한 액세스를 막는 방화벽도 함께 생성됩니다. 따라서 DB 인스턴스에 액세스하기 위한 알맞은 IP 주소와 네트워크 구성으로 보안 그룹을 만들어야 합니다.

Amazon RDS 설정

[Amazon RDS DB 인스턴스 이해]

프로덕션 목적으로 DB 인스턴스를 만들 경우에는 Amazon RDS에서 인스턴스 클래스, 스토리지 유형 및 프로비저닝된 IOPS이 작동하는 방식을 이해해야 합니다.

DB 인스턴스 클래스

Amazon RDS 스토리지 유형

성능 개선을 위한 Amazon RDS 프로비저닝된 IOPS 스토리지

지원되는 PostgreSQL 버전 찾기

Amazon RDS는 여러 버전의 PostgreSQL을 지원합니다.

지원되는 PostgreSQL 데이터베이스 버전

고가용성 및 장애 조치 지원 설정

프로덕션 DB 인스턴스에서는 다중 AZ 배포를 사용해야 합니다. 다중 AZ 배포는 DB 인스턴스를 위해 향상된 가용성, 데이터 내구성 및 내결함성을 제공합니다.

고가용성(다중 AZ)

Amazon Virtual Private Cloud(VPC) 네트워크 이해

AWS 계정에 기본 VPC가 있는 경우에는 DB 인스턴스가 기본 VPC 내부에 자동으로 생성됩니다. 계정에 기본 VPC가 없는데 VPC 안에 DB 인스턴스를 만들려면 VPC와 서브넷 그룹을 만든 후 DB 인스턴스를 만들어야 합니다.

EC2-VPC 또는 EC2-Classic 플랫폼을 사용 중인지 확인

VPC에서 Amazon RDS DB 인스턴스를 사용한 작업

Amazon RDS PostgreSQL로 데이터 가져오기

다양한 도구를 사용하여 Amazon RDS의 PostgreSQL DB 인스턴스로 데이터를 가져올 수 있습니다.

Amazon RDS에서 PostgreSQL로 데이터 가져오기

읽기 전용 복제본(마스터/대기) 설정

Amazon RDS의 PostgreSQL에서는 마스터 인스턴스와 동일한 AWS 리전과 다른 AWS 리전 모두에서 읽기 전용 복제본을 지원합니다.

PostgreSQL, MySQL 및 MariaDB 읽기 전용 복제본 작업

PostgreSQL 읽기 전용 복제본(버전 9.3.5 이상)

AWS 리전 간 읽기 전용 복제본 복제

보안 그룹 이해

기본적으로, DB 인스턴스와 함께 인스턴스에 대한 액세스를 막는 방화벽도 생성됩니다. 따라서 DB 인스턴스에 액세스하기 위한 알맞은 IP 주소와 네트워크 구성으로 보안 그룹을 만들어야 합니다.

일반적으로 DB 인스턴스가 EC2-Classic 플랫폼을 기반으로 하는 경우에는 DB 보안 그룹을 생성해야 합니다. 그렇지 않고 DB 인스턴스가 EC2-VPC 플랫폼을 기반으로 하는 경우에는 VPC 보안 그룹을 생성해야 합니다.

EC2-VPC 또는 EC2-Classic 플랫폼을 사용 중인지 확인

Amazon RDS 보안 그룹

파라미터 그룹 및 기능 설정

DB 인스턴스에 특정 데이터베이스 파라미터가 필요할 경우, 파라미터 그룹을 만든 후 DB 인스턴스를 만들어야 합니다.

DB 파라미터 그룹 작업

PostgreSQL을 위한 공통 DBA 작업 수행

DB 인스턴스에 특정 데이터베이스 옵션이 필요할 경우, 옵션 그룹을 만든 후 DB 인스턴스를 만들어야 합니다.

부록: PostgreSQL을 위한 공통 DBA 작업

PostgreSQL DB 인스턴스에 연결

보안 그룹을 만들고 이를 DB 인스턴스에 연결한 후, pgadmin III와 같은 표준 SQL 클라이언트 애플리케이션을 사용하여 DB 인스턴스에 연결할 수 있습니다.

PostgreSQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기

PostgreSQL DB 인스턴스와 함께 SSL 사용

DB 인스턴스 백업 및 복원

DB 인스턴스를 구성하여 자동 백업을 생성하거나 수동 스냅샷을 생성한 다음 백업 또는 스냅샷에서 인스턴스를 복원할 수 있습니다.

Amazon RDS DB 인스턴스 백업 및 복원

DB 인스턴스 활동 및 성능 모니터링

CloudWatch Amazon RDS 측정치, 이벤트 및 향상된 모니터링 기능을 통해 PostgreSQL DB 인스턴스를 모니터링할 수 있습니다.

DB 인스턴스 측정치 보기

Amazon RDS 이벤트 보기

PostgreSQL 데이터베이스 버전 업그레이드

PostgreSQL DB 인스턴스의 메이저 버전과 마이너 버전을 모두 업그레이드할 수 있습니다.

PostgreSQL DB 인스턴스 업그레이드

메이저 버전 업그레이드

로그 파일 작업

PostgreSQL DB 인스턴스의 로그 파일에 액세스할 수 있습니다.

PostgreSQL 데이터베이스 로그 파일

PostgreSQL DB 인스턴스에 대한 모범 사례 이해

Amazon RDS의 PostgreSQL 사용에 대한 몇 가지 모범 사례를 찾아 보십시오.

PostgreSQL로 작업하기 위한 모범 사례

Amazon RDS PostgreSQL 계획 정보

Amazon RDS는 여러 PostgreSQL 에디션을 실행하는 DB 인스턴스를 지원합니다. 이 섹션에서는 Amazon RDS에서 PostgreSQL로 작업할 수 있는 방법을 보여줍니다. PostgreSQL DB 인스턴스에 대한 제한도 알고 있어야 합니다.

DB 인스턴스로 PostgreSQL 데이터를 가져오는 자세한 방법은 Amazon RDS에서 PostgreSQL로 데이터 가져오기 단원을 참조하십시오.

rds_superuser 역할 사용

DB 인스턴스를 생성할 때 마스터 사용자 시스템 계정은 rds_superuser 역할에 할당됩니다. rds_superuser 역할은 PostgreSQL 고급 사용자 역할과 비슷하지만(관습적으로 로컬 인스턴스에서 명명된 postgres), 몇 가지 제한 사항이 있습니다. PostgreSQL 수퍼유저 역할과 마찬가지로, rds_superuser 역할에는 DB 인스턴스에 대한 최대의 권한이 있으며 사용자에게 DB 인스턴스에 대한 최대의 액세스 권한이 필요하지 않다면 사용자에게 이 역할을 할당하면 안 됩니다.

rds_superuser 역할은 다음을 수행할 수 있습니다.

  • Amazon RDS와 함께 사용할 수 있는 확장 기능을 추가합니다. 자세한 내용은 지원되는 PostgreSQL 기능PostgreSQL 문서를 참조하십시오.

  • 테이블스페이스 생성 및 삭제를 포함한 테이블스페이스 관리. 자세한 내용은 PostgreSQL 문서에서 이 단원을 참조하십시오.

  • pg_stat_activity 명령을 사용하여 rds_superuser 역할이 할당되지 않은 모든 사용자를 보고, pg_terminate_backendpg_cancel_backend 명령을 사용하여 연결 중단

  • rds_superuser 역할이 아닌 모든 역할에 대해 복제 속성을 부여하고 취소합니다. 자세한 내용은 PostgreSQL 문서에서 이 단원을 참조하십시오.

지원되는 PostgreSQL 데이터베이스 버전

Amazon RDS에서는 다음 PostgreSQL 버전을 지원합니다.

Amazon RDS의 PostgreSQL 버전 9.6.5

PostgreSQL 버전 9.6.5에는 버전 9.6.4에서 발견된 문제에 대한 몇 가지 버그 수정 사항이 포함되어 있습니다. 버전 9.6.5의 버그 수정에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

이번 버전에는 pgRoutingpostgresql-hll 확장과 decoder_raw 옵션 모듈에 대한 지원도 추가되었습니다.

Amazon RDS의 PostgreSQL 버전 9.6.3

PostgreSQL 버전 9.6.3에는 여러 새 기능과 버그 수정이 포함되어 있습니다. 이 버전에는 다음과 같은 기능이 포함되어 있습니다.

  • pg_repack 확장 버전 1.4.0을 지원합니다. 이 확장 버전을 사용하여 테이블과 인덱스에서 부풀림을 제거할 수 있습니다. Amazon RDS와 pg_repack을 함께 사용하는 방법에 대한 자세한 내용은 pg_repack 확장 작업 단원을 참조하십시오.

  • pgaudit 확장 버전 1.1.0을 지원합니다. 이 확장은 세부적인 세션 및 객체 감사 로깅을 제공합니다. pgaudit 및 Amazon RDS를 함께 사용하는 방법에 대한 자세한 내용은 pgaudit 확장 작업 단원을 참조하십시오.

  • 논리적 디코딩을 위한 출력 플러그인 wal2json을 지원합니다.

  • auto_explain 모듈을 지원합니다. 이 모듈을 사용하여 느린 문의 로그 실행 계획을 자동으로 기록할 수 있습니다. 다음은 Amazon RDS PostgreSQL 세션 내에서 auto_explain을 사용하는 방법을 나타낸 예제입니다.

    Copy
    LOAD '$libdir/plugins/auto_explain';

    auto_explain 사용에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.6.2

PostgreSQL 버전 9.6.2에는 여러 새 기능과 버그 수정이 포함되어 있습니다. 새 버전에는 다음의 확장 버전도 포함되어 있습니다.

  • PostGIS 버전 2.3.2

  • pg_freespacemap 버전 1.1 - FSM(Free Space Map)을 검사하는 기능을 제공합니다. 이 확장 기능은 오버로딩 함수 pg_freespace를 제공합니다. 이 함수는 지정된 페이지 또는 릴레이션 내 모든 페이지에 대한 FSM에 기록된 값을 보여 줍니다.

  • pg_hint_plan 버전 1.1.3 - SQL 문에서 힌트 구를 사용하여 실행 계획을 제어할 수 있습니다.

  • log_fdw 버전 1.0–Amazon RDS의 확장 기능을 사용해 데이터베이스 내부에서 데이터베이스 엔진 로그를 로드 및 쿼리할 수 있습니다. 자세한 내용은 log_fdw 확장 사용 단원을 참조하십시오.

  • 이 버전 릴리스에서는 이제 DB 파라미터 그룹의 max_worker_processes 파라미터를 편집할 수 있습니다.

Amazon RDS PostgreSQL 버전 9.6.2는 열거형 값 변경도 지원합니다. 자세한 내용은 PostgreSQL용 ALTER ENUM 섹션을 참조하십시오.

9.6.2의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.6.1

PostgreSQL 버전 9.4.5에는 여러 새 기능과 개선 사항이 포함되어 있습니다. PostgreSQL 9.6.1 수정 및 개선 사항에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 자세한 정보는 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오. PostgreSQL 9.6.1에서 Amazon RDS를 이용한 병렬 쿼리 실행과 구문 검색에 대한 자세한 정보는 AWS Database Blog를 참조하십시오.

PostgreSQL 버전 9.6.1에는 다음과 같은 변경 사항이 포함됩니다.

  • 병렬 쿼리 실행: 다량의 읽기 전용 쿼리의 병렬 실행을 지원하여 순차적 스캔, 해시 조인, 중첩 루프를 허용하며 병렬로 실행되도록 집계합니다. 기본적으로 병렬 쿼리 실행은 활성화되어 있지 않습니다. 병렬 쿼리 실행을 허용하려면 max_parallel_workers_per_gather 파라미터를 0보다 큰 수로 정합니다.

  • postgres_fdw extension 업데이트 완료: 원격 조인, 정렬, 업데이트, 삭제 작업을 지원합니다.

  • PL/v8 업데이트: PL/v8 언어의 1.5.3 버전을 제공합니다.

  • PostGIS 버전 업데이트: POSTGIS="2.3.0 r15146" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel을 지원. 4.9.2, 2015년 9월 8일" GDAL="GDAL 2.1.1, 2016년 7월 7일 출시" LIBXML="2.9.1" LIBJSON="0.12" 래스터

  • Vacuum 개선: vacuum freeze 작업 중 불필요한 페이지 스캔을 피합니다.

  • 전체 텍스트 검색은 문구 지원: 새 연산자 <-> 및 <N>을 이용해 tsquery 입력에서 문구 검색 쿼리 지정 기능을 지원합니다.

  • 두 개의 새로운 확장 지원:

    • bloom(Bloom 필터 기반의 인덱스 액세스 방법)

    • pg_visibility(테이블의 가시성 맵과 페이지 차원의 가시성 정보를 조사하는 수단 제공)

  • 버전 9.6.2 릴리스에서는 이제 PostgreSQL 버전 9.6.1 DB 파라미터 그룹의 max_worker_processes 파라미터를 편집할 수 있습니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 PostgreSQL 9.6.1 데이터베이스 인스턴스를 새로 만들 수 있습니다. 또한 메이저 버전의 업그레이드를 이용해 기존 PostgreSQL 9.5 인스턴스를 버전 9.6.1로 업그레이드할 수도 있습니다. DB 인스턴스를 버전 9.3 또는 9.4에서 9.6으로 업그레이드하려면 먼저 다음 메이저 버전으로 포인트 앤 클릭 방식의 업그레이드를 실행해야 합니다. 각 업그레이드 작업 시에는 잠시 DB 인스턴스를 사용할 수 없습니다.

Amazon RDS의 PostgreSQL 버전 9.5.9

PostgreSQL 버전 9.5.9에는 버전 9.5.8에서 발견된 문제에 대한 몇 가지 버그 수정 사항이 포함되어 있습니다. 버전 9.5.9의 버그 수정에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.5.7

PostgreSQL 버전 9.5.7에는 여러 새 기능과 버그 수정이 포함되어 있습니다. 이 버전에는 다음과 같은 기능이 포함되어 있습니다.

  • pgaudit 확장 버전 1.0.5를 지원합니다. 이 확장은 세부적인 세션 및 객체 감사 로깅을 제공합니다. pgaudit 및 Amazon RDS를 함께 사용하는 방법에 대한 자세한 내용은 pgaudit 확장 작업 단원을 참조하십시오.

  • 논리적 디코딩을 위한 출력 플러그인 wal2json을 지원합니다.

  • auto_explain 모듈을 지원합니다. 이 모듈을 사용하여 느린 문의 로그 실행 계획을 자동으로 기록할 수 있습니다. 다음은 Amazon RDS PostgreSQL 세션 내에서 auto_explain을 사용하는 방법을 나타낸 예제입니다.

    Copy
    LOAD '$libdir/plugins/auto_explain';

    auto_explain 사용에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.5.6

PostgreSQL 버전 9.5.6에는 여러 새 기능과 버그 수정이 포함되어 있습니다. 새 버전에는 다음의 확장 버전도 포함되어 있습니다.

  • PostGIS 버전 2.2.5

  • pg_freespacemap 버전 1.1 - FSM(Free Space Map)을 검사하는 기능을 제공합니다. 이 확장 기능은 오버로딩 함수 pg_freespace를 제공합니다. 이 함수는 지정된 페이지 또는 관련된 모든 페이지에 대한 FSM에 기록된 값을 보여 줍니다.

  • pg_hint_plan 버전 1.1.3 - SQL 문에서 힌트 구를 사용하여 실행 계획을 제어할 수 있습니다.

Amazon RDS PostgreSQL 버전 9.5.6은 열거형 값 변경도 지원합니다. 자세한 내용은 PostgreSQL용 ALTER ENUM 섹션을 참조하십시오.

9.5.6의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.5.4

PostgreSQL 버전 9.5.4은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다. 9.5.4의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 9.4 이상 버전에서는 논리적 복제 디코딩을 통한 WAL 변경 스트리밍을 지원합니다. Amazon RDS에서는 PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에 대한 논리적 복제를 지원합니다. Amazon RDS의 PostgreSQL 논리적 복제에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 논리적 복제 단원을 참조하십시오.

Amazon RDS용 PostgreSQL 버전 9.5.4로 시작하는 ALTER USER WITH BYPASSRLS 명령을 지원합니다.

PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에서는 이벤트 트리거를 지원하고, Amazon RDS에서는 이러한 버전에 대한 이벤트 트리거를 지원합니다. 마스터 사용자 계정을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다. Amazon RDS의 PostgreSQL 이벤트 트리거에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 이벤트 트리거 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.5.2

PostgreSQL 버전 9.5.2은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다. 9.5.2의 기능에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 버전 9.5.2는 전 세대인 db.t1, db.m1, or db.m2 인스턴스 클래스를 지원하지 않습니다. PostgreSQL 버전 9.4에서 버전 9.5.2를 실행하는 DB 인스턴스를 이 인스턴스 클래스 중 하나로 업그레이드해야 하는 경우 컴퓨팅을 확장해야 합니다. 확장하려면 PostgreSQL 버전 9.4에서 버전 9.5.2를 실행하는 DB 인스턴스를 업그레이드하기 전에 비교 가능한 현재 세대의 db.t2 또는 db.m3 인스턴스 클래스가 필요합니다. DB 인스턴스 클래스의 자세한 내용은 DB 인스턴스 클래스 단원을 참조하십시오.

네이티브 PostgreSQL 버전 9.5.2에서는 ALTER USER WITH BYPASSRLS 명령을 도입했습니다.

이 릴리스에는 다음을 비롯한 이전 버전의 업데이트도 포함됩니다.

  • CVE-2016-2193: 동일한 세션에서 두 개 이상의 ROLE에 대해 쿼리 플랜이 재사용될 수 있는 경우의 문제를 해결합니다. 쿼리 플랜을 재사용하면 쿼리에서 잘못된 RLS(Row Level Security) 정책을 사용할 수 있습니다.

  • CVE-2016-3065: BRIN 인덱스 페이지와 함께 pageinspect를 사용하면 발생하는 서버 충돌 버그를 해결합니다. 공격자에게 서버 메모리의 일부가 노출될 수 있기 때문에 이 충돌은 보안 문제로 간주됩니다.

RDS PostgreSQL 9.5의 주요 개선 사항은 다음과 같습니다.

  • UPSERT: UPDATE로 전환되거나 무시되는 제한 충돌을 생성하는 INSERT 허용

  • GROUP BY 분석 기능인 GROUPING SETS, CUBE, ROLLUP 추가

  • 행 수준(row-level) 보안 통제 추가

  • 복제 진행 상황을 추적하기 위한 수단 생성(논리적 복제 중에 개별 변경 사항의 출처를 식별하기 위한 방법 등)

  • BRIN(Block Range Indexes) 추가

  • 정렬을 위한 상당한 성능 개선 추가

  • 다중 CPU 머신을 위한 상당한 성능 개선 추가

  • PostGIS 2.2.2 - 이 PostGIS 최신 버전을 사용하려면 버전 9.5.2로 업그레이드한 후 다음과 같이 ALTER EXTENSION UPDATE 문을 사용하여 업데이트합니다.

    ALTER EXTENSION POSTGIS UPDATE TO '2.2.2'

  • rds_superuser 계정이 pg_stat_activity에서 autovacuum 세션을 볼 수 있도록 허용하여 autovacuum 세션의 가시성 향상. 예: 명령의 실행을 차단하거나, 수동으로 실행한 vacuum 명령보다 느리게 실행되는 autovacuum 세션을 식별 및 종료 가능

RDS PostgreSQL 버전 9.5.2는 다음과 같은 확장 기능을 새로 제공합니다.

  • address_standardizer – 입력 주소를 받아 table, helper lex, gaz tables에 저장된 규칙에 따라 정규화하는 단일 행 주소 구문 분석기.

  • hstore_plperlhstore type for PL/Perl을 위한 변환 제공.

  • tsm_system_rows – 테이블 샘플링 메서드 SYSTEM_ROWS 제공. SELECT 명령의 TABLESAMPLE 절에 사용 가능.

  • tsm_system_time – 테이블 샘플링 메서드 SYSTEM_TIME 제공. SELECT 명령의 TABLESAMPLE 절에 사용 가능.

Amazon RDS의 PostgreSQL 버전 9.4.14

PostgreSQL 버전 9.4.14에는 버전 9.4.12에서 발견된 문제에 대한 몇 가지 버그 수정 사항이 포함되어 있습니다. 버전 9.4.14의 버그 수정에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.4.12

PostgreSQL 버전 9.4.12은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다.

9.4.12의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.4.11

PostgreSQL 버전 9.4.11은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다.

9.4.11의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 9.4 이상 버전에서는 논리적 복제 디코딩을 통한 WAL 변경 스트리밍을 지원합니다. Amazon RDS에서는 PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에 대한 논리적 복제를 지원합니다. Amazon RDS의 PostgreSQL 논리적 복제에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 논리적 복제 단원을 참조하십시오.

PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에서는 이벤트 트리거를 지원하고, Amazon RDS에서는 이러한 버전에 대한 이벤트 트리거를 지원합니다. 마스터 사용자 계정을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다. Amazon RDS의 PostgreSQL 이벤트 트리거에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 이벤트 트리거 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.4.9

PostgreSQL 버전 9.4.9은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다. 9.4.9의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 9.4 이상 버전에서는 논리적 복제 디코딩을 통한 WAL 변경 스트리밍을 지원합니다. Amazon RDS에서는 PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에 대한 논리적 복제를 지원합니다. Amazon RDS의 PostgreSQL 논리적 복제에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 논리적 복제 단원을 참조하십시오.

PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에서는 이벤트 트리거를 지원하고, Amazon RDS에서는 이러한 버전에 대한 이벤트 트리거를 지원합니다. 마스터 사용자 계정을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다. Amazon RDS의 PostgreSQL 이벤트 트리거에 대한 자세한 내용은 Amazon RDS의 PostgreSQL에 대한 이벤트 트리거 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.4.7

PostgreSQL 버전 9.4.7은 이전 버전에서 발견된 몇 가지 문제를 수정했습니다. 9.4.7의 수정 사항에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 버전 9.4.7은 rds_superuser 계정이 pg_stat_activity에서 autovacuum 세션을 볼 수 있도록 허용하여 autovacuum 세션의 가시성을 향상시켰습니다. 예: 명령의 실행을 차단하거나, 수동으로 실행한 vacuum 명령보다 느리게 실행되는 autovacuum 세션을 식별 및 종료 가능

Amazon RDS의 PostgreSQL 버전 9.3.19

PostgreSQL 버전 9.3.19에는 버전 9.3.18에서 발견된 문제에 대한 몇 가지 버그 수정 사항이 포함되어 있습니다. 버전 9.3.19의 버그 수정에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.3.17

PostgreSQL 버전 9.3.17는 이전 버전에서 발견된 몇 가지 버그를 수정했습니다. 이 버전에는 버전 9.3.16과 동일한 확장 구성 요소가 포함되어 있습니다. 버전 9.3.17의 버그 수정 목록은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.3.16

PostgreSQL 버전 9.3.16는 이전 버전에서 발견된 몇 가지 버그를 수정했습니다. 이 버전에는 버전 9.3.14와 동일한 확장 구성 요소가 포함되어 있습니다. 버전 9.3.16의 버그 수정 목록은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.3.14

PostgreSQL 버전 9.3.14는 이전 버전에서 발견된 몇 가지 버그를 수정했습니다. 버전 9.3.14의 수정 사항 목록은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

Amazon RDS의 PostgreSQL 버전 9.3.12

PostgreSQL 버전 9.3.12는 이전 버전에서 발견된 몇 가지 버그를 수정했습니다. 버전 9.3.12의 수정 사항 목록은 PostgreSQL 설명서를 참조하십시오. PostgreSQL DB 인스턴스의 엔진 버전을 업그레이드하는 방법에 대한 자세한 내용은 PostgreSQL DB 인스턴스 업그레이드 단원을 참조하십시오.

PostgreSQL 버전 9.3.12는 rds_superuser 계정이 pg_stat_activity에서 autovacuum 세션을 볼 수 있도록 허용하여 autovacuum 세션의 가시성을 향상시켰습니다. 예: 명령의 실행을 차단하거나, 수동으로 실행한 vacuum 명령보다 느리게 실행되는 autovacuum 세션을 식별 및 종료 가능

Supported PostgreSQL 기능 및 확장자

Amazon RDS에서는 대부분의 가장 일반적인 PostgreSQL 확장자 및 기능을 지원합니다.

Amazon RDS에서 지원되는 PostgreSQL 확장 기능 및 모듈

PostgreSQL은 다수의 PostgreSQL 확장 기능 및 모듈을 지원합니다. 여기에서 확장 기능 및 모듈이란 PostgreSQL 엔진에서 제공하는 기능이 더욱 확장된 것을 말합니다. 다음 단원에서는 Amazon RDS가 주요 PostgreSQL 버전에 대해 지원하는 확장 기능 및 모듈에 대해 설명합니다.

해당 PostgreSQL 버전의 기본 DB 파라미터 그룹에서 Amazon RDS가 지원하는 확장 기능 목록을 확인할 수 있습니다. 또한 다음 예제에서처럼 rds.extensions 파라미터를 표시하면 psql을 사용하여 현재 확장 기능 목록을 확인할 수 있습니다.

Copy
SHOW rds.extensions;

참고

psql에서 rds.extensions 파라미터를 사용하면 마이너 버전 릴리스에서 추가된 파라미터가 잘못 표시될 수 있습니다.

Amazon RDS에서 지원되는 PostgreSQL 버전 9.6.x 확장 기능 및 모듈

다음 표에는 현재 Amazon RDS PostgreSQL에서 지원되는 PostgreSQL 버전 9.6.x의 PostgreSQL 확장 기능 및 모듈이 나와 있습니다. "해당 사항 없음"은 확장 기능 및 모듈이 해당 PostgreSQL 버전에서 지원되지 않는다는 것을 의미합니다. PostgreSQL 확장 기능에 대한 자세한 정보는 Packaging Related Objects into an Extension을 참조하십시오.

확장 9.6.1 9.6.2 9.6.3 9.6.5
address_standardizer 2.3.0 2.3.2 2.3.2 2.3.2
address_standardizer_data_us 2.3.0 2.3.2 2.3.2 2.3.2
블룸 1.0 1.0 1.0 1.0
btree_gin 1.0 1.0 1.0 1.0
btree_gist 1.2 1.2 1.2 1.2
chkpass 1.0 1.0 1.0 1.0
citext 1.3 1.3 1.3 1.3
cube 1.2 1.2 1.2 1.2
dblink 1.2 1.2 1.2 1.2
dict_int 1.0 1.0 1.0 1.0
dict_xsyn 1.0 1.0 1.0 1.0
earthdistance 1.1 1.1 1.1 1.1
fuzzystrmatch 1.1 1.1 1.1 1.1
hstore 1.4 1.4 1.4 1.4
hstore_plperl 1.0 1.0 1.0 1.0
intagg 1.1 1.1 1.1 1.1
intarray 1.2 1.2 1.2 1.2
ip4r 2.0 2.0 2.0 2.0
isn 1.1 1.1 1.1 1.1
log_fdw-log_fdw 확장 사용 참조 해당 사항 없음 1.0 1.0 1.0
ltree 1.1 1.1 1.1 1.1
pgaudit 해당 사항 없음 해당 사항 없음 1.1 1.1
pg_buffercache 1.2 1.2 1.2 1.2
pg_freespacemap 해당 사항 없음 1.1 1.1 1.1
pg_hint_plan 해당 사항 없음 1.1.3 1.1.3 1.1.3
pg_prewarm 1.1 1.1 1.1 1.1
pg_repack 해당 사항 없음 해당 사항 없음 1.4.0 1.4.1
pg_stat_statements 1.4 1.4 1.4 1.4
pg_trgm 1.3 1.3 1.3 1.3
pg_visibility 1.1 1.1 1.1 1.1
pgcrypto 1.3 1.3 1.3 1.3
pgrowlocks 1.2 1.2 1.2 1.2
pgrouting 해당 사항 없음 해당 사항 없음 해당 사항 없음 2.3.2
pgstattuple 1.4 1.4 1.4 1.4
plcoffee 1.5.3 1.5.3 1.5.3 1.5.3
plls 1.5.3 1.5.3 1.5.3 1.5.3
plperl 1.0 1.0 1.0 1.0
plpgsql 1.0 1.0 1.0 1.0
pltcl 1.0 1.0 1.0 1.0
plv8 1.5.3 1.5.3 1.5.3 1.5.3
PostGIS 2.3.0 2.3.2 2.3.2 2.3.2
postgis_tiger_geocoder 2.3.0 2.3.2 2.3.2 2.3.2
postgis_topology 2.3.0 2.3.2 2.3.2 2.3.2
postgres_fdw 1.0 1.0 1.0 1.0
postgresql-hll 해당 사항 없음 해당 사항 없음 해당 사항 없음 2.10.2
sslinfo 1.2 1.2 1.2 1.2
tablefunc 1.0 1.0 1.0 1.0
test_parser 1.0 1.0 1.0 1.0
tsearch2 1.0 1.0 1.0 1.0
tsm_system_rows 1.0 1.0 1.0 1.0
tsm_system_time 1.0 1.0 1.0 1.0
unaccent 1.1 1.1 1.1 1.1
uuid-ossp 1.1 1.1 1.1 1.1

다음은 아래와 같이 PostgreSQL 9.6 버전에서 지원되는 모듈입니다.

모듈 9.6.1 9.6.2 9.6.3 9.6.5
auto_explain 해당 사항 없음 해당 사항 없음 지원 지원
decoder_raw 해당 사항 없음 해당 사항 없음 해당 사항 없음 지원
test_decoder 지원 지원 지원 지원
wal2json 해당 사항 없음 해당 사항 없음 지원 지원
Amazon RDS에서 지원되는 PostgreSQL 버전 9.5.x 확장 기능

다음 표에는 현재 Amazon RDS PostgreSQL에서 지원되는 PostgreSQL 버전 9.5.x의 PostgreSQL 확장 기능 및 모듈이 나와 있습니다. "해당 사항 없음"은 확장 기능 및 모듈이 해당 PostgreSQL 버전에서 지원되지 않는다는 것을 의미합니다. PostgreSQL 확장 기능에 대한 자세한 정보는 Packaging Related Objects into an Extension을 참조하십시오.

확장 9.5.2 9.5.4 9.5.6 9.5.7 9.5.9
address_standardizer 2.2.2 2.2.2 2.2.5 2.2.5 2.2.5
address_standardizer_data_us 2.2.2 2.2.2 2.2.5 2.2.5 2.2.5
블룸 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음
btree_gin 1.0 1.0 1.0 1.0 1.0
btree_gist 1.1 1.1 1.1 1.1 1.1
chkpass 1.0 1.0 1.0 1.0 1.0
citext 1.1 1.1 1.1 1.1 1.1
cube 1.0 1.0 1.0 1.0 1.0
dblink 1.1 1.1 1.1 1.1 1.1
dict_int 1.0 1.0 1.0 1.0 1.0
dict_xsyn 1.0 1.0 1.0 1.0 1.0
earthdistance 1.0 1.0 1.0 1.0 1.0
fuzzystrmatch 1.0 1.0 1.0 1.0 1.0
hstore 1.3 1.3 1.3 1.3 1.3
hstore_plperl 1.0 1.0 1.0 1.0 1.0
intagg 1.0 1.0 1.0 1.0 1.0
intarray 1.0 1.0 1.0 1.0 1.0
ip4r 2.0 2.0 2.0 2.0 2.0
isn 1.0 1.0 1.0 1.0 1.0
log_fdw—log_fdw 확장 사용 참조 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음
ltree 1.0 1.0 1.0 1.0 1.0
pgaudit 해당 사항 없음 해당 사항 없음 해당 사항 없음 1.0.5 1.0.5
pg_buffercache 1.1 1.1 1.1 1.1 1.1
pg_freespacemap 해당 사항 없음 해당 사항 없음 1.0 1.0 1.0
pg_hint_plan 해당 사항 없음 해당 사항 없음 1.1.3 1.1.3 1.1.3
pg_prewarm 1.0 1.0 1.0 1.0 1.0
pg_stat_statements 1.3 1.3 1.3 1.3 1.3
pg_trgm 1.1 1.1 1.1 1.1 1.1
pg_visibility 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음 해당 사항 없음
pgcrypto 1.2 1.2 1.2 1.2 1.2
pgrowlocks 1.1 1.1 1.1 1.1 1.1
pgstattuple 1.3 1.3 1.3 1.3 1.3
plcoffee 1.4.4 1.4.4 1.4.4 1.4.4 1.4.4
plls 1.4.4 1.4.4 1.4.4 1.4.4 1.4.4
plperl 1.0 1.0 1.0 1.0 1.0
plpgsql 1.0 1.0 1.0 1.0 1.0
pltcl 1.0 1.0 1.0 1.0 1.0
plv8 1.4.4 1.4.4 1.4.4 1.4.4 1.4.4
PostGIS 2.2.2 2.2.2 2.2.5 2.2.5 2.2.5
postgis_tiger_geocoder 2.2.2 2.2.2 2.2.5 2.2.5 2.2.5
postgis_topology 2.2.2 2.2.2 2.2.5 2.2.5 2.2.5
postgres_fdw 1.0 1.0 1.0 1.0 1.0
sslinfo 1.0 1.0 1.0 1.0 1.0
tablefunc 1.0 1.0 1.0 1.0 1.0
test_parser 1.0 1.0 1.0 1.0 1.0
tsearch2 1.0 1.0 1.0 1.0 1.0
tsm_system_rows 해당 사항 없음 해당 사항 없음 1.0 1.0 1.0
tsm_system_time 해당 사항 없음 해당 사항 없음 1.0 1.0 1.0
unaccent 1.0 1.0 1.0 1.0 1.0
uuid-ossp 1.0 1.0 1.0 1.0 1.0

다음은 아래와 같이 PostgreSQL 9.5 버전에서 지원되는 모듈입니다.

모듈 9.5.2 9.5.4 9.5.6 9.5.7 9.5.9
auto_explain 해당 사항 없음 해당 사항 없음 해당 사항 없음 지원 지원
test_decoder 해당 사항 없음 해당 사항 없음 지원 지원 지원
wal2json 해당 사항 없음 해당 사항 없음 해당 사항 없음 지원 지원
Amazon RDS에서 지원되는 PostgreSQL 버전 9.4.x 확장 기능 및 모듈

다음 표에는 현재 Amazon RDS PostgreSQL에서 지원되는 PostgreSQL 버전 9.4.x의 PostgreSQL 확장 기능 및 모듈이 나와 있습니다. "해당 사항 없음"은 확장 기능 및 모듈이 해당 PostgreSQL 버전에서 지원되지 않는다는 것을 의미합니다. PostgreSQL 확장 기능에 대한 자세한 정보는 Packaging Related Objects into an Extension을 참조하십시오.

확장 9.4.7 9.4.9 9.4.11
address_standardizer 해당 사항 없음 해당 사항 없음 해당 사항 없음
address_standardizer_data_us 해당 사항 없음 해당 사항 없음 해당 사항 없음
블룸 해당 사항 없음 해당 사항 없음 해당 사항 없음
btree_gin 1.0 1.0 1.0
btree_gist 1.0 1.0 1.0
chkpass 1.0 1.0 1.0
citext 1.0 1.0 1.0
cube 1.0 1.0 1.0
dblink 1.1 1.1 1.1
dict_int 1.0 1.0 1.0
dict_xsyn 1.0 1.0 1.0
earthdistance 1.0 1.0 1.0
fuzzystrmatch 1.0 1.0 1.0
hstore 1.3 1.3 1.3
hstore_plperl 해당 사항 없음 해당 사항 없음 해당 사항 없음
intagg 1.0 1.0 1.0
intarray 1.0 1.0 1.0
ip4r 2.0 2.0 2.0
isn 1.0 1.0 1.0
log_fdw—log_fdw 확장 사용 참조 해당 사항 없음 해당 사항 없음 해당 사항 없음
ltree 1.0 1.0 1.0
pg_buffercache 1.0 1.0 1.0
pg_freespacemap 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_hint_plan 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_prewarm 1.0 1.0 1.0
pg_stat_statements 1.2 1.2 1.2
pg_trgm 1.1 1.1 1.1
pg_visibility 해당 사항 없음 해당 사항 없음 해당 사항 없음
pgcrypto 1.1 1.1 1.1
pgrowlocks 1.1 1.1 1.1
pgstattuple 1.2 1.2 1.2
plcoffee 1.4.4 1.4.4 1.4.4
plls 1.4.4 1.4.4 1.4.4
plperl 1.0 1.0 1.0
plpgsql 1.0 1.0 1.0
pltcl 1.0 1.0 1.0
plv8 1.4.4 1.4.4 1.4.4
PostGIS 2.1.8 2.1.8 2.1.8
postgis_tiger_geocoder 2.1.8 2.1.8 2.1.8
postgis_topology 2.1.8 2.1.8 2.1.8
postgres_fdw 1.0 1.0 1.0
sslinfo 1.0 1.0 1.0
tablefunc 1.0 1.0 1.0
test_parser 1.0 1.0 1.0
tsearch2 1.0 1.0 1.0
tsm_system_rows 해당 사항 없음 해당 사항 없음 해당 사항 없음
tsm_system_time 해당 사항 없음 해당 사항 없음 해당 사항 없음
unaccent 1.0 1.0 1.0
uuid-ossp 1.0 1.0 1.0

다음은 아래와 같이 PostgreSQL 9.4 버전에서 지원되는 모듈입니다.

모듈 9.4.7 9.4.9 9.4.11 9.4.12 9.4.14
test_decoder 해당 사항 없음 해당 사항 없음 해당 사항 없음 지원 지원
Amazon RDS에서 지원되는 PostgreSQL 버전 9.3.x 확장 기능

다음 표에는 현재 Amazon RDS PostgreSQL에서 지원되는 PostgreSQL 버전 9.3.x의 PostgreSQL 확장 기능이 나와 있습니다. "해당 사항 없음"은 PostgreSQL 버전이 확장 가능하지 않다는 의미입니다. PostgreSQL 확장 기능에 대한 자세한 정보는 Packaging Related Objects into an Extension을 참조하십시오.

확장 9.3.12 9.3.14 9.3.16
address_standardizer 해당 사항 없음 해당 사항 없음 해당 사항 없음
address_standardizer_data_us 해당 사항 없음 해당 사항 없음 해당 사항 없음
블룸 해당 사항 없음 해당 사항 없음 해당 사항 없음
btree_gin 1.0 1.0 1.0
btree_gist 1.0 1.0 1.0
chkpass 1.0 1.0 1.0
citext 1.0 1.0 1.0
cube 1.0 1.0 1.0
dblink 1.1 1.1 1.1
dict_int 1.0 1.0 1.0
dict_xsyn 1.0 1.0 1.0
earthdistance 1.0 1.0 1.0
fuzzystrmatch 1.0 1.0 1.0
hstore 1.2 1.2 1.2
hstore_plperl 해당 사항 없음 해당 사항 없음 해당 사항 없음
intagg 1.0 1.0 1.0
intarray 1.0 1.0 1.0
ip4r 해당 사항 없음 해당 사항 없음 해당 사항 없음
isn 1.0 1.0 1.0
log_fdw—log_fdw 확장 사용 참조 해당 사항 없음 해당 사항 없음 해당 사항 없음
ltree 1.0 1.0 1.0
pg_buffercache 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_freespacemap 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_hint_plan 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_prewarm 해당 사항 없음 해당 사항 없음 해당 사항 없음
pg_stat_statements 1.1 1.1 1.1
pg_trgm 1.1 1.1 1.1
pg_visibility 해당 사항 없음 해당 사항 없음 해당 사항 없음
pgcrypto 1.0 1.0 1.0
pgrowlocks 1.1 1.1 1.1
pgstattuple 해당 사항 없음 해당 사항 없음 해당 사항 없음
plcoffee 1.4.4 1.4.4 1.4.4
plls 1.4.4 1.4.4 1.4.4
plperl 1.0 1.0 1.0
plpgsql 1.0 1.0 1.0
pltcl 1.0 1.0 1.0
plv8 1.4.4 1.4.4 1.4.4
PostGIS 2.1.8 2.1.8 2.1.8
postgis_tiger_geocoder 2.1.8 2.1.8 2.1.8
postgis_topology 2.1.8 2.1.8 2.1.8
postgres_fdw 1.0 1.0 1.0
sslinfo 1.0 1.0 1.0
tablefunc 1.0 1.0 1.0
test_parser 1.0 1.0 1.0
tsearch2 1.0 1.0 1.0
tsm_system_rows 해당 사항 없음 해당 사항 없음 해당 사항 없음
tsm_system_time 해당 사항 없음 해당 사항 없음 해당 사항 없음
unaccent 1.0 1.0 1.0
uuid-ossp 1.0 1.0 1.0
Amazon RDS PostGIS에 대한 PostgreSQL 확장 기능 지원

다음 표는 Amazon RDS PostgreSQL 버전과 함께 제공되는 PostGIS 구성 요소 버전을 나타낸 것입니다.

버전 PostGIS GEOS GDAL PROJ
9.3.12 2.1.8 r13780 3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.4, 2016년 1월 25일 출시

릴리스 4.9.2, 2015년 9월 8일

9.3.14 2.1.8 r13780 3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일

9.3.16 2.1.8 r13780 3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일

9.3.17 2.1.8 r13780 3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일

9.4.7

2.1.8 r13780

3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.4, 2016년 1월 25일 출시

릴리스 4.9.2, 2015년 9월 8일
9.4.9

2.1.8 r13780

3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일
9.4.11

2.1.8 r13780

3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일
9.4.12

2.1.8 r13780

3.5.0-CAPI-1.9.0 r4084

GDAL 1.11.5, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일
9.5.2

2.2.2 r14797

3.5.0-CAPI-1.9.0 r4084

GDAL 2.0.2, 2016년 1월 26일 출시

릴리스 4.9.2, 2015년 9월 8일
9.5.4

2.2.2 r14797

3.5.0-CAPI-1.9.0 r4084

GDAL 2.0.3, 2016년 7월 1일 출시

릴리스 4.9.2, 2015년 9월 8일
9.5.6

2.2.5 r15298

3.5.1-CAPI-1.9.1 r4246

GDAL 2.0.3, 2016년 7월 1일 출시

릴리스 4.9.3, 2016년 8월 15일

9.5.7

2.2.5 r15298

3.5.1-CAPI-1.9.1 r4246

GDAL 2.0.3, 2016년 7월 1일 출시

릴리스 4.9.3, 2016년 8월 15일

9.6.1

2.3.0 r15146

3.5.0-CAPI-1.9.0 r4084

GDAL 2.1.1, 2016년 7월 7일 출시

릴리스 4.9.2, 2015년 9월 8일
9.6.2

2.3.2 r15302

3.5.1-CAPI-1.9.1 r4246

GDAL 2.1.3, 2017년 1월 20일 출시

릴리스 4.9.3, 2016년 8월 15일

9.6.3

2.3.2 r15302

3.5.1-CAPI-1.9.1 r4246

GDAL 2.1.3, 2017년 1월 20일 출시

릴리스 4.9.3, 2016년 8월 15일

PostGIS 확장 기능을 사용하려면 다음 명령을 실행하여 확장 기능을 먼저 생성해야 합니다.

Copy
CREATE EXTENSION POSTGIS;
log_fdw 확장 사용

log_fdw 확장 기능은 Amazon RDS PostgreSQL 버전 9.6.2 이상부터 새롭게 추가되었습니다. 이 확장 기능을 사용하면 SQL 인터페이스에서 데이터베이스 엔진 로그에 액세스할 수 있습니다. RDS에서 기본으로 생성되는 stderr log 로그 파일을 볼 수 있을 뿐 아니라 CSV 로그(log_destination 파라미터를 csvlog로 설정)를 보고 여러 열로 깔끔하게 분할된 데이터로 외부 테이블을 빌드할 수 있습니다.

이 확장 기능은 데이터베이스 로그용 외부 테이블을 간편하게 생성할 수 있게 해주는 새 함수 2개를 제공합니다.

  • list_postgres_log_files() – 데이터베이스 로그 디렉터리의 파일과 파일 크기(단위: 바이트)를 나열합니다.

  • create_foreign_table_for_log_file(table_name text, server_name text, log_file_name text) – 현재 데이터베이스에서 지정된 파일에 대해 외부 테이블을 빌드합니다.

log_fdw가 생성하는 모든 함수는 rds_superuser가 소유합니다. rds_superuser 역할의 구성원은 다른 데이터베이스 사용자에게 이러한 함수에 대한 액세스 권한을 부여할 수 있습니다.

다음 예제는 log_fdw 확장을 사용하는 방법을 보여 줍니다.

log_fdw 확장을 사용하려면

  1. log_fdw 확장을 가져옵니다.

    Copy
    postgres=> CREATE EXTENSION log_fdw; CREATE EXTENSION
  2. 로그 서버를 외부 데이터 래퍼로 생성합니다.

    Copy
    postgres=> CREATE SERVER log_server FOREIGN DATA WRAPPER log_fdw; CREATE SERVER
  3. 로그 파일 목록에서 모든 파일을 선택합니다.

    Copy
    postgres=> SELECT * from list_postgres_log_files() order by 1;

    샘플 응답은 다음과 같습니다.

    Copy
    file_name | file_size_bytes ----------------------------------+----------------- postgresql.log.2016-08-09-22.csv | 1111 postgresql.log.2016-08-09-23.csv | 1172 postgresql.log.2016-08-10-00.csv | 1744 postgresql.log.2016-08-10-01.csv | 1102 (4 rows)
  4. CSV 파일이 아닐 때는 'log_entry' 열 하나만 포함된 테이블을 생성합니다.

    Copy
    postgres=> SELECT create_foreign_table_for_log_file('my_postgres_error_log', 'log_server', 'postgresql.log.2016-08-09-22.csv');

    샘플 응답은 다음과 같습니다.

    Copy
    ----------------------------------- (1 row)
  5. 로그 파일의 샘플을 선택합니다. 다음 코드는 로그 시간 및 오류 메시지 설명을 검색합니다.

    Copy
    postgres=> SELECT log_time, message from my_postgres_error_log order by 1;

    샘플 응답은 다음과 같습니다.

    Copy
    log_time | message ----------------------------------+--------------------------------------------------------------------------- Tue Aug 09 15:45:18.172 2016 PDT | ending log output to stderr Tue Aug 09 15:45:18.175 2016 PDT | database system was interrupted; last known up at 2016-08-09 22:43:34 UTC Tue Aug 09 15:45:18.223 2016 PDT | checkpoint record is at 0/90002E0 Tue Aug 09 15:45:18.223 2016 PDT | redo record is at 0/90002A8; shutdown FALSE Tue Aug 09 15:45:18.223 2016 PDT | next transaction ID: 0/1879; next OID: 24578 Tue Aug 09 15:45:18.223 2016 PDT | next MultiXactId: 1; next MultiXactOffset: 0 Tue Aug 09 15:45:18.223 2016 PDT | oldest unfrozen transaction ID: 1822, in database 1 (7 rows)

지원되는 PostgreSQL 기능

Amazon RDS에서는 가장 일반적인 PostgreSQL 기능을 대부분 지원합니다. 다음이 포함됩니다.

Amazon RDS의 PostgreSQL에 대한 논리적 복제

PostgreSQL 9.4 이상 버전에서는 논리적 복제 슬롯을 통한 WAL 변경 스트리밍을 지원합니다. Amazon RDS에서는 PostgreSQL DB 인스턴스 9.4.9 이상 버전과 9.5.4 이상 버전에 대한 논리적 복제를 지원합니다. 논리적 복제를 사용하여 인스턴스에 대한 논리적 복제 슬롯을 설정하고 해당 슬롯을 통해 데이터베이스 변경을 클라이언트(예: pg_recvlogical)에 스트리밍할 수 있습니다. 논리적 슬롯은 데이터베이스 수준에서 생성되며 단일 데이터베이스에 대한 복제 연결을 지원합니다.

Amazon RDS의 PostgreSQL 논리적 복제는 새 파라미터, 새 복제 연결 유형 및 새 보안 역할에 의해 활성화됩니다. PostgreSQL DB 인스턴스의 데이터베이스에 대한 복제 연결을 설정할 수 있는 모든 클라이언트는 복제용 클라이언트가 될 수 있습니다.

가장 일반적인 PostgreSQL 논리적 복제용 클라이언트는 AWS EC2 인스턴스의 사용자 지정 관리형 호스트 또는 AWS Database Migration Service입니다. 논리적 복제 슬롯에서는 스트림 수신기에 대해 아무것도 알지 못하며, 대상이 복제본 데이터베이스일 필요가 없습니다. 논리적 복제 슬롯을 설정하고 슬롯에서 데이터를 읽지 않을 경우 데이터가 DB 인스턴스의 스토리지에 기록될 수 있습니다. 그러면 인스턴스의 스토리지가 빠르게 가득 찰 수 있습니다.

PostgreSQL의 논리적 복제 사용에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.

PostgreSQL용 Amazon RDS DB 인스턴스에 대한 논리적 복제를 활성화하려면 다음을 수행해야 합니다.

  • Amazon RDS의 PostgreSQL 데이터베이스에 대한 논리적 복제를 시작하는 AWS 사용자 계정은 rds_superuser 역할과 rds_replication 역할이 있어야 합니다. rds_replication 역할은 논리적 슬롯을 관리하고 논리적 슬롯을 사용하여 데이터를 스트리밍할 수 있는 권한을 부여합니다.

  • rds.logical_replication 파라미터를 1으로 설정합니다. 이는 고정 파라미터이며, 적용하려면 재부팅해야 합니다. 이 파라미터를 적용하는 중에 wal_level, max_wal_senders, max_replication_slots, max_connections 파라미터를 설정합니다. 이러한 파라미터 변경은 WAL 생성을 강화하므로 논리적 슬롯을 사용할 때 rds.logical_replication 파라미터만 설정하면 됩니다.

  • 아래 설명된 대로 논리적 복제 슬롯을 생성합니다. 이 프로세스를 수행하려면 디코딩 플러그인을 지정해야 합니다. 현재는 PostgreSQL과 함께 제공되는 ‘test_decoding’ 출력 플러그인을 지원합니다.

논리적 복제 슬롯 작업

SQL 명령을 사용하여 논리적 슬롯 작업을 수행할 수 있습니다. 예를 들어 다음 명령은 기본 PostgreSQL 출력 플러그인인 test_decoding을 사용하여 test_slot 논리적 슬롯을 생성합니다.

Copy
SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding');

다음과 같이 출력됩니다

Copy
slot_name | xlog_position -----------------+--------------- regression_slot | 0/16B1970 (1 row)

논리적 슬롯 목록을 보려면 다음 명령을 사용합니다.

Copy
SELECT * FROM pg_replication_slots;

논리적 슬롯을 삭제하려면 다음 명령을 사용합니다.

Copy
SELECT pg_drop_replication_slot('test_slot');

다음과 같이 출력됩니다

Copy
pg_drop_replication_slot ----------------------- (1 row)

논리적 복제 슬롯 작업에 대한 더 많은 예제는 PostgreSQL 문서의 Logical Decoding Examples를 참조하십시오.

논리적 복제 슬롯을 생성한 후 스트리밍을 시작할 수 있습니다. 다음 예에서는 PostgreSQL 배포에 포함된 pg_recvlogical 프로그램을 사용하여 스트리밍 복제 프로토콜에 대한 논리적 디코딩을 제어하는 방법을 보여 줍니다. 이렇게 하려면 복제 연결을 허용하도록 클라이언트 인증을 설정해야 합니다.

Copy
pg_recvlogical -d postgres --slot test_slot -U master --host sg-postgresql1.c6c8mresaghgv0.us-west-2.rds.amazonaws.com -f - --start
Amazon RDS의 PostgreSQL에 대한 이벤트 트리거

PostgreSQL 9.4.9 이상 버전과 9.5.4 이상 버전에서는 이벤트 트리거를 지원하고, Amazon RDS에서는 이러한 버전에 대한 이벤트 트리거를 지원합니다. 마스터 사용자 계정을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다.

예를 들어 다음 코드는 모든 DDL 명령의 끝에 현재 사용자를 인쇄하는 이벤트 트리거를 생성합니다.

Copy
CREATE OR REPLACE FUNCTION raise_notice_func() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RAISE NOTICE 'In trigger function: %', current_user; END; $$; CREATE EVENT TRIGGER event_trigger_1 ON ddl_command_end EXECUTE PROCEDURE raise_notice_func();

PostgreSQL 이벤트 트리거에 대한 자세한 내용은 PostgreSQL 문서의 Event Triggers를 참조하십시오.

Amazon RDS에서 PostgreSQL 이벤트 트리거를 사용하는 데 대한 몇 가지 제한 사항이 있습니다. 다음이 포함됩니다.

  • 읽기 전용 복제본에 대한 이벤트 트리거를 생성할 수 없지만, 읽기 전용 복제본 마스터에 대한 이벤트 트리거는 생성할 수 있습니다. 그러면 이벤트 트리거가 읽기 전용 복제본으로 복사됩니다. 읽기 전용 복제본으로 복사된 이벤트 트리거는 변경 내용이 마스터에서 푸시되더라도 읽기 전용 복제본에서 발생하지 않습니다. 하지만 읽기 전용 복제본이 승격되면 데이터베이스 작업이 있을 때 기존 이벤트 트리거가 발생합니다.

  • 이벤트 트리거를 사용하는 PostgreSQL DB 인스턴스로의 메이저 버전 업그레이드를 수행하려면 인스턴스를 업그레이드하기 전에 이벤트 트리거를 삭제해야 합니다.

PostgreSQL용 Amazon RDS의 방대한 페이지

PostgreSQL용 Amazon RDS는 PostgreSQL 버전 9.4.11 이상, 9.5.6 이상 및 9.6.2 이상에서 다양한 페이지 크기를 지원합니다. 여기에는 4K 및 2MB 페이지 크기도 포함됩니다.

방대한 페이지는 연속 메모리 청크를 대량으로 사용할 때 오버헤드를 줄여줍니다. 애플리케이션에 방대한 페이지를 할당하려면 mmap 또는 SYSV 공유 메모리 호출을 사용합니다. PostgreSQL 데이터베이스용 Amazon RDS에서 방대한 페이지를 활성화하려면 huge_pages 파라미터를 사용합니다. 방대한 페이지를 사용하려면 이 파라미터를 "on"으로 설정합니다. 기본값은 "off"입니다.

huge_pages 파라미터를 "on"으로 설정할 경우 Amazon RDS가 사용 가능한 공유 메모리를 기반으로 방대한 페이지를 사용합니다. DB 인스턴스가 공유 메모리 제약 때문에 방대한 페이지를 사용할 수 없을 경우 Amazon RDS는 DB 인스턴스 시작을 금지하고 DB 인스턴스 상태를 파라미터 호환 장애 상태로 설정합니다. 이 경우, huge_pages 파라미터를 "off"로 설정하여 Amazon RDS가 DB 인스턴스를 시작하도록 허용할 수 있습니다.

shared_buffers 파라미터가 방대한 페이지를 사용하는 데 필요한 공유 메모리 풀을 설정하는 관건입니다. shared_buffers 파라미터 기본값은 해당 인스턴스의 메모리에서 사용 가능한 총 8K 페이지에 대한 백분율로 설정됩니다. 방대한 페이지를 사용할 경우 이러한 페이지는 함께 배치된 방대한 페이지에 할당됩니다. 공유 메모리 파라미터를 DB 인스턴스 메모리의 90% 이상을 요구하도록 설정할 경우 Amazon RDS가 DB 인스턴스를 파라미터 호환 장애 상태로 설정하므로 주의해야 합니다. PostgreSQL용 공유 메모리 설정에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.

참고

db.m1, db.m2, db.m3 및 db.t1 DB 인스턴스 클래스에서는 방대한 페이지가 지원되지 않습니다.

Amazon RDS의 PostgreSQL에 대한 테이블 공간

호환성을 위해 Amazon RDS의 PostgreSQL에서 테이블스페이스가 지원됩니다. 모든 스토리지가 단일 논리 볼륨 상에 있으므로, IO 분할 또는 격리에 테이블스페이스를 사용할 수 없습니다. Amazon은 단일 논리 볼륨이 대부분의 사용 사례에 최선의 설정임을 보여주는 벤치마크 결과와 실용적 경험을 보유하고 있습니다.

Amazon RDS의 PostgreSQL용 Autovacuum

PostgreSQL auto-vacuum은 선택적이지만 매우 권장되는 파라미터로서, 새 PostgreSQL DB 인스턴스에 대해서는 기본적으로 설정됩니다. 이 파라미터를 해제하지 마십시오. Amazon RDS PostgreSQL과 함께 auto-vacuum을 사용하는 자세한 방법은 Amazon RDS에서 PostgreSQL Autovacuum 사용 단원을 참조하십시오.

stats_temp_directory에 대한 RAM 디스크

PostgreSQL용 Amazon RDS의 rds.pg_stat_ramdisk_size 파라미터를 사용하여 PostgreSQL stats_temp_directory 저장용 RAM 디스크에 할당되는 시스템 메모리를 지정할 수 있습니다. RAM 디스크 파라미터는 Amazon RDS의 모든 PostgreSQL 버전에 사용할 수 있습니다.

특정 워크로드에서 이 파라미터를 설정하면 성능이 향상되고 IO 요구 사항이 감소될 수 있습니다. stats_temp_directory에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.

stats_temp_directory에 대한 RAM 디스크를 활성화하려면 DB 인스턴스에 사용되는 파라미터 그룹에서 rds.pg_stat_ramdisk_size 파라미터를 0이 아닌 값으로 설정합니다. 파라미터 값은 MB 단위입니다. 변경 사항을 적용하려면 DB 인스턴스를 재부팅해야 합니다.

예를 들어 다음 AWS CLI 명령은 RAM 디스크 파라미터를 256MB로 설정합니다.

Copy
postgres=>aws rds modify-db-parameter-group \ --db-parameter-group-name pg-95-ramdisk-testing \ --parameters "ParameterName=rds.pg_stat_ramdisk_size, ParameterValue=256, ApplyMethod=pending-reboot"

재부팅 후 다음 명령을 실행하여 stats_temp_directory의 상태를 확인합니다.

Copy
postgres=>show stats_temp_directory;

명령은 다음을 반환합니다.

Copy
stats_temp_directory --------------------------- /rdsdbramdisk/pg_stat_tmp (1 row)
PostgreSQL용 ALTER ENUM

Amazon RDS PostgreSQL 버전 9.6.2 및 9.5.6 이상은 열거형 값 변경을 지원합니다. 이 기능은 Amazon RDS의 다른 버전에서는 제공되지 않습니다.

다음 코드는 열거형 값을 변경하는 예제입니다.

Copy
postgres=> CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple'); CREATE TYPE postgres=> CREATE TABLE t1 (colors rainbow); CREATE TABLE postgres=> INSERT INTO t1 VALUES ('red'), ( 'orange'); INSERT 0 2 postgres=> SELECT * from t1; colors -------- red orange (2 rows) postgres=> ALTER TYPE rainbow RENAME VALUE 'red' TO 'crimson'; ALTER TYPE postgres=> SELECT * from t1; colors --------- crimson orange (2 rows)

PostgreSQL DB 인스턴스에 대한 제한

PostgreSQL DB 인스턴스는 최대 40개까지 보유할 수 있으며, Amazon RDS에서 PostgreSQL에 대한 제한 사항 목록은 다음과 같습니다.

  • PostgreSQL DB 인스턴스를 위한 최소 스토리지 크기는 5GB입니다.

  • PostgreSQL DB 인스턴스를 위한 최대 스토리지 크기는 인스턴스당 6TB입니다.

  • Amazon RDS는 시스템 유지 관리를 위해 최대 3개의 연결을 예약합니다. 사용자 연결 파라미터의 값을 지정할 경우 사용할 것으로 예상하는 연결 개수에 3을 더할 필요가 있습니다.

PostgreSQL DB 인스턴스 업그레이드

관리할 수 있는 PostgreSQL DB 인스턴스의 업그레이드 유형은 두 가지가 있습니다:

  • OS 업데이트 – 보안 수정 사항이나 OS 변경 사항을 적용하기 위해 때때로 Amazon RDS가 DB 인스턴스의 기본 작업 시스템을 업데이트해야 할 수 있습니다. OS 업데이트는 RDS 콘솔, AWS Command Line Interface(AWS CLI) 또는 RDS API를 사용해 Amazon RDS의 적용 시기를 결정할 수 있습니다.

    OS 업데이트에 대한 자세한 내용은 다음을 참조하십시오. DB 인스턴스 또는 DB 클러스터에 대한 운영 체제 업데이트

  • 데이터베이스 엔진 업그레이드 – Amazon RDS에서 새 데이터베이스 엔진 버전을 지원하는 경우, DB 인스턴스를 새 버전으로 업그레이드할 수 있습니다. 메이저 버전 업그레이드와 마이너 버전 업그레이드라는 두 가지 업그레이드가 있습니다. Amazon RDS는 PostgreSQL DB 인스턴스의 메이저 및 마이너 버전 업그레이드를 둘 다 지원합니다.

    PostgreSQL DB 엔진 업그레이드에 대한 자세한 내용은 PostgreSQL DB 엔진 업그레이드 단원을 참조하십시오.

PostgreSQL DB 인스턴스와 함께 SSL 사용

Amazon RDS는 PostgreSQL DB 인스턴스를 위한 SSL 암호화를 지원합니다. SSL을 사용하여 애플리케이션과 PostgreSQL DB 인스턴스 사이의 PostgreSQL 연결을 암호화할 수 있습니다. 또한 PostgreSQL DB 인스턴스에 대한 모든 연결에서 SSL을 사용하도록 지정할 수도 있습니다.

PostgreSQL의 모든 AWS 리전에서 SSL 지원 기능을 사용할 수 있습니다. Amazon RDS는 PostgreSQL DB 인스턴스가 생성될 때 인스턴스의 SSL 인증서를 만듭니다. SSL 인증서 확인을 활성화하는 경우에는 SSL 인증서에 스푸핑 공격으로부터 보호해주는 SSL 인증서를 위한 일반 이름(CN)으로 DB 인스턴스 엔드포인트가 포함됩니다.

SSL을 통해 PostgreSQL DB 인스턴스에 연결하려면

  1. https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem에 저장된 인증서를 다운로드합니다.

  2. 다음과 같이 사용 중인 운영 체제로 인증서를 가져옵니다.

  3. 연결 문자열에 sslmode=verify-full를 추가하여 SSL을 통해 PostgreSQL DB 인스턴스에 연결합니다. sslmode=verify-full을 사용하면 SSL 연결에서 SSL 인증서의 엔드포인트와 비교하여 DB 인스턴스 엔드포인트를 확인합니다.

    sslrootcert 파라미터를 사용하여 인증서를 참조합니다(예: sslrootcert=rds-ssl-ca-cert.pem).

psql 프로그램을 사용하여 PostgreSQL DB 인스턴스에 연결하는 예는 다음과 같습니다.

Copy
$ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 \ "dbname=testpg user=testuser sslrootcert=rds-ca-2015-root.pem sslmode=verify-full"
PostgreSQL DB 인스턴스에 SSL 연결 요구

rds.force_ssl 파라미터를 사용하여 PostgreSQL DB 인스턴스에 대한 연결이 SSL을 사용하도록 요구할 수 있습니다. 기본적으로 rds.force_ssl 파라미터는 0(해제)으로 설정됩니다. rds.force_ssl 파라미터를 1(설정)로 설정하면 해당 DB 인스턴스에 대한 연결에 대해 SSL을 요구합니다. rds.force_ssl 파라미터를 업데이트해도 PostgreSQL ssl 파라미터가 1(설정)로 설정되고, DB 인스턴스의 pg_hba.conf 파일이 새로운 SSL 구성을 지원하도록 수정됩니다.

rds.force_ssl 파라미터 값은 DB 인스턴스의 파라미터 그룹을 업데이트하여 설정할 수 있습니다. DB 인스턴스의 파라미터 그룹이 기본 파라미터 그룹이 아니고 rds.force_ssl 파라미터를 1로 설정할 때 ssl 파라미터가 이미 1로 설정되어 있을 경우 DB 인스턴스를 재부팅할 필요가 없습니다. 그렇지 않을 경우 변경 사항을 적용하려면 DB 인스턴스를 재부팅해야 합니다. 파라미터 그룹에 대한 자세한 정보는 DB 파라미터 그룹 작업 단원을 참조하십시오.

DB 인스턴스에 대해 rds.force_ssl 파라미터를 1로 설정하면 연결 시 다음과 같이 SSL이 요구된다는 출력이 표시됩니다.

Copy
$ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql (9.3.12, server 9.4.4) WARNING: psql major version 9.3, server major version 9.4. Some psql features might not work. SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. postgres=>
SSL 연결 상태 확인

DB 인스턴스에 연결할 때 로그온 배너에 연결의 암호화된 상태가 표시됩니다.

Copy
Password for user master: psql (9.3.12) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help.   postgres=>

또한, sslinfo 확장을 로드한 다음 show ssl 함수를 호출하여 SSL이 사용 중인지 확인할 수 있습니다. 이 함수는 연결이 SSL을 사용할 경우 on을 반환하고, 그렇지 않으면 off를 반환합니다.

Copy
postgres=> create extension sslinfo; CREATE EXTENSION postgres=> show ssl; ssl ---- on (1 row)

select ssl_cipher() 명령을 사용하여 SSL 암호를 확인할 수 있습니다.

Copy
postgres=> select ssl_cipher(); ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)

set rds.force_ssl을 활성화하고 인스턴스를 다시 시작하면 SSL이 아닌 연결은 다음 메시지와 함께 거부됩니다.

Copy
$ export PGSSLMODE=disable $ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql: FATAL: no pg_hba.conf entry for host "host.ip", user "someuser", database "postgres", SSL off $