Ejecute tareas de Amazon ECS en Amazon WorkSpaces con Amazon ECS Anywhere - Recomendaciones de AWS

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.

Ejecute tareas de Amazon ECS en Amazon WorkSpaces con Amazon ECS Anywhere

Creado por Akash Kumar (AWS)

Resumen

Amazon Elastic Container Service (Amazon ECS) Anywhere permite la implementación de tareas de Amazon ECS en cualquier entorno, incluida la infraestructura administrada por Amazon Web Services (AWS) y la infraestructura administrada por el cliente. Esto se puede hacer al tiempo que se utiliza un plano de control totalmente administrado por AWS que se ejecuta en la nube y que está siempre actualizado. 

Las empresas suelen utilizar Amazon WorkSpaces para desarrollar aplicaciones basadas en contenedores. Para ello, se necesitó Amazon Elastic Compute Cloud (Amazon EC2) o AWS Fargate con un clúster de Amazon ECS para probar y ejecutar las tareas de ECS. Ahora, con Amazon ECS Anywhere, puede añadir Amazon WorkSpaces como instancias externas directamente a un clúster de ECS y ejecutar sus tareas directamente. Esto reduce el tiempo de desarrollo, ya que puede probar su contenedor con un clúster de ECS localmente en Amazon WorkSpaces. También puede ahorrar el costo de usar EC2 instancias de Fargate para probar sus aplicaciones de contenedores.

Este patrón muestra cómo implementar tareas de ECS en Amazon WorkSpaces con Amazon ECS Anywhere. Configura el clúster de ECS y utiliza AWS Directory Service Simple AD para lanzar el WorkSpaces. A continuación, la tarea ECS de ejemplo lanza NGINX en. WorkSpaces

Requisitos previos y limitaciones

Arquitectura

Pila de tecnología de destino

  • Una nube privada virtual (VPC)

  • Clúster de Amazon ECS

  • Amazon WorkSpaces

  • AWS Directory Service con AD Connector

Arquitectura de destino

ECS Anywhere configura el clúster de ECS y utiliza Simple AD para su lanzamiento WorkSpaces.

La arquitectura incluye los siguientes servicios y recursos:

  • Un clúster de ECS con subredes públicas y privadas en una VPC personalizada

  • Simple AD en la VPC para proporcionar a los usuarios acceso a Amazon WorkSpaces

  • Amazon WorkSpaces aprovisionó en la VPC mediante Simple AD

  • AWS Systems Manager activado para añadir Amazon WorkSpaces como instancias gestionadas

  • Con Amazon ECS y AWS Systems Manager Agent (SSM Agent), Amazon WorkSpaces agregó a Systems Manager y al clúster de ECS

  • Un ejemplo de tarea de ECS para ejecutar WorkSpaces en el clúster de ECS

Herramientas

  • AWS Directory Service Simple Active Directory (Simple AD) es un directorio administrado de manera autónoma que utiliza tecnología de un servidor compatible con Active Directory de Samba 4. Simple AD ofrece un subconjunto de las funciones que ofrece AWS Managed Microsoft AD, incluida la capacidad de gestionar los usuarios y conectarse de forma segura a las EC2 instancias de Amazon.

  • Amazon Elastic Container Service (Amazon ECS) es un servicio de administración de contenedores escalable y rápido que ayuda a ejecutar, detener y administrar contenedores en un clúster.

  • AWS Identity and Access Management (IAM) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.

  • AWS Systems Manager le permite administrar las aplicaciones y la infraestructura que se ejecutan en la nube de AWS. Simplifica la administración de aplicaciones y recursos, reduce el tiempo requerido para detectar y resolver problemas operativos y ayuda a utilizar y administrar los recursos de AWS a escala de manera segura.

  • Amazon le WorkSpaces ayuda a aprovisionar escritorios Microsoft Windows o Amazon Linux virtuales basados en la nube para sus usuarios, conocidos como WorkSpaces. WorkSpaces elimina la necesidad de adquirir e implementar hardware o instalar software complejo.

Epics

TareaDescripciónHabilidades requeridas

Crear y configurar el clúster de ECS.

Para crear el clúster de ECS, siga las instrucciones que figuran en la Documentación de AWS, que incluyen los siguientes pasos:

  • En Seleccione la compatibilidad de clústeres, elija Solo redes, que admitirá Amazon WorkSpace como instancia externa al clúster de ECS.

  • Elija crear una nueva VPC.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Configura Simple AD y lanza Amazon WorkSpaces.

Para aprovisionar un directorio de Simple AD para su VPC recién creada e iniciar Amazon WorkSpaces, siga las instrucciones de la documentación de AWS.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Descargar los scripts adjuntos.

En su máquina local, descargue los archivos ssm-trust-policy.json y ssm-activation.json que se encuentran en la sección Archivos adjuntos.

Arquitecto de la nube

Agregar el rol de IAM.

Añada variables de entorno en función de los requisitos de su empresa.

export AWS_DEFAULT_REGION=${AWS_REGION_ID} export ROLE_NAME=${ECS_TASK_ROLE} export CLUSTER_NAME=${ECS_CLUSTER_NAME} export SERVICE_NAME=${ECS_CLUSTER_SERVICE_NAME}

Ejecutar el siguiente comando.

aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://ssm-trust-policy.json
Arquitecto de la nube

Añade la SSMManaged InstanceCore política de Amazon a la función de IAM.

Ejecutar el siguiente comando.

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Arquitecto de la nube

Añada la política de Amazon EC2 ContainerServicefor EC2 Role al rol de IAM.

Ejecutar el siguiente comando.

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
Arquitecto de la nube

Comprobar el rol de IAM.

Para verificar el rol de IAM, ejecute el siguiente comando.

aws iam list-attached-role-policies --role-name $ROLE_NAME
Arquitecto de la nube

Activar Systems Manager.

Ejecutar el siguiente comando.

aws ssm create-activation --iam-role $ROLE_NAME | tee ssm-activation.json
Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Conéctese a su WorkSpaces.

Para conectarse a sus Workspaces y configurarlos, siga las instrucciones que figuran en la Documentación de AWS.

Desarrollador de aplicaciones

Descargar el script de instalación ecs-anywhere.

En el símbolo del sistema, ejecute el siguiente comando.

curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh" && sudo chmod +x ecs-anywhere-install.sh
Desarrollador de aplicaciones

Comprobar la integridad del script del intérprete de comandos.

Ejecutar el siguiente comando (opcional).

curl -o "ecs-anywhere-install.sh.sha256" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh.sha256" && sha256sum -c ecs-anywhere-install.sh.sha256
Desarrollador de aplicaciones

Agregar un repositorio EPEL en Amazon Linux.

Para agregar un repositorio Extra Packages for Enterprise Linux (EPEL), ejecute el comando sudo amazon-linux-extras install epel -y.

Desarrollador de aplicaciones

Instalar Amazon ECS Anywhere.

Para ejecutar el script de instalación, utilice el siguiente comando.

sudo ./ecs-anywhere-install.sh --cluster $CLUSTER_NAME --activation-id $ACTIVATION_ID --activation-code $ACTIVATION_CODE --region $AWS_REGION

Comprobar la información de la instancia desde el clúster de ECS.

Para comprobar la información de las instancias del clúster de Systems Manager y ECS y validar las que WorkSpaces se agregaron al clúster, ejecute el siguiente comando desde su máquina local.

aws ssm describe-instance-information" && "aws ecs list-container-instances --cluster $CLUSTER_NAME
Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Para crear un rol de IAM de ejecución de tareas.

Descargue task-execution-assume-role.json y external-task-definition.json desde la sección Archivos adjuntos

Ejecute el siguiente comando en su equipo local.

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
Arquitecto de la nube

Agregue la política al rol de ejecución.

Ejecutar el siguiente comando.

aws iam --region $AWS_DEFAULT_REGION attach-role-policy --role-name $ECS_TASK_EXECUTION_ROLE --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
Arquitecto de la nube

Crear un rol de tarea.

Ejecutar el siguiente comando.

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
Arquitecto de la nube

Registrar la definición de tareas en el clúster.

Ejecute el siguiente comando en su equipo local.

aws ecs register-task-definition --cli-input-json file://external-task-definition.json
Arquitecto de la nube

Ejecutar la tarea.

Ejecute el siguiente comando en su equipo local.

aws ecs run-task --cluster $CLUSTER_NAME --launch-type EXTERNAL --task-definition nginx
Arquitecto de la nube

Validar el estado de ejecución de la tarea.

Para obtener el ID de la tarea, ejecute el siguiente comando.

export TEST_TASKID=$(aws ecs list-tasks --cluster $CLUSTER_NAME | jq -r '.taskArns[0]')

Ejecute el siguiente comando con el ID de la tarea.

aws ecs describe-tasks --cluster $CLUSTER_NAME --tasks ${TEST_TASKID}
Arquitecto de la nube

Compruebe la tarea en WorkSpace.

Para comprobar que NGINX se está ejecutando en WorkSpace, ejecute el comando.  curl http://localhost:8080

Desarrollador de aplicaciones

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip