Aurora PostgreSQL Limitless Database 데이터 로드 유틸리티 사용 - Amazon Aurora

Aurora PostgreSQL Limitless Database 데이터 로드 유틸리티 사용

Aurora는 Aurora PostgreSQL DB 클러스터 또는 RDS for PostgreSQL DB 인스턴스에서 Limitless Database로 직접 데이터를 로드하는 유틸리티를 제공합니다.

데이터 로드 유틸리티를 사용하려면 다음 단계를 수행합니다.

제한 사항

데이터 로드 유틸리티에는 다음과 같은 제한 사항이 있습니다.

  • enum, ARRAY, BOX, CIRCLE, LINE, LSEG, PATH, PG_LSN, PG_SNAPSHOT, POLYGON, TSQUERY, TSVECTOR, TXID_SNAPSHOT 데이터 유형은 지원되지 않습니다.

  • 로드 중에 VARBIT 데이터 유형에서 선행 0(0)이 제거됩니다.

  • 소스 테이블에 복합 프라이머리 키가 있는 경우 데이터 마이그레이션이 실패합니다.

  • 대상 테이블에 외래 키가 있는 경우 데이터 마이그레이션이 실패합니다.

  • RDS for PostgreSQL 다중 AZ DB 클러스터에서 데이터 로드는 지원되지 않습니다.

사전 조건

데이터 로드 유틸리티에는 다음과 같은 사전 조건이 있습니다.

  • 소스 데이터베이스는 Aurora PostgreSQL 또는 RDS for PostgreSQL 버전 11.x 이상을 사용해야 합니다.

  • 소스 데이터베이스는 대상 DB 샤드 그룹과 동일한 AWS 계정 및 AWS 리전에 있어야 합니다.

  • 소스 DB 클러스터 또는 DB 인스턴스가 available 상태여야 합니다.

  • 소스 데이터베이스와 무한 데이터베이스의 테이블은 테이블 이름, 열 이름 및 열 데이터 유형이 동일해야 합니다.

  • 소스 및 대상 테이블에는 열과 열 순서가 동일한 프라이머리 키가 있어야 합니다.

  • 데이터 로드 명령을 실행하려면 무한 데이터베이스에 연결할 수 있는 환경이 있어야 합니다. 사용 가능한 명령은 다음과 같습니다.

    • rds_aurora.limitless_data_load_start

    • rds_aurora.limitless_data_load_cancel

  • CDC의 경우:

    • 소스 데이터베이스와 대상 DB 샤드 그룹 모두 동일한 DB 서브넷 그룹, VPC 보안 그룹 및 데이터베이스 포트를 사용해야 합니다. 이러한 설정은 소스 데이터베이스와 DB 샤드 그룹의 라우터 모두에 대한 네트워크 연결을 위한 것입니다.

    • 소스 데이터베이스에서 논리적 복제를 활성화해야 합니다. 소스 데이터베이스 사용자에게 논리적 복제를 읽을 권한이 있어야 합니다.

소스 데이터베이스 준비

데이터 로드를 위해 소스 데이터베이스에 액세스하려면 수신 네트워크 트래픽을 허용해야 합니다. 다음 단계를 수행합니다.

소스 데이터베이스로의 네트워크 트래픽을 허용하는 방법
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 보안 그룹 페이지로 이동합니다.

  3. 소스 DB 클러스터 또는 인스턴스에서 사용하는 보안 그룹의 보안 그룹 ID를 선택합니다.

    예를 들어 보안 그룹 ID는 sg-056a84f1712b77926입니다.

  4. 인바운드 규칙 탭에서 다음을 수행합니다.

    1. 인바운드 규칙 편집을 선택합니다.

    2. 소스 DB 클러스터 또는 인스턴스에 대한 새 인바운드 규칙을 추가합니다.

      • 포트 범위 - 소스 데이터베이스의 데이터베이스 포트로, 일반적으로 5432입니다.

      • 보안 그룹 ID - 이 예시에서는 sg-056a84f1712b77926입니다.

      소스 데이터베이스에 대한 인바운드 규칙을 추가합니다.
  5. 아웃바운드 규칙 탭에서 다음을 수행합니다.

    1. 아웃바운드 규칙 편집을 선택합니다.

    2. 소스 DB 클러스터 또는 인스턴스에 대한 새 아웃바운드 규칙을 추가합니다.

      • 데이터베이스 포트 - All traffic(0-65535 포트 포함)

      • 보안 그룹 ID - 이 예시에서는 sg-056a84f1712b77926입니다.

      소스 데이터베이스에 대한 아웃바운드 규칙을 추가합니다.
  6. AWS Management Console에 로그인하고 https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  7. 네트워크 ACL 페이지로 이동합니다.

  8. 기본 네트워크 ACL에 설명된 대로 기본 네트워크 ACL 구성을 추가합니다.

대상 데이터베이스 준비

Aurora PostgreSQL Limitless Database 테이블 만들기의 프로시저에 따라 DB 샤드 그룹에 대상 테이블을 만듭니다.

대상 테이블에는 소스 테이블과 동일한 스키마, 테이블 이름 및 프라이머리 키가 있어야 합니다.

데이터베이스 자격 증명 만들기

소스 및 대상 데이터베이스에서 데이터베이스 사용자를 만들고 사용자에게 필요한 권한을 부여해야 합니다. 자세한 내용은 PostgreSQL 설명서에서 CREATE USERGRANT를 참조하세요.

소스 데이터베이스 자격 증명 만들기

소스 데이터베이스 사용자가 명령에서 전달되어 로드를 시작합니다. 이 사용자에게는 소스 데이터베이스에서 복제를 수행할 권한이 있어야 합니다.

  1. 데이터베이스 마스터 사용자(또는 rds_superuser 역할을 가진 다른 사용자)를 사용하여 LOGIN 권한이 있는 소스 데이터베이스 사용자를 만듭니다.

    CREATE USER source_db_username WITH PASSWORD 'source_db_user_password';
  2. 소스 데이터베이스 사용자에게 rds_superuser 역할을 부여합니다.

    GRANT rds_superuser to source_db_username;
  3. full_load_and_cdc 모드를 사용하는 경우 소스 데이터베이스 사용자에게 rds_replication 역할을 부여합니다. rds_replication 역할은 논리적 슬롯을 관리하고 논리적 슬롯을 사용하여 데이터를 스트리밍할 수 있는 권한을 부여합니다.

    GRANT rds_replication to source_db_username;

대상 데이터베이스 자격 증명 만들기

대상 데이터베이스 사용자는 DB 샤드 그룹의 대상 테이블에 쓸 수 있는 권한이 있어야 합니다.

  1. 데이터베이스 마스터 사용자(또는 rds_superuser 역할을 가진 다른 사용자)를 사용하여 LOGIN 권한이 있는 대상 데이터베이스 사용자를 만듭니다.

    CREATE USER destination_db_username WITH PASSWORD 'destination_db_user_password';
  2. 대상 데이터베이스 사용자에게 rds_superuser 역할을 부여합니다.

    GRANT rds_superuser to destination_db_username;