Proveedores de capacidad
Un proveedor de capacidad es la base para ejecutar instancias administradas de Lambda. Actúa como límite de seguridad de las funciones y define los recursos de cómputo que Lambda aprovisionará y administrará en su nombre.
Cuando crea un proveedor de capacidad, especifica lo siguiente:
-
Configuración de VPC: las subredes y los grupos de seguridad donde se ejecutarán las instancias.
-
Permisos: roles de IAM para que Lambda administre los recursos de EC2.
-
Requisitos de la instancia (opcional): preferencias de arquitectura y tipo de instancia
. -
Configuración de escalado (opcional): cómo Lambda escala las instancias.
Descripción de los proveedores de capacidad como límite de seguridad
Los proveedores de capacidad sirven como límite de seguridad para las funciones de Lambda dentro de su VPC y sustituyen el aislamiento basado en FireCracker. Las funciones se ejecutan en contenedores dentro de las instancias, pero los contenedores no proporcionan un fuerte aislamiento de seguridad entre las funciones, a diferencia de Firecracker microVMS.
Conceptos clave de seguridad:
-
Proveedor de capacidad: el límite de seguridad que define los niveles de confianza para las funciones de Lambda.
-
Aislamiento de contenedores: los contenedores NO son un proveedor de seguridad; no confíe en ellos para garantizar la seguridad entre cargas de trabajo que no sean de confianza.
-
Separación de confianza: separe las cargas de trabajo en las que no se confíe mutuamente mediante distintos proveedores de capacidad.
Creación de un proveedor de capacidad
Puede crear un proveedor de capacidad con la CLI de AWS, la consola de administración de AWS o los AWS SDK.
Uso de la CLI de AWS:
aws lambda create-capacity-provider \ --capacity-provider-name my-capacity-provider \ --vpc-config SubnetIds=subnet-12345,subnet-67890,subnet-11111,SecurityGroupIds=sg-12345 \ --permissions-config CapacityProviderOperatorRoleArn=arn:aws:iam::123456789012:role/MyOperatorRole \ --instance-requirements Architectures=x86_64 \ --capacity-provider-scaling-config ScalingMode=Auto
Parámetros necesarios
CapacityProviderName
-
Un nombre único para el proveedor de capacidad.
-
Debe ser único en su cuenta de AWS.
VpcConfig
-
SubnetIds (obligatorio): al menos una subred y 16 como máximo. Utilice varias subredes entre varias zonas de disponibilidad para establecer la resiliencia.
-
SecurityGroupIds (opcional): grupos de seguridad para sus instancias. Toma como valor predeterminado el grupo de seguridad predeterminado de VPC, si no se especifica.
PermissionsConfig
-
CapacityProviderOperatorRoleArn (obligatorio): rol de IAM que permite que Lambda administre los recursos de EC2 en su proveedor de capacidad.
Parámetros opcionales
InstanceRequirements
Especifique la arquitectura y los tipos de instancia
-
Arquitecturas: elija
x86_64oarm64. El valor predeterminado esx86_64 -
AllowedInstanceTypes: especifique los tipos de instancia permitidos. Ejemplo::
m5.8xlarge -
ExcludedInstanceTypes: especifique los tipos de instancias excluidas mediante caracteres comodín. Puede especificar solo uno de los tipos de AllowedInstanceTypes o ExcludedInstanceTypes.
De forma predeterminada, Lambda elige los mejores tipos de instancias para su carga de trabajo. Le recomendamos que deje que las instancias administradas de Lambda elijan los tipos de instancia por usted, ya que restringir la cantidad de tipos de instancias posibles puede reducir la disponibilidad.
CapacityProviderScalingConfig
Configure la forma en que Lambda escala sus instancias:
-
ScalingMode: configúrelo en
Autopara el escalado automático o enManualpara el control manual. El valor predeterminado esAuto -
MaxVCpuCount: número máximo de vCPU para el proveedor de capacidad. El valor predeterminado es 400.
-
ScalingPolicies: defina las políticas de escalado y seguimiento de objetivos para el uso de la CPU y la memoria.
KmsKeyArn
Especifique una clave AWS KMS para el cifrado de EBS. Si no se especifica, toma como valor predeterminado la clave administrada de AWS.
Etiquetas de
Añada etiquetas para organizar y administrar los proveedores de capacidad.
Administración de los proveedores de capacidad
Actualización de un proveedor de capacidad
Puede actualizar determinadas propiedades de un proveedor de capacidad mediante la API de UpdateCapacityProvider.
aws lambda update-capacity-provider \ --capacity-provider-name my-capacity-provider \ --capacity-provider-scaling-config ScalingMode=Auto
Eliminación de un proveedor de capacidad
Puede eliminar un proveedor de capacidad cuando ya no sea necesario mediante la API de DeleteCapacityProvider.
aws lambda delete-capacity-provider \ --capacity-provider-name my-capacity-provider
Nota: No puede eliminar un proveedor de capacidad que tenga versiones de funciones asociadas.
Cómo ver la información del proveedor de capacidad
Recupere información sobre un proveedor de capacidad mediante la API de GetCapacityProvider.
aws lambda get-capacity-provider \ --capacity-provider-name my-capacity-provider
Estados de proveedores de capacidad
Un proveedor de capacidad puede tener uno de los siguientes estados:
-
Pendiente: el proveedor de capacidad está en proceso de creación.
-
Activo: el proveedor de capacidad está listo para usarse.
-
Error: no se pudo crear el proveedor de capacidad.
-
Eliminación: el proveedor de capacidad está en proceso de eliminación.
Cuotas
-
Capacidad máxima de proveedores por cuenta: 1000.
-
Número máximo de versiones de funciones por proveedor de capacidad: 100 (no se puede aumentar).
Prácticas recomendadas
-
Establezca una separación por nivel de confianza: cree diferentes proveedores de capacidad para cargas de trabajo con diferentes requisitos de seguridad.
-
Utilice nombres descriptivos: denomine los proveedores de capacidad para indicar claramente su uso previsto y su nivel de confianza (por ejemplo,
production-trusted,dev-sandbox). -
Utilice varias zonas de disponibilidad: especifique subredes en varias zonas de disponibilidad para lograr una alta disponibilidad.
-
Deje que Lambda elija los tipos de instancia: a menos que tenga requisitos de hardware específicos, deje que Lambda seleccione los mejores tipos de instancias para una disponibilidad óptima.
-
Supervise el uso: utilice AWS CloudTrail para supervisar las asignaciones de los proveedores de capacidad y los patrones de acceso.
Siguientes pasos
-
Obtenga información sobre el escalado de instancias administradas de Lambda.
-
Conozca la seguridad y los permisos de las instancias administradas de Lambda.
-
Configure la conectividad de VPC para sus proveedores de capacidad.
-
Revise las guías específicas del tiempo de ejecución para Java, Node.js y Python.