[Subtítulo SEO]
Esta guía le permite integrar Amazon DynamoDB con Amazon OpenSearch Service para permitir la búsqueda en tiempo real. La mayoría de las aplicaciones deberían utilizar la integración sin ETL de Amazon DynamoDB con Amazon OpenSearch Service. Para las aplicaciones con requisitos que no se alinean con la integración sin ETL, esta guía muestra cómo realizar una carga inicial de datos desde DynamoDB a OpenSearch Service mediante funciones paralelas y cómo replicar nuevos datos en OpenSearch Service. Al mantener los datos en ambos lugares, puede dirigir las consultas a la base de datos que mejor se adapte a sus necesidades: DynamoDB impulsa cualquier patrón de acceso fijo que requiera rendimiento y escalabilidad, y OpenSearch Service potencia los patrones de acceso que requieren flexibilidad en la búsqueda y el filtrado.
Tenga en cuenta lo siguiente: [Descargo de responsabilidad]
Diagrama de la arquitectura
[Descripción del diagrama de arquitectura]
Carga inicial
Paso 1
Para procesar los datos existentes, se invoca una función de AWS Lambda para describir la tabla de Amazon DynamoDB y dividirla en varios segmentos según el recuento de artículos. La función escribe un mensaje en una cola de Amazon Simple Queue Service (Amazon SQS) para cada número de segmento.
Paso 2
Amazon SQS actúa como origen de eventos para Lambda. Lambda invocará funciones de los mensajes de la cola y procesará los segmentos de la tabla de DynamoDB en paralelo.
Paso 3
La función de Lambda usa un escaneo paralelo para leer el segmento de la tabla de DynamoDB que aparece en el evento de origen de Amazon SQS.
Paso 4
A continuación, la función escribe los datos recuperados de DynamoDB en Amazon OpenSearch Service por lotes mediante la operación de creación masiva.
Cambios en la transmisión
Paso 5
Inserte o actualice elementos en DynamoDB para invocar la captura mediante transmisiones de DynamoDB.
Paso 6
Las transmisiones de DynamoDB envían las modificaciones a nivel de elemento capturadas de DynamoDB a la función de actualización de transmisiones de Lambda.
Paso 7
La función de Lambda escribe esos datos en lotes en OpenSearch Service mediante la operación de indexación masiva. Realice un seguimiento de los documentos ingeridos con la métrica SearchableDocuments de Amazon CloudWatch.
Comenzar
Pilares de AWS Well-Architected Framework
AWS Well-Architected Framework le permite comprender las ventajas y desventajas de las decisiones que tome durante la creación de sistemas en la nube. Los seis pilares de este marco permiten aprender las prácticas recomendadas arquitectónicas para diseñar y explotar sistemas confiables, seguros, eficientes, rentables y sostenibles. Con la Herramienta de AWS Well-Architected, que se encuentra disponible gratuitamente en la Consola de administración de AWS, puede revisar sus cargas de trabajo con respecto a estas prácticas recomendadas al responder a un conjunto de preguntas para cada pilar.
El diagrama de arquitectura mencionado es un ejemplo de una solución que se creó teniendo en cuenta las prácticas recomendadas de una buena arquitectura. Para tener completamente una buena arquitectura, debe seguir todas las prácticas recomendadas de buena arquitectura posibles.
-
Excelencia operativa
AWS Cloud Development Kit (AWS CDK) define la infraestructura de la solución como código, lo que lo ayuda a lograr un despliegue uniforme. Lambda divide el trabajo en unidades de trabajo más pequeñas, cada una responsable de una función de aplicación diferente. Estas funciones de una sola tarea reducen los errores humanos y admiten pequeños cambios incrementales que son más fáciles de revertir si fallan.
-
Seguridad
Cuando corresponda, esta guía lanza los servicios en redes privadas de Amazon Virtual Private Cloud (Amazon VPC) en lugar de en redes públicas. Las redes privadas a través de Amazon VPC respaldan la seguridad en todas las capas, ya que le permiten controlar el modo en que se accede a los datos. Además, el uso de políticas de AWS Identity and Access Management (IAM) de un solo propósito y con los mínimos privilegios ayuda a evitar que los cambios en los permisos tengan consecuencias más amplias e imprevistas y reduce el riesgo de que los usuarios manejen mal los datos confidenciales. AWS Secrets Manager genera y almacena de forma segura los secretos de administración, lo que evita que los usuarios almacenen las credenciales en el código o en las variables de entorno, donde corren el riesgo de quedar expuestos.
-
Fiabilidad
Amazon SQS proporciona un mecanismo de reintento automático si se produce un error en una parte de la importación, lo que lo ayuda a recuperarse rápidamente de los errores. Como sistema de registro, DynamoDB utiliza la recuperación a un momento dado para realizar copias de seguridad continuas, lo que permite la recuperación en cualquier momento de los últimos 35 días. El servicio OpenSearch lo ayuda a evitar la deriva entre las dos bases de datos mediante la operación de “creación” para la carga inicial de datos, lo que evita que los datos antiguos sobrescriban los datos más nuevos. OpenSearch Service está configurado para usar un clúster de un solo nodo, pero puede cambiarlo por un clúster de zonas de disponibilidad múltiple para mantener la disponibilidad en producción.
-
Eficiencia en el rendimiento
Lambda le permite paralelizar las cargas de trabajo: las lecturas de DynamoDB pasan por escaneos paralelos segmentados divididos en varias invocaciones de funciones de Lambda. Esta paralelización permite un rendimiento significativamente mayor del que podría administrar un solo subproceso.
-
Optimización de costos
Lambda lee los elementos de DynamoDB juntos en un lote en lugar de hacerlo como solicitudes GetItem individuales. Como resultado, esta guía consume menos unidades de capacidad de lectura. Al reducir la cantidad de trabajo dedicado a tareas como la inicialización de conexiones, el uso de lotes reduce el tiempo de procesamiento y la cantidad de invocaciones de Lambda, lo que reduce los costos de procesamiento. Además, las operaciones por lotes de OpenSearch Service son eficientes y ayudan a reducir el costo total de los recursos computacionales.
-
Sostenibilidad
Lambda solo invoca funciones cuando es necesario trasladar los datos a OpenSearch Service y no se ejecuta mientras está inactivo. Esto lo ayuda a maximizar la utilización de los recursos computacionales. Además, al ser un servicio administrado sin servidor, DynamoDB ayuda a reducir las ineficiencias y la energía total consumida por sus cargas de trabajo.
Contenido relacionado
Ya está disponible la integración sin ETL de Amazon DynamoDB con Amazon OpenSearch Service
Descargo de responsabilidad
El código de muestra; las bibliotecas de software; las herramientas de línea de comandos; las pruebas de concepto; las plantillas; o cualquier otra tecnología relacionada (incluida cualquiera de las anteriores que proporcione nuestro personal) se brinda como contenido de AWS bajo el Contrato de cliente de AWS, o el contrato escrito pertinente entre usted y AWS (lo que sea aplicable). No debe utilizar este contenido de AWS en sus cuentas de producción, ni en producción ni en otros datos críticos. Es responsable de probar, proteger y optimizar el contenido de AWS, como el código de muestra, según corresponda para el uso de grado de producción en función de sus prácticas y estándares de control de calidad específicos. La implementación de contenido de AWS puede incurrir en cargos de AWS por crear o utilizar recursos con cargo de AWS, como ejecutar instancias de Amazon EC2 o utilizar el almacenamiento de Amazon S3.
Las referencias a servicios u organizaciones de terceros en esta Guía no implican un respaldo, patrocinio o afiliación entre Amazon o AWS y el tercero. La orientación de AWS es un punto de partida técnico, y puede personalizar su integración con servicios de terceros al implementar la arquitectura.