Los datos están proliferando dentro de la empresa y los empleados están utilizando más aplicaciones que nunca para realizar su trabajo; de hecho, según Okta Inc., la cantidad de aplicaciones de software implementadas por grandes empresas en todas las industrias en todo el mundo ha aumentado. aumento 68%, alcanzando una media de 129 aplicaciones por empresa.
A medida que los empleados continúen haciendo autoservicio y aumente la cantidad de aplicaciones que utilizan, también aumentará la probabilidad de que la información empresarial crítica siga siendo difícil de encontrar o se pierda entre los sistemas, lo que afectará negativamente la productividad de la fuerza laboral y los costos operativos.
amazona kendra es un servicio de búsqueda inteligente impulsado por aprendizaje automático (ML). A diferencia de las tecnologías de búsqueda convencionales, Amazon Kendra reinventa la búsqueda al unificar datos no estructurados en múltiples fuentes de datos como parte de un único índice de búsqueda. Sus capacidades de procesamiento de lenguaje natural y aprendizaje profundo le facilitan la obtención de respuestas relevantes cuando las necesite.
Amazon Kendra Enterprise Edition incluye capacidad de almacenamiento para 500,000 documentos (150 GB de almacenamiento) y una capacidad de consulta de 40,000 consultas por día (0.5 consultas por segundo), y le permite ajustar la capacidad del índice aumentando o disminuyendo su consulta y las unidades de capacidad de almacenamiento según sea necesario.
Sin embargo, los patrones de uso y las necesidades comerciales no siempre son predecibles. En esta publicación, demostraremos cómo puede escalar automáticamente su índice de Amazon Kendra en función de un cronograma utilizando Puente de eventos de Amazon y AWS Lambda. Al hacer esto, puede aumentar la capacidad para el uso máximo, evitar la limitación del servicio, mantener la flexibilidad y controlar los costos.
Resumen de la solución
Amazon Kendra proporciona un panel que le permite evaluar la cantidad promedio de consultas por segundo para su índice. Con esta información, puede estimar la cantidad de unidades de capacidad adicionales que requiere su carga de trabajo en un momento específico.
Por ejemplo, el siguiente gráfico muestra que durante el horario comercial, se produce un aumento en el promedio de consultas por segundo, pero después del horario laboral, la cantidad de consultas se reduce. Basamos nuestra solución en este patrón para configurar un evento programado de EventBridge que activa la función Lambda de escalado automático.
El siguiente diagrama ilustra nuestra arquitectura.
Puede implementar la solución en su cuenta de dos formas diferentes:
- Implementar un Modelo de aplicación sin servidor de AWS (AWS SAM) plantilla:
- Clone el proyecto desde el aws-muestras repositorio en GitHub y siga las instrucciones.
- Cree los recursos utilizando el Consola de administración de AWS. En esta publicación, lo guiamos a través de los siguientes pasos:
- Configurar la función Lambda para escalar
- Configurar permisos para la función
- Prueba la función
- Configurar un evento programado de EventBridge
Configurar la función Lambda
Para crear la función Lambda que usamos para escalar, creamos una función usando el tiempo de ejecución de Python (para esta publicación, usamos el tiempo de ejecución de Python 3.8).
Utilice el siguiente código como contenido de su lambda_function.py
código:
Debe modificar las siguientes variables para que coincidan con su entorno:
- ÍNDICE_ID - El ID de su índice; puede comprobarlo en la consola de Amazon Kendra.
- UNIDADES_DEFAULT - La cantidad de unidades de procesamiento de consultas que su Amazon Kendra Enterprise Edition requiere para operar a la capacidad mínima. Este número puede oscilar entre 0 y 20 (puede solicitar más capacidad). 0 representa que no se aprovisionan unidades de capacidad adicional a su índice de Amazon Kendra Enterprise Edition, lo que lo deja con una capacidad predeterminada de 0.5 consultas por segundo.
- UNIDADES_ADICIONALES - La cantidad de unidades de capacidad de consulta que necesita en aquellos momentos en los que se requiere capacidad adicional. Este valor puede oscilar entre 1 y 20 (puede solicitar capacidad adicional).
Configurar permisos de función
Para consultar el estado de su índice y modificar el número de unidades de capacidad de consulta, debe adjuntar una política a su función Lambda Gestión de identidades y accesos de AWS (IAM) función de ejecución con esos permisos.
- En la consola de Lambda, navegue hasta su función.
- En Permisos pestaña, elija el rol de ejecución.
La consola de IAM se abre automáticamente.
- En Permisos pestaña, elegir Adjuntar políticas.
- Elige Crear política.
Se abre una nueva pestaña.
- En JSON pestaña, agregue el siguiente contenido (asegúrese de proporcionar su cuenta y la información de usuario):
- Elige Siguiente: Etiquetas.
- Elige Siguiente: Revisión.
- Nombre, ingrese un nombre de política (para esta publicación, usamos
AmazonKendra_UpdateIndex
). - Elige Crear política.
- En Adjuntar permisos página, elija el icono de actualización.
- Filtre para encontrar la política que creó.
- Seleccione la política y elija Adjuntar política.
Prueba la función
Puede probar su función Lambda ejecutando un evento de prueba. Para más información, ver Invocar la función Lambda.
- En la consola de Lambda, navegue hasta su función.
- Cree un nuevo evento de prueba eligiendo Probar.
- Seleccione Crear nuevo evento de prueba.
- Plantilla de evento, debido a que su función no requiere ninguna entrada del evento, puede elegir el
hello-world
plantilla de evento.
- Elige Crear.
- Elige Probar.
En los registros de funciones de Lambda, puede ver los siguientes mensajes:
Configurar un evento programado de EventBridge
Un evento programado de EventBridge es un evento de EventBridge que se activa con una programación regular. Esta sección muestra cómo crear un evento programado de EventBridge que se ejecute todos los días a las 7 a. M. UTC y a las 8 p. M. UTC para activar el kendra-index-scaler
Función lambda. Esto permite que su índice se amplíe con las unidades de capacidad de consulta adicionales a las 7 a. M. Y se reduzca a las 8 p. M.
Cuando configura eventos programados de EventBridge, lo hace para la zona horaria UTC, por lo que debe calcular la diferencia horaria. Por ejemplo, para ejecutar el evento a las 7 a. M. Hora estándar central (CST), debe establecer la hora en 1 p. M. UTC. Si desea adaptarse al horario de verano, debe crear una regla diferente para tener en cuenta la diferencia.
- En la consola de EventBridge, en el panel de navegación, en Eventos, escoger Reglas.
- Elige Crear regla.
- Nombre, ingrese un nombre para su regla (para esta publicación, usamos
kendra-index-scaler
).
- En Definir patrón sección, seleccionar Horarios.
- Seleccione Expresión de cron e introduzca
0 7,20 * * ? *
.
Usamos esto expresión cron para activar el evento EventBridge todos los días a las 7 a. m. y a las 8 p. m.
- En Seleccionar bus de eventos sección, seleccionar Bus de eventos predeterminado de AWS.
- En Seleccionar objetivos sección, para Target, escoger función lambda.
- Función, ingrese la función que creó anteriormente (
lambda_function_kendra_index_handler
).
- Elige Crear.
Puedes comprobar Registros de Amazon CloudWatch para lambda_function_kendra_index_handler
función y ver cómo se comporta dependiendo de las unidades de capacidad de consulta de su índice.
Conclusión
En esta publicación, implementó un mecanismo para escalar automáticamente unidades de procesamiento de consultas adicionales para su índice de Amazon Kendra Enterprise Edition.
Como siguiente paso, puede revisar periódicamente sus patrones de uso para planificar la programación que se adapte a su volumen de consultas. Para obtener más información sobre los casos de uso, los beneficios y cómo empezar a utilizar Amazon Kendra, visite la pagina web!
Acerca de los autores
Juan Busto es un arquitecto de soluciones especializado en servicios de inteligencia artificial en Amazon Web Services, con sede en Dallas, TX. Fuera del trabajo, le encanta pasar tiempo escribiendo y tocando música, además de probar restaurantes al azar con su familia.
Tapodipta Ghosh es un arquitecto sénior. Dirige el equipo de aprendizaje automático de ingeniería del conocimiento y el contenido que se centra en la creación de modelos relacionados con el contenido técnico de AWS. También ayuda a nuestros clientes con la estrategia e implementación de AI / ML utilizando nuestros servicios de AI Language como Amazon Kendra.
tom mc mahon es gerente de marketing de productos en el equipo de servicios de inteligencia artificial de AWS. Es un apasionado de la tecnología y la narración de historias y ha pasado tiempo en una amplia gama de industrias, incluida la salud, el comercio minorista, la logística y el comercio electrónico. En su tiempo libre le gusta pasar tiempo con la familia, la música, jugar al golf y explorar el increíble noroeste del Pacífico y sus alrededores.
Coinsmart. Mejor Bitcoin-Börse en Europa
Fuente: https://aws.amazon.com/blogs/machine-learning/automatically-scale-amazon-kendra-query-capacity-units-with-amazon-eventbridge-and-aws-lambda/