Uso de Amazon EFS con Lambda - AWS Lambda

Uso de Amazon EFS con Lambda

Lambda se integra con Amazon Elastic File System (Amazon EFS) para que el acceso seguro y compartido al sistema de archivos para las aplicaciones de Lambda sea compatible. Puede configurar funciones para montar un sistema de archivos durante la inicialización con el protocolo NFS a través de la red local dentro de una VPC. Lambda administra la conexión y cifra todo el tráfico hacia y desde el sistema de archivos.

El sistema de archivos y la función Lambda deben estar en la misma región. Una función Lambda de una cuenta puede montar un sistema de archivos en una cuenta diferente. En este caso, configure la interconexión de VPC entre la función VPC y la VPC del sistema de archivos.

nota

Para configurar una función para que se conecte a un sistema de archivos, consulte Configuración del acceso al sistema de archivos para las funciones Lambda.

Amazon EFS es compatible con el bloqueo de archivos para evitar daños si varias funciones intentan escribir en el mismo sistema de archivos al mismo tiempo. Amazon EFS sigue el protocolo NFS v4.1 para el bloqueo consultivo y permite a sus aplicaciones utilizar bloqueos de todo el archivo o de intervalos del tamaño de bytes.

Amazon EFS proporciona opciones para personalizar el sistema de archivos en función de la necesidad de su aplicación de mantener un alto rendimiento a escala. Hay tres factores principales a tener en cuenta: el número de conexiones, el rendimiento (en MiB por segundo) y las IOPS.

Cuotas

Para obtener detalles sobre las cuotas y los límites del sistema de archivos, consulte Cuotas para sistemas de archivos de Amazon EFS en la Guía del usuario de Amazon Elastic File System.

Para evitar problemas con el escalado, el rendimiento y las IOPS, monitorice las métricas que Amazon EFS envía a Amazon CloudWatch. Para obtener información general sobre la monitorización en Amazon EFS, consulte Monitorización de Amazon EFS en Guía del usuario de Amazon Elastic File System.

Conexiones

Amazon EFS admite hasta 25,000 conexiones por sistema de archivos. Durante la inicialización, cada instancia de una función crea una única conexión a su sistema de archivos que persiste en todas las invocaciones. Esto significa que puede alcanzar la concurrencia 25,000 a través de una o más funciones conectadas a un sistema de archivos. Para limitar el número de conexiones que crea una función, utilice la concurrencia reservada.

Sin embargo, cuando realiza cambios en el código o la configuración de su función a escala, hay un aumento temporal en el número de instancias de función más allá de la concurrencia actual. Lambda proporciona nuevas instancias para manejar nuevas solicitudes y hay algún retraso antes de que las instancias antiguas cierren sus conexiones con el sistema de archivos. Para evitar alcanzar el límite máximo de conexiones durante una implementación, utilice implementaciones continuas. Con las implementaciones continuas, cambia el tráfico gradualmente a la nueva versión cada vez que realiza un cambio.

Si se conecta al mismo sistema de archivos desde otros servicios como Amazon EC2, también debe tener en cuenta el comportamiento de escalado de las conexiones en Amazon EFS. Un sistema de archivos admite la creación de hasta 3000 conexiones en una ráfaga, después de lo cual admite 500 nuevas conexiones por minuto. Esto coincide con el comportamiento de escalado en ráfaga en Lambda, que se aplica a todas las funciones de una región. Pero si están creando conexiones fuera de Lambda, es posible que sus funciones no puedan escalar a toda velocidad.

Para monitorizar y activar una alarma en las conexiones, utilice la métrica ClientConnections.

Rendimiento

A escala, también es posible superar el rendimiento máximo de un sistema de archivos. En el modo de ráfaga (predeterminado), un sistema de archivos tiene un bajo rendimiento de referencia que escala linealmente con su tamaño. Para permitir ráfagas de actividad, el sistema de archivos recibe créditos de ráfaga que le permiten utilizar 100 MiB/s o más de rendimiento. Los créditos se acumulan continuamente y se gastan con cada operación de lectura y escritura. Si el sistema de archivos se queda sin créditos, limita las operaciones de lectura y escritura más allá del rendimiento previsto, lo que puede provocar que las invocaciones se agoten.

nota

Si utiliza concurrencia provisionada, su función puede consumir créditos de ráfaga incluso cuando está inactiva. Con la concurrencia aprovisionada, Lambda inicializa las instancias de su función antes de que se invoque y recicla las instancias cada pocas horas. Si utiliza archivos en un sistema de archivos adjunto durante la inicialización, esta actividad puede utilizar todos los créditos de ráfaga.

Para supervisar y activar una alarma en el rendimiento, utilice la métrica BurstCreditBalance. Debería aumentar cuando la concurrencia de su función es baja y disminuir cuando es alta. Si siempre disminuye o no se acumula lo suficiente durante la actividad baja para cubrir el tráfico máximo, es posible que tenga que limitar la concurrencia de su función o habilitar el rendimiento provisionado.

IOPS

Las operaciones de entrada/salida por segundo (IOPS) son una medida del número de operaciones de lectura y escritura procesadas por el sistema de archivos. En el modo propósito general, IOPS están limitadas a favor de una latencia más baja, lo que es beneficioso para la mayoría de las aplicaciones.

Para supervisar y alarmar en IOPS en modo propósito general, utilice la métrica PercentIOLimit. Si esta métrica alcanza el 100 %, su función puede agotar el tiempo de espera en espera de que se completen las operaciones de lectura y escritura.