Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Arquitectura Beanstalk Cluster
Beanstalk Cluster utiliza los mismos conceptos de aplicación, versión de aplicación, entorno y opciones de configuración de Elastic Beanstalk que Beanstalk Standard. Beanstalk Standard es el tipo de entorno. EC2-based Beanstalk Cluster usa una capa de procesamiento y una superficie de configuración diferentes. En este tema se describen las diferencias por aspecto e identifica el tipo de entorno aplicable.
Modelo de cálculo
En Beanstalk Standard, Elastic Beanstalk lanza instancias de Amazon Elastic Compute Cloud (Amazon EC2) en un grupo de Auto Scaling dedicado al medio ambiente. La aplicación se ejecuta directamente en esas instancias. En un entorno de Beanstalk Cluster, Elastic Beanstalk ejecuta la aplicación como una imagen de contenedor en un clúster de Amazon EKS que pueden compartir los entornos de Beanstalk Cluster. Elastic Beanstalk crea y opera el clúster. Elastic Beanstalk programa la aplicación en el clúster. Elastic Beanstalk aísla cada entorno del clúster y concilia la cantidad de réplicas de aplicaciones para que coincidan con los valores configurados. No debe crear un clúster, elegir en qué clúster se ejecuta un entorno ni seleccionar su versión de Kubernetes.
Varios de sus entornos pueden ejecutarse en el mismo clúster de Amazon EKS. Elastic Beanstalk coloca un entorno en el clúster que sirve a las subredes de VPC configuradas. Crea un clúster la primera vez que se utilizan esas subredes; consulte. Agrupación de entornos El modo automático de Amazon EKS proporciona capacidad de nodos. Añade y elimina nodos para que se ajusten a los contenedores programados. Como el clúster se puede compartir y Amazon EKS administra la capacidad de los nodos, los recuentos de instancias no se configuran a través del espacio de aws:autoscaling:asg nombres. En su lugar, el número de réplicas de aplicaciones se establece con las max-replica opciones min-replica y en el aws:elasticbeanstalk:eks:environment:autoscaling espacio de nombres. Para conocer los límites de las réplicas y los desencadenantes que cambian el recuento de réplicas, consulte. Escalar los entornos de Beanstalk Cluster
Elastic Beanstalk resuelve la configuración del entorno a partir de las opciones que usted proporciona y aplica la configuración resuelta cuando crea o actualiza el entorno. Cuando se proporciona la misma opción de configuración más de una vez, gana la última aparición. Para cambiar la configuración, actualice la configuración de las opciones.
Diferencias con Beanstalk Standard
En la siguiente tabla se resumen las diferencias entre Beanstalk Standard y un entorno de Beanstalk Cluster en cuanto a la relación con el cliente. Cada fila enlaza con el tema que trata en profundidad el concepto de Elastic Beanstalk.
| Aspecto | Beanstalk Standard | Entorno Beanstalk Cluster |
|---|---|---|
| Computación | Instancias Amazon EC2 dedicadas en un grupo de Auto Scaling configuradas mediante los espacios de nombres. aws:autoscaling:* |
Contenedores programados en un clúster de Amazon EKS que pueden compartir sus entornos de Beanstalk Cluster. Elastic Beanstalk aísla cada entorno del clúster. Los nodos los proporciona Amazon EKS Auto Mode. |
| Escalado | Las instancias de Amazon EC2 son agregadas y eliminadas por un grupo de Auto Scaling, con activadores y acciones programadas configurados a través de los espacios de aws:autoscaling:* nombres. Consulte Escalado automático de las instancias del entorno de Elastic Beanstalk. |
Las réplicas de aplicaciones se agregaron y eliminaron dentro de los max-replica límites min-replica y, en función de la CPU, la memoria, una programación o una métrica de la que informa su propio punto final. Consulte Escalar los entornos de Beanstalk Cluster. |
| Artefacto de despliegue | Un paquete fuente que Elastic Beanstalk ejecuta en una AMI de plataforma (pila de soluciones). Consulte Plataformas compatibles con Elastic Beanstalk. | Una imagen de contenedor en Amazon Elastic Container Registry (Amazon ECR). La imagen se proporciona directamente o se proporciona la fuente para que Elastic Beanstalk la incorpore en una imagen. Consulte Creación de imágenes de contenedores para entornos de Beanstalk Cluster. |
| Concepto de plataforma | Un conjunto de soluciones administradas (sistema operativo, servidor web y tiempo de ejecución del lenguaje en una AMI). Consulte Plataformas compatibles con Elastic Beanstalk. | Sin pila de soluciones ni AMI. El tiempo de ejecución se define mediante la imagen del contenedor y la versión del clúster que crea Elastic Beanstalk. |
| Política de implementación | All-at-once, despliegues continuos o inmutables configurados a través del espacio de nombres. aws:elasticbeanstalk:command |
Una actualización continua (la predeterminada) o todas a la vez, configuradas con la strategy opción en el espacio de nombres. aws:elasticbeanstalk:eks:environment:deployment El valor de la opción para todas a la vez esRecreate. |
| Espacios de nombres de configuración | Espacios de nombres clásicos como y. aws:autoscaling:* aws:elasticbeanstalk:environment Consulte Opciones de configuración. |
Los aws:elasticbeanstalk:eks:* espacios de nombres. No se aplica ninguno de los espacios de nombres informáticos clásicos. |
| Estado | Según los informes del administrador del host y del balanceador de cargas de cada instancia. | Per-instance no se informa de su estado. En el caso de un balanceador de carga de aplicaciones, el estado incluye las métricas del balanceador de cargas que Elastic Beanstalk evalúa. En ese casoload-balancer-type=None, esa evaluación de la tasa de solicitudes, la tasa de errores y la latencia no se aplica. Consulte Supervisión de los entornos de Beanstalk Cluster. |
Customer-provided y recursos gestionados por servicios
Elastic Beanstalk crea y opera el clúster de Amazon EKS que ejecuta un entorno de clústeres de Beanstalk. Los roles de clúster y nodo AWS Identity and Access Management (IAM) requeridos por Amazon EKS los proporciona el cliente. Le recomendamos que utilice los nombres de los roles y las políticas AWS administradas que se describen enPermisos para Beanstalk Cluster, ya que Elastic Beanstalk requiere que todos los entornos de un clúster proporcionen los mismos roles. También se puede proporcionar un rol de aplicación para la aplicación en ejecución a través de Amazon EKS Pod Identity. El rol de la aplicación se selecciona en la consola de Elastic Beanstalk durante la creación del entorno. Para obtener información completa sobre el modelo de responsabilidad de IAM y el procedimiento de rol de la aplicación, consulte. Permisos para Beanstalk Cluster
Las subredes de VPC para el entorno son opcionales. Cuando se omiten las subredes, Elastic Beanstalk usa las subredes públicas de la VPC predeterminada. El conjunto de subredes determina qué clúster ejecuta el entorno. Para obtener información sobre la asignación de clústeres y la infraestructura en la que opera Elastic Beanstalk, consulte. Agrupación de entornos
Elastic Beanstalk opera la aplicación en el clúster creado por el servicio. Implementa la imagen del contenedor y aplica actualizaciones continuas a través del espacio de nombres. aws:elasticbeanstalk:eks:environment:deployment Concilia el número de réplicas de aplicaciones en ejecución con los max-replica límites min-replica y de la configuración. Informa sobre el estado a nivel del entorno a través de los estados de salud descritos en. Supervisión de los entornos de Beanstalk Cluster Elastic Beanstalk realiza un seguimiento de cada clúster al que asigna entornos según lo gestionado por el servicio.
importante
Elastic Beanstalk asigna entornos solo a los clústeres que coinciden con la configuración esperada de administración de servicios. Si la infraestructura ya no coincide con esa configuración, Elastic Beanstalk deja de seleccionar el clúster para entornos nuevos. Los cambios en el entorno se realizan mediante las operaciones y la configuración de Elastic Beanstalk.
Requisitos y limitaciones de la aplicación
Un entorno de Beanstalk Cluster requiere una aplicación que pueda ejecutarse como una imagen de contenedor y como una o más réplicas idénticas e intercambiables. El balanceador de cargas es opcional. Cuando se configura un balanceador de cargas, distribuye las solicitudes entre las réplicas de aplicaciones. Un servicio web o una API sin estado cuyas réplicas no tengan ningún estado local y deban sobrevivir a un reinicio cumplen este requisito. El puerto de solicitud, las solicitudes de CPU y memoria, la cantidad de réplicas de aplicaciones y el comportamiento de implementación se configuran mediante las opciones. aws:elasticbeanstalk:eks:* Elastic Beanstalk proporciona la capacidad del clúster a través del modo automático de Amazon EKS.
Confirme los siguientes requisitos y limitaciones de la aplicación antes de crear un entorno de clúster de Beanstalk:
-
El almacenamiento local no es persistente. Cada copia de la aplicación tiene un almacenamiento efímero que se pierde cuando se reinicia la copia. Una aplicación que graba archivos de carga, almacenamiento en caché o archivos de trabajo en el disco local y los necesita para sobrevivir a un reinicio es incompatible sin un almacenamiento persistente externo.
-
Las solicitudes se distribuyen entre las réplicas de las aplicaciones.
-
Elastic Beanstalk crea una imagen de contenedor a partir del código fuente para los lenguajes compatibles. También puede proporcionar un Dockerfile o una imagen prediseñada. Consulte Creación de imágenes de contenedores para entornos de Beanstalk Cluster.
Ejemplo de configuración
La siguiente AWS CLI solicitud establece el puerto de solicitud, la solicitud de memoria, la cantidad de réplicas en ejecución y el comportamiento de implementación para un entorno de Beanstalk Cluster. La configuración usa los espacios de nombres. aws:elasticbeanstalk:eks:*
$ aws elasticbeanstalk update-environment \
--environment-name my-cluster-env \
--option-settings \
Namespace=aws:elasticbeanstalk:eks:environment,OptionName=service-port,Value=8080 \
Namespace=aws:elasticbeanstalk:eks:environment,OptionName=memory,Value=1Gi \
Namespace=aws:elasticbeanstalk:eks:environment,OptionName=load-balancer-type,Value=ALB \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=min-replica,Value=3 \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=max-replica,Value=3 \
Namespace=aws:elasticbeanstalk:eks:environment:deployment,OptionName=strategy,Value=RollingUpdate \
Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-surge,Value=25% \
Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-unavailable,Value=0
La strategy opción acepta RollingUpdate oRecreate, que la consola muestra como una actualización continua y como todo a la vez. ConRollingUpdate, max-surge limita el número de réplicas adicionales que Elastic Beanstalk inicia durante una implementación. La max-unavailable opción limita el número de réplicas existentes que elimina a la vez. Cada opción acepta un recuento o un porcentaje. El memory valor usa la notación cuantitativa de Kubernetes, como o. 1Gi 512Mi Para ver el conjunto completo de opciones, consulte. Opciones de configuración para entornos de Beanstalk Cluster
Agrupación de entornos
Elastic Beanstalk agrupa los entornos de Beanstalk Cluster en clústeres según las subredes de VPC que utilizan:
-
Los entornos de la misma AWS cuenta que usan el mismo conjunto de subredes se ejecutan en el mismo clúster.
-
Un entorno que usa un conjunto diferente de subredes se ejecuta en un clúster diferente.
El primer entorno que se crea con un conjunto determinado de subredes hace que Elastic Beanstalk cree un clúster para él, lo que tarda unos diez minutos. Elastic Beanstalk informa de esto en los eventos del entorno:
INFO Creating CloudFormation stack for cluster infrastructure. This is a one-time operation and generally takes about 10 minutes. stack='beanstalk-cluster-uuid' INFO Starting cluster assignment. environment='my-cluster-env' INFO Successfully completed cluster assignment. environment='my-cluster-env' clusterArn='arn:aws:eks:us-east-1:111122223333:cluster/beanstalk-cluster-uuid'
Elastic Beanstalk coloca los entornos posteriores que usan las mismas subredes en ese clúster existente. Sus eventos informan sobre la asignación sin el mensaje de creación de la pila. Elastic Beanstalk asigna un nombre tanto al clúster como a la pila que lo crea. AWS CloudFormation beanstalk-cluster-uuid
El orden en el que Elastic Beanstalk considera las subredes no importa; las mismas subredes en un orden diferente son el mismo conjunto. Solo el conjunto de subredes selecciona el clúster. Cuando un clúster ya está registrado en el conjunto de subredes, la configuración de los roles de nodo y clúster que proporciones debe coincidir con los roles registrados para ese clúster. Elastic Beanstalk rechaza las configuraciones de roles conflictivas; los ARN de roles diferentes no seleccionan un clúster diferente. Usted también proporciona el rol de observabilidad y Elastic Beanstalk lo valida en relación con el clúster de la misma manera. El rol de aplicación opcional pertenece al entorno y puede diferir de un entorno a otro. Configúrelo con el procedimiento de creación del entorno incluido en. Configura un rol de aplicación
Elastic Beanstalk no limita el número de entornos que comparten un clúster. El modo automático de Amazon EKS agrega nodos para que se ajusten a los contenedores programados en el clúster. El uso compartido de clústeres no añade un límite de escalado específico para el entorno. Cada entorno permanece sujeto a los límites de escala automática o de réplica configurados, a las cuotas de servicio aplicables y a la capacidad disponible. Para ejecutar un entorno en un clúster independiente, créelo con un conjunto diferente de subredes.
importante
No puede cambiar las subredes ni los roles de clúster, nodo y observabilidad de un entorno de Beanstalk Cluster existente. Elastic Beanstalk rechaza dicha actualización en lugar de mover el entorno a un clúster diferente e informa de lo siguiente: Para mover una aplicación Changes to EKS cluster configuration (subnets and IAM roles) are not currently
supported for an existing environment. Please revert these option settings to
continue. a diferentes subredes o funciones, cree un entorno nuevo con la configuración que desee y, a continuación, intercambie los CNAME de los dos entornos. Consulte Blue/Green implementaciones con Elastic Beanstalk. Decida qué subredes y funciones de clúster utiliza un entorno al crearlo. Consulte Primeros pasos con Beanstalk Cluster.
Aislamiento entre entornos que comparten procesamiento
Las subredes son el límite principal entre los entornos. Dado que el conjunto de subredes selecciona el clúster, si se asigna a un grupo de entornos sus propias subredes, ese grupo tendrá su propio clúster, sus propios nodos y su propia red. Dentro de un solo clúster, Elastic Beanstalk aísla el tráfico de red entre los entornos de Beanstalk Cluster de forma predeterminada, y las opciones del espacio de aws:elasticbeanstalk:eks:environment nombres permiten permitir que entornos específicos se comuniquen o coloquen un entorno en nodos dedicados.
Para conocer el límite que ofrece cada opción, las opciones que lo amplían y lo que un clúster compartido no separa, consulte. Multi-tenancy para entornos de Beanstalk Cluster
Configuración de infraestructura gestionada
Elastic Beanstalk crea cada clúster con una configuración fija que usted no elige:
| Opción | Qué configura Elastic Beanstalk |
|---|---|
| Versión de Kubernetes | Elastic Beanstalk selecciona la versión al crear el clúster. Elastic Beanstalk crea un nuevo clúster con la versión de Kubernetes más reciente que admite. Un entorno de un clúster existente ejecuta la versión que ya tiene ese clúster. Esa versión permanece fija durante toda la vida del clúster. |
| Capacidad de nodos | El modo automático de Amazon EKS, que añade y elimina nodos para que quepan en los contenedores programados en el clúster. Node-capacity la configuración está gestionada por el servicio. |
| Acceso a la infraestructura del clúster | Service-managed. Configure el entorno mediante la API de Elastic Beanstalk, la consola de Elastic Beanstalk o la consola AWS CLI de Elastic Beanstalk. |
| Complementos de clúster | Elastic Beanstalk instala y fija los complementos en los que se basa su entorno. Cuando Elastic Beanstalk presenta una nueva versión de un complemento anclado, aplica la actualización a su clúster durante la creación o actualización posterior del entorno. No planifica ni aplica la actualización usted mismo. |
Como Elastic Beanstalk las establece por sí mismo, usted configura la aplicación mediante las aws:elasticbeanstalk:eks:* opciones en lugar de configurar el clúster. Consulte Opciones de configuración para entornos de Beanstalk Cluster.
Deriva de configuración del clúster
Elastic Beanstalk opera un clúster que creó solo mientras ese clúster cumpla con la configuración de administración de servicios esperada. Si la infraestructura ya no coincide con esa configuración, Elastic Beanstalk detecta cambios en la configuración, detiene el mantenimiento del clúster e informa de un evento en el entorno:
ERROR Cluster drift detected for environment 'my-cluster-env'. what changed. Service will skip cluster maintenance for this environment.
Mientras un clúster está a la deriva:
-
Elastic Beanstalk no coloca nuevos entornos en él.
-
Elastic Beanstalk ya no lo mantiene, incluidas las actualizaciones de versiones complementarias administradas por el servicio.
-
Las actualizaciones de los entornos que ya se ejecutan en él fallan.
Drift es recuperable. Para recuperarse, revierta el cambio que lo provocó para que el clúster vuelva a coincidir con la configuración que Elastic Beanstalk espera. El evento de deriva nombra lo que ha cambiado, lo que indica qué debe revertirse. Elastic Beanstalk vuelve a evaluar el clúster en la siguiente operación del entorno y reanuda su administración cuando la configuración coincide. Vuelva a intentar la operación que falló.
Si no puede restaurar la configuración esperada, póngase en contacto con el servicio de AWS asistencia.
Para evitar desviaciones, realice cambios en el entorno mediante las operaciones y opciones de configuración de Elastic Beanstalk, en lugar de cambiar el clúster directamente. Consulte Opciones de configuración para entornos de Beanstalk Cluster.
Eliminación del clúster
Elastic Beanstalk programa la eliminación del clúster tres horas después de que usted finalice su último entorno. Si crea otro entorno con las mismas subredes durante este intervalo, Elastic Beanstalk cancela la limpieza pendiente y reutiliza el clúster existente.
Para verificar la eliminación de la infraestructura administrada por el servicio
-
Antes de terminar el último entorno, registre el ARN del clúster mediante Elastic Beanstalk. Para la infraestructura de clústeres creada por el servicio, la CloudFormation plantilla establece el nombre del clúster en el nombre de la pila. Por lo tanto, el nombre que aparece después de la última barra del ARN del clúster identifica la pila para la verificación de la eliminación de solo lectura en este procedimiento:
$aws elasticbeanstalk describe-environment-resources \ --environment-name my-cluster-env \ --query 'EnvironmentResources.Cluster.Name'El comando devuelve el ARN del clúster. El nombre de la pila es la parte del ARN que sigue a la barra final.
importante
El nombre de la pila derivada es solo para el CloudFormation camarero de solo lectura y describe las operaciones que se muestran a continuación. No lo transfiera ni a
delete-stackninguna otra operación que modifique la infraestructura gestionada por el servicio.update-stackRegistre el ARN del clúster y el nombre de la pila derivada; utilícelos para los pasos de verificación de solo lectura que se indican a continuación.
-
Termine el entorno y compruebe que llega a su destino
Terminatedsiguiendo los pasos que se indican en. Terminación de un entorno de Elastic Beanstalk La limpieza del clúster comienza por separado tras el intervalo de reutilización de tres horas; la finalización del entorno no espera a la eliminación del clúster. -
Transcurridas tres horas, utilice a un director de IAM con permiso para describir la pila creada por el servicio. El CloudFormation camarero utiliza las descripciones de las pilas de solo lectura cada 30 segundos durante un máximo de 60 minutos y lo hace correctamente cuando la pila ya no existe:
$aws cloudformation wait stack-delete-complete \ --stack-namecluster-stack-nameEl camarero tiene éxito cuando la pila ya no existe. Si falla, la pila sigue existiendo después de la fecha límite; utilícela
aws cloudformation describe-stacksyaws cloudformation describe-stack-eventspara inspeccionar el estado de la pila y cualquierDELETE_FAILEDevento. -
Si el camarero informa que la pila sigue existiendo después de la fecha límite, determine si otro entorno ha reutilizado el clúster. Enumere los entornos de Beanstalk Cluster activos en la cuenta y la región:
$aws elasticbeanstalk describe-environments \ --query "Environments[?Tier.Name=='Cluster' && Tier.Type=='EKS'].EnvironmentName"Para cada entorno de la lista, lea el ARN de su clúster:
$aws elasticbeanstalk describe-environment-resources \ --environment-nameenvironment-name\ --query 'EnvironmentResources.Cluster.Name'Un entorno cuyo ARN de clúster coincide con el ARN de clúster registrado significa que la eliminación se canceló para su reutilización. Si ningún entorno coincide, utilice el estado y los
DELETE_FAILEDeventos de la pila para diagnosticar los recursos retenidos. No elimine ni modifique manualmente una pila gestionada por el servicio. Póngase en contacto con el equipo de AWS soporte si la pila permanece después de la fecha límite sin un entorno activo o sin que se produzca un error CloudFormation procesable.