기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터베이스를 소스로 사용하기 위한 사전 조건
참고
Firehose는 중국 리전 AWS GovCloud (US) Regions및 아시아 태평양(말레이시아)을 AWS 리전 제외한 모든에서 데이터베이스를 소스로 지원합니다. 이 기능은 미리 보기 중이며 변경될 수 있습니다. 프로덕션 워크로드에 사용하지 마세요.
시작하기 전에 다음 사전 조건을 완료합니다.
-
소스 데이터베이스 구성 - 데이터베이스를 Firehose 스트림의 소스로 사용하려면 다음 소스 데이터베이스 구성이 필요합니다.
-
올바른 권한이 있는 스냅샷 워터마크 테이블 생성 - 테이블의 데이터에 대한 초기 복사(스냅샷)의 경우 Firehose는 워터마크가 포함된 증분 복사 접근 방식을 사용하여 진행 상황을 추적합니다. 이 증분 복사 접근 방식은 중단 시 테이블을 다시 캡처하는 것보다 중지된 위치에서 복사를 재개하는 데 도움이 됩니다. Firehose는 데이터베이스에 워터마크 테이블을 사용하여 필요한 워터마크를 저장합니다. Firehose에는 Firehose 스트림당 하나의 워터마크 테이블이 필요합니다. Firehose 스트림 생성 전에 테이블이 아직 생성되지 않은 경우 Firehose는 스트림 생성의 일부로이 테이블을 생성합니다. Firehose가이 테이블을 생성하려면 올바른 권한을 제공해야 합니다.
-
데이터베이스 사용자 생성 - Firehose는 테이블의 초기 복사본을 만들고, 트랜잭션 로그에서 CDC 이벤트를 읽고, 워터마크 테이블에 액세스하고, 아직 생성되지 않은 워터마크 테이블을 생성할 수 있는 적절한 권한이 있는 데이터베이스 사용자 계정이 필요합니다. 이 데이터베이스 사용자 이름과 암호를 Firehose 자격 증명의 일부로 사용하여 스트림 설정 중에 데이터베이스에 연결합니다.
-
트랜잭션 로그 활성화 - 트랜잭션 로그는 데이터베이스에 커밋된 순서대로 INSERT, UPDATE 및 DELETE와 같은 모든 데이터베이스 변경 사항을 기록합니다. Firehose는 트랜잭션 로그를 읽고 변경 사항을 Apache Iceberg 테이블에 복제합니다. 트랜잭션 로그가 활성화되지 않은 경우 이를 활성화해야 합니다.
-
인바운드 및 아웃바운드 규칙 추가 - 데이터베이스에 대한 프라이빗 연결을 허용하려면 HTTPS 트래픽에 대한 인바운드 규칙 및 아웃바운드 규칙과 데이터베이스( MySQL 또는 PostgreSQL) 트래픽에 대한 인바운드 규칙을 데이터베이스 VPC의 보안 그룹에 추가해야 합니다. 소스 열에는 CIDR IPv4의 VPC 범위를 사용합니다.
워터마크 테이블, 데이터베이스 사용자를 생성하고 트랜잭션 로그를 활성화하려면의 단계를 따릅니다데이터베이스 연결 설정.
-
-
데이터베이스에 대한 프라이빗 연결 활성화 - Firehose는 기술을 사용하여 AWS PrivateLink VPC 내에서 데이터베이스에 연결할 수 있도록 지원합니다. 데이터베이스에 대한 프라이빗 연결을 활성화하려면 AWS PrivateLink 및 Network Load Balancer를 사용하여 RDS 간 Amazon VPCs 액세스를
참조하세요. 다음은 데이터베이스에 연결하기 위해 유의해야 할 몇 가지 사항입니다. -
이 단계는 EC2에서 실행되는 데이터베이스에도 적용됩니다.
-
이 예제에서 사용되는 Lambda 함수의 제한 시간을 기본 3초에서 5분으로 늘려야 합니다.
-
Lambda 함수를 실행하여 기본 인스턴스 IP 주소를 Network Load Balancer로 업데이트하기 전에 Lambda가 AWS Elastic Load Balancing 서비스와 통신할 수 있도록 데이터베이스 VPC
com.amazonaws.us-east-1.elasticloadbalancing
내에서와 같은 AWS 서비스 이름을 가진 VPC 엔드포인트를 생성해야 합니다. -
Firehose 서비스 보안 주체가 VPC AWS PrivateLink 에 생성
firehose.amazonaws.com
하도록 허용해야 합니다. 자세한 내용은 권한 관리를 참조하세요. 이 서비스 역할의 ARN를 추가하지 마십시오. 허용 보안 주체에만firehose.amazonaws.com
를 추가합니다. -
Amazon VPC를 통해 필수 수락 옵션을 비활성화하여 엔드포인트 서비스가 연결 요청을 자동으로 수락하도록 허용해야 합니다. 이렇게 하면 Firehose가 수동 개입 없이 필요한 엔드포인트 연결을 생성할 수 있습니다. 연결 요청을 비활성화하는 방법에 대한 자세한 내용은 연결 요청 수락 또는 거부를 참조하세요.
-
-
에 자격 증명 저장 AWS Secrets Manager - Firehose는 AWS Secrets Manager 를 사용하여 데이터베이스에 연결하는 데 사용되는 자격 증명을 검색합니다. 이전 사전 요구 사항에서 생성한 데이터베이스 사용자 자격 증명을의 보안 암호로 추가합니다 AWS Secrets Manager. 자세한 내용은 Amazon Data Firehose AWS Secrets Manager 에서 로 인증을 참조하세요.
-
필요한 권한이 있는 IAM 역할 생성 - Firehose는 Amazon S3에 데이터를 액세스 AWS Secrets Manager, AWS Glue 테이블 및 쓸 수 있는 특정 권한이 있는 IAM 역할이 필요합니다. 동일한 역할을 사용하여 Amazon S3 버킷에 대한 AWS Glue 액세스 권한을 부여합니다. Apache Iceberg 테이블과 Firehose를 생성할 때이 IAM 역할이 필요합니다. 자세한 내용은 Firehose에 데이터베이스 변경 사항을 Apache Iceberg 테이블에 복제할 수 있는 액세스 권한 부여 단원을 참조하십시오.
-
Apache Iceberg 테이블 생성 - Firehose 스트림 생성 중에 설정을 활성화하면 Firehose가 자동으로 Iceberg 테이블을 생성할 수 있습니다. Firehose가 Iceberg 테이블을 생성하지 않도록 하려면 소스 데이터베이스 테이블과 동일한 이름과 스키마를 가진 Iceberg 테이블을 생성해야 합니다. Glue를 사용하여 Iceberg 테이블을 생성하는 방법에 대한 자세한 내용은 Iceberg 테이블 생성을 참조하세요.
참고
다음 매핑을 사용하여 Apache Iceberg 테이블을 생성해야 합니다.
-
MySQL 소스 데이터베이스의 경우 AWS Glue 데이터베이스 이름에 매핑되고 소스 테이블 이름은 AWS Glue 테이블 이름에 매핑됩니다.
-
PostgreSQL의 경우 소스 데이터베이스 이름은 AWS Glue 데이터베이스에 매핑되고 소스 스키마 이름과 테이블 이름은
<SchemaName>_<TableName>
형식으로 AWS Glue 테이블 이름에 매핑됩니다. 테이블을 직접 생성하는 경우 소스 스키마와 대상 스키마가 정확히 일치해야 합니다.
-