Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기 - Amazon Aurora

Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기

Aurora PostgreSQL DB 클러스터에서 데이터를 쿼리하여 Amazon S3 버킷에 저장된 파일로 직접 내보낼 수 있습니다. 이 작업을 수행하려면 먼저 Aurora PostgreSQL aws_s3 확장을 설치해야 합니다. 이 확장은 쿼리 결과를 Amazon S3로 내보내는 데 사용하는 기능을 제공합니다. 다음에서는 확장 프로그램을 설치하는 방법과 Amazon S3로 데이터를 내보내는 방법을 확인할 수 있습니다.

프로비저닝된 인스턴스 또는 Aurora Serverless v2 DB 인스턴스에서 내보낼 수 있습니다. 이 단계는 Aurora Serverless v1에서 지원되지 않습니다.

참고

Amazon S3로 계정 간 내보내기는 지원되지 않습니다.

현재 사용 가능한 모든 Aurora PostgreSQL 버전은 Amazon Simple Storage Service로 데이터 내보내기를 지원합니다. 자세한 버전 정보는 Aurora PostgreSQL 릴리스 정보에서 Amazon Aurora PostgreSQL 업데이트를 참조하세요.

내보내기용으로 버킷을 설정하지 않은 경우 Amazon Simple Storage Service 사용 설명서의 다음 주제를 참조하세요.

기본적으로 Aurora PostgreSQL에서 Amazon S3로 내보낸 데이터는 AWS 관리형 키를 통한 서버 측 암호화를 사용합니다. 이미 생성한 고객 관리형 키를 사용할 수도 있습니다. 버킷 암호화를 사용하는 경우 Amazon S3 버킷은 AWS Key Management Service(AWS KMS) 키(SSE-KMS)로 암호화되어야 합니다. 현재 Amazon S3 관리형 키(SSE-S3)로 암호화된 버킷은 지원되지 않습니다.

참고

AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 DB 및 DB 클러스터 스냅샷 데이터를 Amazon S3에 저장할 수 있습니다. 자세한 내용은 Amazon S3로 DB 클러스터 스냅샷 데이터 내보내기 단원을 참조하세요.

aws_s3 확장 설치

Amazon Simple Storage Service를 Aurora PostgreSQL DB 클러스터 와 함께 사용하려면 먼저 aws_s3 확장을 설치해야 합니다. 이 확장은 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에서 Amazon S3 버킷으로 데이터를 내보내는 기능을 제공합니다. Amazon S3에서 데이터를 가져오기 위한 함수도 제공합니다. 자세한 내용은 PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터 단원을 참조하세요. aws_s3 확장은 필요할 때 자동으로 설치되는 aws_commons 확장의 일부 도우미 기능에 따라 다릅니다.

aws_s3 확장을 설치하려면
  1. psql(또는 PGAdmin)을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스rds_superuser 권한을 가진 사용자로 연결합니다. 설정 과정에서 기본 이름을 계속 사용했다면 postgres로 연결합니다.

    psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. 다음 명령을 실행하여 확장을 생성합니다.

    postgres=> CREATE EXTENSION aws_s3 CASCADE; NOTICE: installing required extension "aws_commons" CREATE EXTENSION
  3. 확장 프로그램이 설치되었는지 확인하려면 psql \dx 메타 명령을 사용하면 됩니다.

    postgres=> \dx List of installed extensions Name | Version | Schema | Description -------------+---------+------------+--------------------------------------------- aws_commons | 1.2 | public | Common data types across AWS services aws_s3 | 1.1 | public | AWS S3 extension for importing data from S3 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows)

이제 Amazon S3에서 데이터를 가져오고 Amazon S3로 데이터를 내보내는 기능을 사용할 수 있습니다.

Aurora PostgreSQL 버전에서 Amazon S3로 내보내기를 지원하는지 확인

describe-db-engine-versions 명령을 사용하여 Aurora PostgreSQL 버전이 Amazon S3로 내보내기를 지원하는지 확인할 수 있습니다. 다음 예제에서는 버전 10.14를 Amazon S3로 내보낼 수 있는지 확인합니다.

aws rds describe-db-engine-versions --region us-east-1 \ --engine aurora-postgresql --engine-version 10.14 | grep s3Export

출력에 "s3Export" 문자열이 포함된 경우 엔진은 Amazon S3 내보내기를 지원합니다. 그렇지 않으면 엔진이 이 내보내기를 지원하지 않습니다.

Amazon S3으로 데이터 내보내기 개요

Aurora PostgreSQL 데이터베이스에 저장된 데이터를 Amazon S3 버킷으로 내보내려면 다음 절차를 따르세요.

Aurora PostgreSQL 데이터를 S3로 내보내려면
  1. 데이터를 내보내는 데 사용할 Amazon S3 파일 경로를 식별합니다. 이 프로세스에 대한 자세한 내용은 내보낼 Amazon S3 파일 경로 지정 단원을 참조하십시오.

  2. Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다.

    Amazon S3 파일로 데이터를 내보내려면 Aurora PostgreSQL DB 클러스터에 내보내기 시 스토리지에 사용할 Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다. 여기에는 다음 단계가 포함됩니다.

    1. 내보낼 Amazon S3 버킷에 대한 액세스를 제공하는 IAM 정책을 생성합니다.

    2. IAM 역할 생성.

    3. 생성한 정책을 생성한 역할에 연결하십시오.

    4. 이 IAM 역할을 DB 클러스터 에 추가합니다.

    이 프로세스에 대한 자세한 내용은 Amazon S3 버킷에 대한 액세스 권한 설정 단원을 참조하십시오.

  3. 데이터를 가져올 데이터베이스 쿼리를 식별합니다. aws_s3.query_export_to_s3 함수를 호출하여 쿼리 데이터를 내보냅니다.

    앞의 준비 작업을 완료한 후 aws_s3.query_export_to_s3 함수를 사용하여 쿼리 결과를 Amazon S3으로 내보냅니다. 이 프로세스에 대한 자세한 내용은 aws_s3.query_export_to_s3 함수를 사용하여 쿼리 데이터 내보내기 단원을 참조하세요.

내보낼 Amazon S3 파일 경로 지정

다음 정보를 지정하여 데이터를 내보낼 Amazon S3 위치를 식별합니다.

  • 버킷 이름 – 버킷은 Amazon S3 객체 또는 파일을 위한 컨테이너입니다.

    Amazon S3을 이용한 데이터 저장에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 생성객체 보기를 참조하세요.

  • 파일 경로 – 파일 경로는 내보낸 데이터가 Amazon S3 버킷에서 저장되는 위치를 식별합니다. 파일 경로는 다음과 같이 구성됩니다.

    • 가상 폴더 경로를 식별하는 선택적 경로 접두사입니다.

    • 저장할 하나 이상의 파일을 식별하는 파일 접두사입니다. 내보내는 데이터가 클 경우 각각 최대 크기가 약 6GB인 여러 파일에 저장됩니다. 추가 파일 이름의 파일 접두사도 동일하지만 _partXX가 추가됩니다. XX는 2, 3 등을 나타냅니다.

    예를 들어 exports 폴더와 query-1-export 파일 접두사가 있는 파일 경로는 /exports/query-1-export입니다.

  • AWS 리전(선택 사항) – Amazon S3 버킷이 위치한 AWS 리전입니다. AWS 리전 값을 지정하지 않으면 AuroraDB 클러스터 내보내기와 동일한 AWS 리전의 Amazon S3에 파일을 저장합니다.

    참고

    현재 AWS 리전은 내보내는 DB 클러스터의 리전과 동일해야 합니다.

    AWS 리전 이름 및 연결된 값의 목록은 리전 및 가용 영역 섹션을 참조하십시오.

내보내는 데이터를 저장할 위치에 대한 Amazon S3 파일 정보를 보관하려면 aws_commons.create_s3_uri 함수를 사용하여 다음과 같이 aws_commons._s3_uri_1 복합 구조를 생성할 수 있습니다.

psql=> SELECT aws_commons.create_s3_uri( 'amzn-s3-demo-bucket', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset

나중에 이 s3_uri_1 값을 aws_s3.query_export_to_s3 함수에 대한 호출의 파라미터로 제공합니다. 예제는 aws_s3.query_export_to_s3 함수를 사용하여 쿼리 데이터 내보내기을 참조하세요.