메인 콘텐츠로 건너뛰기

AWS Solutions Library

Amazon OpenSearch Service를 사용한 실시간 텍스트 검색 지침

개요

이 지침을 통해 Amazon DynamoDB를 Amazon OpenSearch Service와 통합하여 실시간 검색을 수행할 수 있습니다. 대부분의 애플리케이션은 Amazon OpenSearch Service와 제로 ETL 통합된 Amazon DynamoDB를 사용해야 합니다. 제로 ETL 통합과 맞지 않는 요구 사항이 있는 애플리케이션을 위해, 이 지침에서는 병렬 함수를 통해 DynamoDB에서 OpenSearch Service로 데이터를 처음 로드하는 방법과 새 데이터를 OpenSearch Service로 복제하는 방법을 설명합니다. 데이터를 두 곳에 보관하면 요구 사항에 가장 적합한 데이터베이스를 대상으로 쿼리를 수행할 수 있습니다. DynamoDB는 성능과 확장성이 필요한 모든 고정 액세스 패턴을 지원하고, OpenSearch Service는 검색과 필터링의 유연성이 필요한 액세스 패턴을 지원합니다.

작동 방식

이 아키텍처 다이어그램은 Amazon DynamoDB 테이블의 데이터를 로드하고 Amazon OpenSearch Service로 스트리밍하여 실시간 개방형 검색 및 필터링을 지원하는 방법을 보여줍니다.

시작하기

이 지침 배포

샘플 코드

샘플 코드를 사용하여 이 지침을 AWS 계정에 배포

Well-Architected 원칙

위의 아키텍처 다이어그램은 Well-Architected 모범 사례를 고려하여 생성된 솔루션의 예시입니다. Well-Architected를 완전히 충족하려면 가능한 많은 Well-Architected 모범 사례를 따라야 합니다.

AWS 클라우드 개발 키트 (AWS CDK) 는 솔루션의 인프라를 코드로 정의하여 일관된 배포를 달성하는 데 도움이 됩니다. Lambda는 작업을 각각 다른 애플리케이션 기능을 담당하는 더 작은 작업 단위로 나눕니다. 이러한 단일 태스크 기능은 인적 오류를 줄이고 실패 시 쉽게 되돌릴 수 있는 작은 점진적 변경을 지원합니다.

운영 우수성 백서 읽기

해당하는 경우, 본 지침은 퍼블릭 네트워크가 아닌 프라이빗 Amazon 가상 프라이빗 클라우드 (Amazon VPC) 네트워크에서 서비스를 시작합니다. Amazon VPC를 통한 프라이빗 네트워킹은 데이터 액세스 방식을 제어할 수 있게 하여 모든 계층에서 보안을 지원합니다. 또한 단일 목적의 최소 권한 AWS Identity and Access Management (IAM) 정책을 사용하면 권한 변경이 예상치 못한 광범위한 결과를 초래하는 것을 방지하고 사용자가 민감한 데이터를 잘못 처리할 위험을 줄일 수 있습니다. AWS Secrets Manager는 관리자 암호를 생성하고 안전하게 저장하여 사용자가 노출 위험이 있는 코드 또는 환경 변수에 자격 증명을 저장하지 못하도록 합니다.

보안 백서 읽기

Amazon SQS는 가져오기의 일부가 실패할 경우 자동 재시도 메커니즘을 제공하므로 장애를 신속하게 복구할 수 있습니다. 기록 시스템인 DynamoDB는 연속 백업에 특정 시점 복구를 사용하므로 지난 35일 이내에 원하는 시점으로 복구할 수 있습니다. OpenSearch Service를 사용하면 초기 데이터 로드 시 “생성” 작업을 사용하여 이전 데이터가 새 데이터를 덮어쓰지 못하도록 함으로써 두 데이터베이스 간의 편차를 방지할 수 있습니다. OpenSearch Service는 단일 노드 클러스터를 사용하도록 설정되었지만 프로덕션 환경에서 가용성을 유지하기 위해 이 클러스터를 다중 가용 영역 클러스터로 변경할 수 있습니다.

신뢰성 백서 읽기

Lambda를 사용하면 워크로드를 병렬화할 수 있습니다. DynamoDB에서 읽은 내용은 여러 Lambda 함수 호출로 분할된 분할된 병렬 스캔을 거칩니다. 이 병렬화를 통해 단일 스레드가 관리할 수 있는 것보다 훨씬 높은 처리량을 얻을 수 있습니다.

성능 효율성 백서 읽기

Lambda는 DynamoDB 항목을 개별 GetItem 요청으로 읽지 않고 일괄적으로 함께 읽습니다. 따라서 이 지침은 더 적은 읽기 용량 단위를 사용합니다. 배치 사용은 연결 초기화와 같은 작업에 소비되는 작업량을 줄임으로써 컴퓨팅 시간과 Lambda 호출 수를 줄여 컴퓨팅 비용을 낮춥니다. 또한 OpenSearch Service 배치 작업은 효율적이므로 컴퓨팅 리소스의 전체 비용을 줄일 수 있습니다.

비용 최적화 백서 읽기

Lambda는 데이터를 OpenSearch 서비스로 이동해야 하는 경우에만 함수를 호출하며 유휴 상태에서는 실행되지 않습니다. 이를 통해 컴퓨팅 리소스의 활용도를 극대화할 수 있습니다. 또한 DynamoDB는 서버리스 관리형 서비스로서 비효율성을 줄이고 워크로드에서 소비하는 총 전력을 줄이는 데 도움이 됩니다.

지속 가능성 백서 읽기

관련 콘텐츠

블로그

Amazon DynamoDB와 Amazon OpenSearch Service 제로 ETL 통합 정식 출시

이 블로그 게시물은 Amazon OpenSearch Service와 제로 ETL 통합된 Amazon DynamoDB를 시작하는 방법을 보여줍니다.

블로그 읽기

고지 사항

샘플 코드, 소프트웨어 라이브러리, 명령줄 도구, 개념 증명, 템플릿 또는 기타 관련 기술(AWS 직원을 통해 제공되는 상기 항목 포함)은 AWS 이용 계약 또는 귀하와 AWS 간의 서면 계약(둘 중 해당되는 것)에 따라 AWS 콘텐츠로 제공됩니다. 이 AWS 콘텐츠를 프로덕션 계정, 프로덕션 또는 기타 중요한 데이터에 사용해서는 안 됩니다. 귀하는 특정 품질 제어 방식 및 표준에 따라 프로덕션급 사용에 적절하게 샘플 코드와 같은 AWS 콘텐츠를 테스트, 보호 및 최적화할 책임이 있습니다. AWS 콘텐츠를 배포하면 Amazon EC2 인스턴스를 실행하거나 Amazon S3 스토리지를 사용할 때와 같이 요금이 부과되는 AWS 리소스를 생성하거나 사용하는 것에 대한 AWS 요금이 발생할 수 있습니다.

오늘 원하는 내용을 찾으셨나요?

페이지의 콘텐츠 품질을 개선할 수 있도록 피드백을 보내주세요.