목차

  1. 배경
  2. Private Connectivity 구성
  3. Cloudformation을 통한 리소스 생성
  4. Amazon Data Firehose 구성
  5. 테스트

배경

Amazon Data Firehose에서 데이터베이스 변경 사항을 캡처하고 Amazon S3의 Apache Iceberg 테이블에 복제할 수 있게 되었습니다(평가판). 이 기능을 통해 MySQL 및 PostgreSQL 데이터베이스의 실시간 데이터를 Apache Iceberg 테이블로 손쉽게 직접 스트리밍할 수 있습니다.

Amazon Data Firehose supports continuous replication of database changes to Apache Iceberg Tables in Amazon S3 - AWS

Amazon Data Firehose가 데이터베이스에 접근하여 데이터베이스의 변경 사항을 캡처하고 Apache Iceberg로 전달하기 위해 사전 요구사항 작업들이 있습니다. 이 자료는 여러 사전 요구사항 중 Amazon Data Firehose가 고객의 Database에 접근 할 수 있도록 필요한 Private Connectivity 구성에 초점을 맞추고 설명하며, CloudFormation을 통해 Private Connectivity 구성에 필요한 리소스를 프로비저닝하여 이 기능을 빠르게 도입 및 테스트 할 수 있도록 돕습니다.

Prerequisites to use database as a source - Amazon Data Firehose


Private Connectivity 구성

image.png

  1. AWS Secret Manager에서 접속하려는 Database의 User/Password 정보를 저장합니다. 저장된 Secret 정보를 Amazon Data Firehoes에서 Database 접근 시 이를 활용합니다.
  2. RDS, Aurora, Self-Managed Database는 VPC 내의 리소스입니다. Amazon Data Firehose가 VPC 내 리소스에 접근 할 수 있도록 VPC Endpoint Service를 통해 접근합니다. VPC Endpoint Service는 Network Load Balancer나 Gateway Load Balancer가 필요합니다.
  3. Network Load Balancer에서 Target Group의 IP를 기반으로 접근합니다. Target Group은 Primary 인스턴스에 해당하며 만약 Aurora라면 Writer(Primary) 인스턴스의 IP를 통해 접근하게 됩니다.
  4. Amazon Data Firehose는 Aurora에서 읽은 Binlog 데이터들을 기반으로 S3기반의 Apache Iceberg에 기록하게 됩니다.