Execute ECS tarefas da Amazon 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 ECS tarefas da Amazon 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

AWSserviços: AmazonECS; Amazon WorkSpaces; AWS Directory Service

Resumo

O Amazon Elastic Container Service (AmazonECS) Anywhere suporta a implantação de ECS tarefas da Amazon em qualquer ambiente, incluindo a infraestrutura gerenciada da Amazon Web Services (AWS) e a infraestrutura gerenciada pelo cliente. Você pode fazer isso usando um plano de controle totalmente AWS gerenciado, 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 (AmazonEC2) ou o AWS Fargate com um cluster da ECS Amazon para testar e ECS executar tarefas. Agora, usando o Amazon ECS Anywhere, você pode adicionar a Amazon WorkSpaces como instâncias externas diretamente a um ECS cluster e executar suas tarefas diretamente. Isso reduz seu tempo de desenvolvimento, porque você pode testar seu contêiner com um ECS cluster localmente na Amazon WorkSpaces. Você também pode economizar o custo de usar EC2 nossas instâncias Fargate para testar seus aplicativos de contêiner.

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

Pré-requisitos e limitações

Arquitetura

Pilha de tecnologias de destino

  • Uma nuvem privada virtual (VPC)

  • Um ECS cluster da Amazon

  • Amazon WorkSpaces

  • AWSDirectory Service com Simple AD

Arquitetura de destino

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

A arquitetura inclui os seguintes serviços e recursos:

  • Um ECS cluster com sub-redes públicas e privadas em um formato personalizado VPC

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

  • Amazon WorkSpaces provisionada no VPC uso do Simple AD

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

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

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

Ferramentas

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

  • O Amazon Elastic Container Service (AmazonECS) é um serviço de gerenciamento de contêineres rápido e escalável que ajuda você a executar, parar e gerenciar contêineres em um cluster.

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

  • AWSO Systems Manager ajuda você a gerenciar seus aplicativos e infraestrutura em execução na AWS nuvem. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança 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

Crie e configure o ECS cluster.

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

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

  • Escolha criar um novoVPC.

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 Amazon recém-criada VPC e iniciada WorkSpaces, siga as instruções na AWSdocumentação.

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

Adicione a IAM função.

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 mazonSSMManaged InstanceCore política A à IAM função.

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 EC2ContainerServiceforEC2Role política da Amazon à IAM função.

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

Verifique a IAM função.

Para verificar a IAM função, execute 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 AWSdocumentação.

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

Adicione um EPEL repositório no Amazon Linux.

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

Desenvolvedor de aplicativos

Instale 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

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

Para verificar as informações do Systems Manager e da instância do ECS cluster e validar WorkSpaces as que 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

Crie uma função de execução de IAM 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 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