Amazon RDS/Aurora와 OpenSearch의 손쉬운 데이터 동기화!
Amazon OpenSearch Ingestion과 Amazon RDS/Aurora 통합으로 데이터베이스와 검색 엔진 간의 데이터 동기화 간소화
ETL 파이프라인(ETL Pipeline) 관리 없이 준실시간 데이터 동기화(Near Real-time Data Synchronization)를 지원하며, 하이브리드 검색 기능 제공
CDC 스트림(Change Data Capture Stream)을 활용하여 데이터베이스 변경 사항을 OpenSearch에 거의 실시간으로 복제
S3 스냅샷(S3 Snapshot)을 통해 초기 데이터 로드, 바이너리 로그(Binlog) 또는 Write-Ahead Log(WAL)를 사용하여 변경 사항 추적
CloudWatch 메트릭(CloudWatch Metrics) 및 OpenSearch Ingestion 대시보드를 통해 파이프라인 성능 및 데이터 동기화 모니터링 가능
데이터베이스와 검색 엔진 통합의 필요성
본문은 관계형 데이터베이스(Relational Database)가 구조화된 데이터 저장에 강점을 가지지만, 대용량 비구조적 텍스트 검색에는 한계가 있음을 지적한다. 반면, OpenSearch는 모든 필드 인덱싱을 통해 시맨틱 검색(Semantic Search)을 포함한 풍부한 검색 기능과 집계 기능을 제공한다. 기존에는 데이터베이스와 검색 인덱스 간의 데이터 동기화를 위해 ETL 파이프라인(ETL Pipeline)을 구축해야 했지만, 이는 복잡하고 비용이 많이 드는 작업이었다. 이번 통합을 통해 이러한 문제를 해결하고, 하이브리드 검색(Hybrid Search) 기능을 쉽게 구현할 수 있게 되었다.
OpenSearch Ingestion 아키텍처 심층 분석
Amazon OpenSearch Ingestion은 Amazon Aurora 또는 Amazon RDS와 OpenSearch Service 간의 준실시간 데이터 동기화를 제공한다. 데이터 수집 과정에서 OpenSearch Ingestion은 먼저 Aurora 또는 Amazon RDS가 초기 데이터를 내보낸 Amazon S3에서 데이터베이스 스냅샷을 로드한다. 이후, Aurora 또는 Amazon RDS의 CDC 스트림(Change Data Capture Stream)을 사용하여 추가 변경 사항을 거의 실시간으로 복제하여 OpenSearch Service에 인덱싱한다. 이 자동화된 프로세스는 수동 개입 없이 OpenSearch에서 데이터를 지속적으로 최신 상태로 유지한다.
데이터베이스 소스 구성 및 매핑
통합을 설정하기 전에 소스 데이터베이스의 로깅 설정을 구성해야 한다. Aurora MySQL의 경우 향상된 바이너리 로그 설정을 통해 클러스터 파라미터 그룹을 구성하고, Amazon RDS의 경우 인스턴스 파라미터 그룹 설정을 통해 기본 바이너리 로깅 또는 논리적 복제를 활성화한다. OpenSearch Ingestion은 기본적으로 동적 매핑을 사용하여 Aurora 또는 Amazon RDS 데이터 타입을 적절한 OpenSearch 필드 타입으로 자동 변환한다. 예를 들어, 데이터베이스 DATE 필드는 OpenSearch 날짜 타입이 되고, 숫자 필드는 해당하는 OpenSearch 숫자 타입으로 매핑된다. 인덱스 템플릿(Index Template)을 사용하여 이러한 매핑을 사용자 지정할 수 있다.
준실시간 데이터 동기화 시연
데이터베이스를 변경하면 OpenSearch Ingestion이 변경 데이터로 Amazon OpenSearch Service를 업데이트한다. 예를 들어, 직원의 급여를 업데이트하는 경우, Amazon Aurora가 변경 알림을 보내면 OpenSearch Ingestion 파이프라인이 이를 수신하고, 변경된 레코드를 거의 실시간으로 OpenSearch에 전송한다. OpenSearch Dashboards에서 인덱스를 확인하고, 쿼리를 통해 변경 사항을 확인할 수 있다. 이러한 준실시간 데이터 동기화는 실시간 재고 업데이트(Real-time Inventory Updates), 개인화된 추천(Personalized Recommendations) 등 다양한 애플리케이션에 활용될 수 있다.
통합의 한계 및 고려 사항
본 통합은 동일 리전(Region) 및 동일 계정(Account) 배포가 필요하며, 최적의 동기화를 위해 기본 키(Primary Key)가 필요하다. 현재 DDL(Data Definition Language) 문은 지원하지 않는다. 파이프라인 성능과 데이터 동기화는 CloudWatch 메트릭(CloudWatch Metrics)과 OpenSearch Ingestion 대시보드를 통해 모니터링할 수 있다. 이러한 제한 사항을 고려하여, 프로덕션 환경에 적용하기 전에 충분한 테스트와 성능 검증을 수행해야 한다.