

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.

# Primeros pasos con Beanstalk Cluster
<a name="beanstalk-cluster-getting-started"></a>

En este tutorial, creará una aplicación de Elastic Beanstalk y un entorno de Beanstalk Cluster. Omite la versión de la aplicación para que Elastic Beanstalk implemente su imagen de contenedor de muestra prediseñada. A continuación, espera a que el entorno esté listo, recupera su URL y lo termina. Si lo prefiere, puede empezar en la consola AWS de administración, que ofrece una experiencia totalmente guiada, o dirigir a su agente de IA a la [Clúster Beanstalk](beanstalk-cluster.md) documentación.

Duración estimada**: 15 a 20 minutos **

**importante**  
Elastic Beanstalk no conlleva ningún cargo adicional, pero usted paga por AWS los recursos que utiliza el entorno, incluidos Amazon EKS y su procesamiento. Para obtener más información, consulte los precios de [ Elastic Beanstalk. ](https://aws.amazon.com/elasticbeanstalk/pricing/) Complete los pasos de limpieza cuando termine este tutorial.

## Antes de empezar
<a name="beanstalk-cluster-getting-started-prerequisites"></a>

Complete los requisitos previos siguientes:
+ Instalar y configurar la AWS CLI. Para ver las instrucciones, consulte [Introducción a la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) en la *Guía del usuario de AWS Command Line Interface *.
+ Utilice un director de IAM que pueda crear y administrar aplicaciones y entornos de Elastic Beanstalk, y que pueda transferir las funciones de clúster, nodo y observabilidad al crear un entorno. Para conocer los permisos exactos, consulte. [Permisos para crear el entorno](beanstalk-cluster-permissions.md#beanstalk-cluster-permissions-caller)
+ Cree la función de clúster que asume Amazon EKS, la función de nodo que asumen los nodos de Amazon EC2 del clúster y la función de observabilidad que publica las métricas, los registros y los seguimientos del entorno, tal y como se describe en. [Cree los roles de IAM](#beanstalk-cluster-getting-started-roles) Para elegir las subredes de VPC que utiliza el entorno, consulte. [Configuración de redes para entornos de Beanstalk Cluster](configuring-cluster-networking.md)
+ Elija una AWS región en la que esté disponible Beanstalk Cluster. Los comandos utilizan la región de su configuración. AWS CLI 

## Cree los roles de IAM
<a name="beanstalk-cluster-getting-started-roles"></a>

Un entorno de Beanstalk Cluster necesita tres funciones de IAM que usted proporcione: una función de clúster, una función de nodo y una función de observabilidad. La consola de Elastic Beanstalk las crea automáticamente, pero en este tutorial las utiliza, así que créelas primero. AWS CLI Utilice estos nombres, ya que la consola selecciona los roles existentes por su nombre. Para saber para qué sirve cada rol y los permisos de la persona que llama que necesita para transferirlos, consulte[Permisos para Beanstalk Cluster](beanstalk-cluster-permissions.md).

**Para crear los roles de clúster, nodo y observabilidad**

1. Cree un archivo de política de confianza para cada servicio que asuma una función. La función de clúster confía en Amazon EKS, la función de nodo en Amazon EC2 y la función de observabilidad en Amazon EKS Pod Identity.

   ```
   $ cat > eks-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "eks.amazonaws.com"},
       "Action": ["sts:AssumeRole", "sts:TagSession"]
     }]
   }
   EOF
   ```

   ```
   $ cat > ec2-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "ec2.amazonaws.com"},
       "Action": "sts:AssumeRole"
     }]
   }
   EOF
   ```

   ```
   $ cat > pods-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "pods.eks.amazonaws.com"},
       "Action": ["sts:AssumeRole", "sts:TagSession"]
     }]
   }
   EOF
   ```

1. Cree el rol de clúster y adjunte sus políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-cluster-role \
       --assume-role-policy-document file://eks-trust.json
   $ for p in AmazonEKSClusterPolicy AmazonEKSNetworkingPolicy AmazonEKSComputePolicy \
            AmazonEKSBlockStoragePolicy AmazonEKSLoadBalancingPolicy AWSElasticBeanstalkEKSTagging; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-cluster-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Cree el rol de nodo y adjunte sus políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-node-role \
       --assume-role-policy-document file://ec2-trust.json
   $ for p in AmazonEKSWorkerNodeMinimalPolicy AmazonEC2ContainerRegistryPullOnly \
            AmazonSSMManagedInstanceCore; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-node-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Cree el rol de observabilidad y adjunte sus políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-observability-role \
       --assume-role-policy-document file://pods-trust.json
   $ for p in CloudWatchAgentServerPolicy AWSElasticBeanstalkEKSObservability; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-observability-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Registre los tres ARN de los roles. Los apruebas cuando creas el entorno.

   ```
   $ for r in cluster node observability; do
       aws iam get-role --role-name aws-elasticbeanstalk-eks-$r-role \
           --query 'Role.Arn' --output text
   done
   ```

## Elija una herramienta de aprovisionamiento compatible
<a name="beanstalk-cluster-getting-started-tools"></a>

Puede crear y administrar un entorno de Beanstalk Cluster con la consola de Elastic Beanstalk, la API de Elastic Beanstalk o la. AWS CLI Este tutorial utiliza la para que cada solicitud sea visible y repetible AWS CLI .

También puedes realizar la implementación con la versión oficial de GitHub Action, y puedes definir tus entornos como infraestructura mediante código con Terraform a través del AWS proveedor. Para ver la GitHub acción, consulte[Uso de GitHub acciones para implementar en Elastic Beanstalk](deploying-github-actions.md).

## Cree la aplicación e implemente la muestra
<a name="beanstalk-cluster-getting-started-deploy"></a>

1. Cree una aplicación de Elastic Beanstalk para contener el entorno.

   ```
   $ aws elasticbeanstalk create-application \
       --application-name getting-started-cluster-app
   ```

1. Cree el entorno. El `Cluster` nivel selecciona Beanstalk Cluster. Como esta solicitud no tiene ninguna etiqueta de versión, Elastic Beanstalk implementa la aplicación de muestra.

   ```
   $ aws elasticbeanstalk create-environment \
       --application-name getting-started-cluster-app \
       --environment-name getting-started-cluster-env \
       --tier Name=Cluster,Type=EKS \
       --option-settings \
           Namespace=aws:elasticbeanstalk:eks,OptionName=cluster-role,Value={{cluster-role-arn}} \
           Namespace=aws:elasticbeanstalk:eks,OptionName=node-role,Value={{node-role-arn}} \
           Namespace=aws:elasticbeanstalk:eks:environment,OptionName=observability-role,Value={{observability-role-arn}}
   ```

   Sustituya los marcadores de posición ARN de los roles por los roles que ha preparado. La solicitud omite `service-port` y. `load-balancer-type` Elastic Beanstalk resuelve esos ajustes con sus valores predeterminados, y. `8080` `ALB` Para elegir valores diferentes, páselos con. `--option-settings` Para ver la referencia completa de las opciones, consulte[Opciones de configuración para entornos de Beanstalk Cluster](command-options-general-eks.md).

1. Espere a que el entorno esté preparado. Un primer entorno puede tardar entre 15 y 20 minutos mientras Elastic Beanstalk crea el clúster de Amazon EKS e implementa la muestra. AWS CLI Proporciona un sistema de espera integrado que sondea hasta que el entorno presente los informes. `Ready` El camarero sondea como máximo 20 veces en intervalos de 20 segundos, aproximadamente 6 minutos y 40 segundos, por lo que en un primer entorno espere que informe. `Max attempts exceeded` Vuelva a ejecutarlo hasta que indique que se ha realizado correctamente.

   ```
   $ aws elasticbeanstalk wait environment-exists \
       --environment-names getting-started-cluster-env
   ```

   El camarero informa cuando `Max attempts exceeded` el entorno aún se está creando y cuando la creación ha fallado. Si no informa que se ha realizado correctamente después de algunas ejecuciones, inspeccione los eventos recientes del entorno y resuelva el error notificado antes de continuar.

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

1. Inspeccione el estado del entorno, el color, el estado de salud y la URL.

   ```
   $ aws elasticbeanstalk describe-environments \
       --application-name getting-started-cluster-app \
       --environment-names getting-started-cluster-env \
       --query 'Environments[0].[Status,Health,HealthStatus,CNAME]' \
       --output table
   ```

   Confirme que el entorno informa `Ready` y devuelve un mensaje que no esté vacío. `CNAME` `https://`Ábralo seguido del CNAME en un navegador web y confirme que la aplicación de ejemplo responde. El balanceador de cargas solo responde en HTTPS, por lo que la solicitud espera hasta que se agote el tiempo de `http://` espera. Para aceptar solicitudes HTTP y hacer que Elastic Beanstalk las redirija a HTTPS, consulte. [Configuración de redes para entornos de Beanstalk Cluster](configuring-cluster-networking.md) Un entorno inactivo puede generar informes inicialmente `Grey` y, `NoData` dado que ha recibido muy pocas solicitudes para determinar el estado de la aplicación, los eventos de estado muestran este estado como. `No Data` Esto no indica que la implementación haya fallado. Una vez que la aplicación recibe suficientes solicitudes satisfactorias, el estado normalmente pasa a `Green` y`Ok`. Si el CNAME está vacío, la aplicación no responde o el estado informa de un error, inspeccione los eventos recientes del entorno antes de continuar:

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

   Para ver el modelo de estado del clúster, consulte[Supervisión de los entornos de Beanstalk Cluster](monitoring-cluster-environments.md).

## Implemente su propia imagen de contenedor
<a name="beanstalk-cluster-getting-started-deploy-own"></a>

El entorno está ejecutando la aplicación de ejemplo porque la solicitud de creación no incluía ninguna etiqueta de versión. Para ejecutar su propia aplicación, cree una versión de * la aplicación * que asigne un nombre a la imagen del contenedor y, a continuación, implemente esa versión en el entorno. Este es el flujo normal de Elastic Beanstalk: la versión de una aplicación es el artefacto que se puede implementar y el ejemplo es lo que Elastic Beanstalk implementa cuando no se suministra ninguno.

Antes de empezar, necesitas una imagen de contenedor que ya hayas subido a un registro, como un repositorio de Amazon Elastic Container Registry (Amazon ECR) de tu cuenta, y la imagen debe estar disponible en el entorno, a menos que la cambies. `service-port` `8080` La implementación de su propia versión reemplaza a la aplicación de muestra. Para que Elastic Beanstalk cree la imagen a partir de su código fuente y para conocer las opciones de compilación, consulte. [Creación de imágenes de contenedores para entornos de Beanstalk Cluster](beanstalk-cluster-app-versions.md)

1. Cree una versión de la aplicación que apunte a su imagen.

   ```
   $ aws elasticbeanstalk create-application-version \
       --application-name getting-started-cluster-app \
       --version-label v1 \
       --image-configuration Source={Uri={{your-image-uri}}}
   ```

   {{your-image-uri}}Sustitúyala por tu imagen, por ejemplo`111122223333.dkr.ecr.us-east-1.amazonaws.com/my-app:v1`. Como la imagen ya está compilada, la versión no necesita ningún paso de compilación y está lista para implementarse.

1. Implemente la versión en el entorno.

   ```
   $ aws elasticbeanstalk update-environment \
       --environment-name getting-started-cluster-env \
       --version-label v1
   ```

1. Confirme que la implementación ha finalizado y que el entorno está sirviendo a su aplicación.

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

   `https://`Ábralo seguido del CNAME del entorno en un navegador web y confirme que la aplicación responde. Si no es así, comprueba si los eventos han fallado en la implementación y comprueba que la imagen se escucha en el entorno. `service-port`

## Limpia los recursos del tutorial
<a name="beanstalk-cluster-getting-started-cleanup"></a>

1. Finalice el entorno.

   ```
   $ aws elasticbeanstalk terminate-environment \
       --environment-name getting-started-cluster-env
   ```

1. Espere a que el entorno alcance el `Terminated` estado. AWS CLI Proporciona un camarero integrado que sondea hasta que finalice la rescisión. Este camarero tiene el mismo límite de 20 intentos, así que ejecútelo de nuevo hasta que dé con éxito.

   ```
   $ aws elasticbeanstalk wait environment-terminated \
       --environment-names getting-started-cluster-env
   ```

   El camarero informa `Max attempts exceeded` tanto cuando la rescisión está en curso como cuando ha fallado. Si no informa de que se ha realizado correctamente después de algunas ejecuciones, resuelva el error en los eventos del entorno. No elimine la aplicación mientras el entorno siga existiendo.

1. Elimine la aplicación y sus versiones, incluida la versión de muestra que creó Elastic Beanstalk y cualquier versión que haya agregado. Esto no elimina una imagen de contenedor que haya suministrado ni el repositorio que la contiene; consulte. [Creación de imágenes de contenedores para entornos de Beanstalk Cluster](beanstalk-cluster-app-versions.md)

   ```
   $ aws elasticbeanstalk delete-application \
       --application-name getting-started-cluster-app
   ```

Elastic Beanstalk elimina un clúster compartido de Amazon EKS solo después de cerrar el último entorno que lo utilizó. La eliminación del clúster puede tardar hasta tres horas; Amazon EKS y otros cargos por recursos continúan hasta que se complete la eliminación. La cancelación no elimina las funciones de IAM de clúster, nodo y observabilidad proporcionadas por el cliente. Verifique la eliminación del clúster tal y como se describe en. [Eliminación del clúster](beanstalk-cluster-concepts.md#beanstalk-cluster-clusters-lifecycle)

## Siguientes pasos
<a name="beanstalk-cluster-getting-started-next"></a>
+ Implemente su propia fuente o imagen de contenedor creando una versión de la aplicación. Consulte [Creación de imágenes de contenedores para entornos de Beanstalk Cluster](beanstalk-cluster-app-versions.md).
+ Configure los límites de los recursos, el escalado, el comportamiento de la implementación, el equilibrio de carga y la observabilidad. Consulte [Opciones de configuración para entornos de Beanstalk Cluster](command-options-general-eks.md).
+ Aprenda a actualizar y supervisar el entorno. Consulte [Administración de entornos de Elastic Beanstalk](using-features.managing.md) y [Supervisión de los entornos de Beanstalk Cluster](monitoring-cluster-environments.md).