Amazon Elastic Container Service no AWS Outposts - Amazon Elastic Container Service

Amazon Elastic Container Service no AWS Outposts

O AWS Outposts permite serviços nativos, infraestrutura e modelos operacionais da AWS em instalações on-premises. Em ambientes do AWS Outposts, é possível usar APIs, ferramentas e infraestrutura da AWS semelhantes às utilizadas na Nuvem AWS.

O Amazon ECS no AWS Outposts é ideal para workloads de baixa latência que precisam ser executadas perto dos dados e aplicações on-premises.

Para obter mais informações sobre o AWS Outposts, consulte o Guia do usuário do AWS Outposts.

Considerações

A seguir, apresentamos considerações sobre o uso do Amazon ECS no AWS Outposts:

  • O Amazon Elastic Container Registry, o AWS Identity and Access Management e o Network Load Balancer são executados na região da AWS e não no AWS Outposts. Isto irá aumentar as latências entre esses serviços e os contêineres.

  • O AWS Fargate não está disponível no AWS Outposts.

Veja a seguir as considerações sobre a conectividade de rede do AWS Outposts:

  • Se a conectividade de rede entre o AWS Outposts e a região da AWS for perdida, os clusters continuarão em execução. No entanto, você não pode criar novos clusters ou executar novas ações em clusters existentes enquanto que a conectividade não for restaurada. Em caso de falhas na instância, a instância não será substituída automaticamente. O agente do CloudWatch Logs não poderá atualizar logs e dados de eventos.

  • Recomendamos que você forneça conectividade confiável, altamente disponível e de baixa latência entre o AWS Outposts e a região da AWS.

Pré-requisitos

A seguir, apresentamos pré-requisitos para usar o Amazon ECS no AWS Outposts:

  • Um Outpost deve estar instalado e configurado no data center on-premises.

  • É necessário ter uma conexão de rede confiável entre o Outpost e a região da AWS.

Visão geral da criação de clusters em AWS Outposts

A seguir está uma visão geral da configuração:

  1. Crie uma função e uma política com direitos no AWS Outposts.

  2. Crie um perfil da instância do IAM com direitos no AWS Outposts.

  3. Crie uma VPC ou use uma existente que esteja na mesma região que a sua AWS Outposts.

  4. Crie uma sub-rede ou use uma existente que esteja associada a AWS Outposts.

    Essa é a sub-rede em que as instâncias do contêiner são executadas.

  5. Criar uma regra do grupo de segurança para as instâncias de contêiner em seu cluster.

  6. Crie um cluster do Amazon ECS.

  7. Defina as variáveis de ambiente do agente de contêiner do Amazon ECS para iniciar a instância no cluster.

  8. Execute o contêiner.

Para obter informações detalhadas sobre como integrar o Amazon ECS com AWS Outposts, consulte Extend Amazon ECS across two AWS Outposts racks.

O exemplo a seguir cria um cluster do Amazon ECS em um AWS Outposts.

  1. Crie uma função e uma política com direitos no AWS Outposts.

    O arquivo role-policy.json é o documento de política que contém o efeito e as ações dos recursos. Para obter informações sobre o formato do arquivo, consulte PutRolePolicy na Referência de API do IAM

    aws iam create-role –-role-name ecsRole \ --assume-role-policy-document file://ecs-policy.json aws iam put-role-policy --role-name ecsRole --policy-name ecsRolePolicy \ --policy-document file://role-policy.json
  2. Crie um perfil da instância do IAM com direitos no AWS Outposts.

    aws iam create-instance-profile --instance-profile-name outpost aws iam add-role-to-instance-profile --instance-profile-name outpost \ --role-name ecsRole
  3. Crie uma VPC.

    aws ec2 create-vpc --cidr-block 10.0.0.0/16
  4. Crie uma sub-rede associada ao seu AWS Outposts.

    aws ec2 create-subnet \ --cidr-block 10.0.3.0/24 \ --vpc-id vpc-xxxxxxxx \ --outpost-arn arn:aws:outposts:us-west-2:123456789012:outpost/op-xxxxxxxxxxxxxxxx \ --availability-zone-id usw2-az1
  5. Crie um grupo de segurança para as instâncias de contêiner, especificando o intervalo CIDR adequado para o AWS Outposts. (Essa etapa é diferente para o AWS Outposts.)

    aws ec2 create-security-group --group-name MyOutpostSG aws ec2 authorize-security-group-ingress --group-name MyOutpostSG --protocol tcp \ --port 22 --cidr 10.0.3.0/24 aws ec2 authorize-security-group-ingress --group-name MyOutpostSG --protocol tcp \ --port 80 --cidr 10.0.3.0/24
  6. Crie o cluster.

  7. Defina as variáveis de ambiente do agente de contêiner do Amazon ECS para iniciar a instância no cluster criado na etapa anterior e defina as tags que você deseja adicionar para ajudar a identificar o cluster (por exemplo, Outpost para indicar que o cluster é para um Outpost).

    #! /bin/bash cat << ‘EOF’ >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_IMAGE_PULL_BEHAVIOR=prefer-cached ECS_CONTAINER_INSTANCE_TAGS={“environment”: ”Outpost”} EOF
    nota

    Para evitar atrasos causados pela extração de imagens de contêiner do Amazon ECR na região, use caches de imagem. Para fazer isso, cada vez que uma tarefa for executada, configure o agente do Amazon ECS como padrão para usar a imagem em cache na própria instância, definindo ECS_IMAGE_PULL_BEHAVIOR como prefer-cached.

  8. Crie a instância de contêiner especificando a VPC e a sub-rede para o AWS Outposts no qual esta instância deve ser executada e um tipo de instância disponível no AWS Outposts. (Essa etapa é diferente para o AWS Outposts.)

    O arquivo userdata.txt contém os dados do usuário que a instância pode usar para realizar tarefas de configuração automatizadas em comum e até mesmo executar scripts após o início da instância. Para obter mais informações sobre o arquivo para chamadas de API, consulte Executar comandos na instância do Linux no lançamento no Manual do usuário do Amazon EC2.

    aws ec2 run-instances --count 1 --image-id ami-xxxxxxxx --instance-type c5.large \ --key-name aws-outpost-key –-subnet-id subnet-xxxxxxxxxxxxxxxxx \ --iam-instance-profile Name outpost --security-group-id sg-xxxxxx \ --associate-public-ip-address --user-data file://userdata.txt
    nota

    Esse comando também é usado ao incluir instâncias adicionais no cluster. Todos os contêineres implantados no cluster serão colocados nesse AWS Outposts específico.