Execute tarefas do Amazon ECS na Amazon WorkSpaces com o Amazon ECS Anywhere - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Execute tarefas do Amazon ECS na Amazon WorkSpaces com o Amazon ECS Anywhere

Criado por Akash Kumar (AWS)

Ambiente: produção

Tecnologias: contêineres e microsserviços; Modernização

Workload: todas as outras workloads

Serviços da AWS: Amazon ECS; Amazon WorkSpaces; AWS Directory Service

Resumo

O Amazon Elastic Container Service (Amazon ECS) Anywhere é compatível com a implantação de tarefas do Amazon ECS em qualquer ambiente, incluindo a infraestrutura gerenciada pelo Amazon Web Services (AWS) e a infraestrutura gerenciada pelo cliente. Você pode fazer isso usando um ambiente de gerenciamento totalmente gerenciado pela AWS, executado na nuvem e sempre atualizado. 

As empresas costumam usar a Amazon WorkSpaces para desenvolver aplicativos baseados em contêineres. Isso exigiu o Amazon Elastic Compute Cloud (Amazon EC2) ou o AWS Fargate com um cluster do Amazon ECS para testar e executar tarefas do ECS. Agora, usando o Amazon ECS Anywhere, você pode adicionar a WorkSpaces Amazon como instâncias externas diretamente a um cluster do ECS e executar suas tarefas diretamente. Isso reduz seu tempo de desenvolvimento, porque você pode testar seu contêiner com um cluster ECS localmente na Amazon WorkSpaces. Você também pode economizar o custo de usar instâncias EC2 ou Fargate para testar seus aplicativos de contêiner.

Esse padrão mostra como implantar tarefas do ECS na Amazon WorkSpaces com o Amazon ECS Anywhere. Ele configura o cluster do ECS e usa o AWS Directory Service Simple AD para iniciar o. WorkSpaces Em seguida, o exemplo de tarefa do ECS inicia o NGINX no. WorkSpaces

Pré-requisitos e limitações

Arquitetura

Pilha de tecnologias de destino

  • Uma nuvem privada virtual (VPC).

  • Um cluster do Amazon ECS

  • Amazon WorkSpaces

  • AWS Directory Service com Simple AD

Arquitetura de destino

O ECS Anywhere configura o cluster ECS e usa o Simple AD para iniciar. WorkSpaces

A arquitetura inclui os seguintes serviços e recursos:

  • Um cluster do ECS com sub-redes públicas e privadas em uma VPC personalizada

  • Simple AD na VPC para fornecer acesso ao usuário à Amazon WorkSpaces

  • Amazon WorkSpaces provisionada na VPC usando Simple AD

  • AWS Systems Manager ativado para adicionar a Amazon WorkSpaces como instâncias gerenciadas

  • Usando o Amazon ECS e o AWS Systems Manager Agent (SSM Agent), a Amazon WorkSpaces adicionou ao Systems Manager e ao cluster ECS

  • Um exemplo de tarefa do ECS a ser executada WorkSpaces no cluster do ECS

Ferramentas

  • O Simple Active Directory (Simple AD) do AWS Directory Service é um diretório gerenciado autônomo alimentado por um servidor compatível com o Samba 4 Active Directory. O Simple AD fornece um subconjunto dos atributos oferecidos pelo AWS Managed Microsoft AD, incluindo a capacidade de gerenciar usuários e se conectar com segurança às instâncias do Amazon EC2.

  • O Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.

  • O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

  • O AWS Systems Manager ajuda você a gerenciar seus aplicativos e infraestrutura em execução na nuvem AWS. Isso simplifica o gerenciamento de aplicações e recursos, diminui o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus recursos da AWS de modo seguro e em grande escala.

  • WorkSpacesA Amazon ajuda você a provisionar desktops Microsoft Windows ou Amazon Linux virtuais baseados em nuvem para seus usuários, conhecidos como. WorkSpaces WorkSpaces elimina a necessidade de adquirir e implantar hardware ou instalar software complexo.

Épicos

TarefaDescriçãoHabilidades necessárias

Criar e configurar o cluster ECS.

Para criar o cluster ECS, siga as instruções na documentação da AWS, incluindo as seguintes etapas:

  • Em Selecionar compatibilidade de cluster, escolha Somente rede, que suportará uma Amazon WorkSpace como uma instância externa para o cluster ECS.

  • Selecione Criar uma nova VPC.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Configure o Simple AD e inicie a Amazon WorkSpaces.

Para provisionar um diretório Simple AD para sua VPC recém-criada e iniciar a Amazon WorkSpaces, siga as instruções na documentação da AWS.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Baixe os scripts anexados.

Em sua máquina local, baixe os arquivos ssm-trust-policy.json e ssm-activation.json que estão na seção Anexos.

Arquiteto de nuvem

Adicionar o perfil do IAM.

Adicionar variáveis de ambiente com base nos requisitos da sua 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}

Execute o seguinte comando .

aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://ssm-trust-policy.json
Arquiteto de nuvem

Adicione a ManagedInstanceCore política do AmazonSSM à função do IAM.

Execute o seguinte comando .

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Arquiteto de nuvem

Adicione a política EC2Role do ContainerServicefor AmazonEC2 à função do IAM.

Execute o seguinte comando .

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
Arquiteto de nuvem

Verificar o perfil do IAM.

Para verificar o perfil do IAM, excute o comando a seguir.

aws iam list-attached-role-policies --role-name $ROLE_NAME
Arquiteto de nuvem

Ativar o Systems Manager.

Execute o seguinte comando .

aws ssm create-activation --iam-role $ROLE_NAME | tee ssm-activation.json
Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Conecte-se ao seu WorkSpaces.

Para se conectar e configurar seus espaços de trabalho, siga as instruções na documentação da AWS.

Desenvolvedor de aplicativos

Baixar o script de instalação do ecs-anywhere.

No prompt de comando, execute o seguinte comando da .

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
Desenvolvedor de aplicativos

Verificar a integridade do script de shell.

(Opcional) Execute o seguinte comando.

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
Desenvolvedor de aplicativos

Adicionar um repositório EPEL no Linux do Amazon.

Para adicionar um repositório de Extra Packages for Enterprise Linux (EPEL), execute o comando sudo amazon-linux-extras install epel -y.

Desenvolvedor de aplicativos

Instalar o Amazon ECS Anywhere.

Para executar o script de instalação, use o seguinte comando.

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

Verificar as informações da instância do cluster ECS.

Para verificar as informações da instância de cluster do Systems Manager e do ECS e validar as que WorkSpaces foram adicionadas ao cluster, execute o comando a seguir em sua máquina local.

aws ssm describe-instance-information" && "aws ecs list-container-instances --cluster $CLUSTER_NAME
Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Criar um perfil do IAM de execução de tarefas

Baixar task-execution-assume-role.json e external-task-definition.json na seção Anexos

Execute o seguinte comando na máquina 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
Arquiteto de nuvem

Adicione a política à função de execução.

Execute o seguinte 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
Arquiteto de nuvem

Crie um perfil de tarefas.

Execute o seguinte 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
Arquiteto de nuvem

Registre a definição de tarefa para o cluster.

Execute o seguinte comando na máquina local.

aws ecs register-task-definition --cli-input-json file://external-task-definition.json
Arquiteto de nuvem

Execute a tarefa.

Execute o seguinte comando na máquina local.

aws ecs run-task --cluster $CLUSTER_NAME --launch-type EXTERNAL --task-definition nginx
Arquiteto de nuvem

Validar o estado de execução da tarefa.

Para obter o ID da tarefa, execute o comando a seguir.

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

Com o ID da tarefa, execute o seguinte comando.

aws ecs describe-tasks --cluster $CLUSTER_NAME --tasks ${TEST_TASKID}
Arquiteto de nuvem

Verifique a tarefa no WorkSpace.

Para verificar se o NGINX está sendo executado no WorkSpace, execute o comando.  curl http://localhost:8080

Desenvolvedor de aplicativos

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip