Arquitetando seu aplicativo - Amazon Elastic Container Service

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á.

Arquitetando seu aplicativo

Você arquiteta seu aplicativo criando uma definição de tarefa para seu aplicativo. A definição da tarefa contém os parâmetros que definem as informações sobre o aplicativo, incluindo:

  • O tipo de lançamento a ser usado, que determina a infraestrutura na qual suas tarefas estão hospedadas.

    Ao usar o tipo de execução do EC2, você também escolhe o tipo de instância. Para alguns tipos de instância, como GPU, você precisa definir parâmetros adicionais. Para ter mais informações, consulte Casos de uso de definição de tarefa.

  • A imagem do contêiner, que contém o código do aplicativo e todas as dependências que o código do aplicativo exige para ser executado.

  • O modo de rede a ser usado para os contêineres em sua tarefa

    O modo de rede determina como sua tarefa se comunica pela rede.

    Para tarefas executadas na instância do EC2, há várias opções, mas recomendamos que você use o modo de awsvpc rede. O modo awsvpc de rede simplifica a rede de contêineres, porque você tem mais controle sobre como seus aplicativos se comunicam entre si e com outros serviços em suas VPCs.

    Para tarefas executadas no Fargate, você só pode usar o modo de awsvpc rede.

  • A configuração de registro a ser usada em suas tarefas.

  • Qualquer volume de dados usado com os contêineres na tarefa.

Para obter uma lista completa de parâmetros de definição de tarefa, consulte Parâmetros de definição de tarefa.

Use as diretrizes a seguir ao criar suas definições de tarefas:

  • Use cada família de definição de tarefas para apenas uma finalidade comercial.

    Se você agrupar vários tipos de contêineres de aplicações na mesma definição de tarefa, não poderá escalar esses contêineres de forma independente. Por exemplo, é improvável que tanto um site quanto uma API exijam aumento de escala na horizontal na mesma taxa. À medida que o tráfego aumenta, será necessário um número diferente de contêineres da Web do que o de contêineres de API. Se esses dois contêineres estiverem sendo implantados na mesma definição de tarefa, todas as tarefas executarão o mesmo número de contêineres da Web e contêineres de API.

  • Combine cada versão da aplicação com uma revisão de definição de tarefa dentro de uma família de definição de tarefa.

    Dentro de uma família de definição de tarefa, considere cada revisão da definição de tarefa como um instantâneo pontual das configurações de uma imagem de contêiner específica. Isso é semelhante à forma como o contêiner é um instantâneo de tudo o que é necessário para executar uma versão específica do código da sua aplicação.

    Verifique se há um one-to-one mapeamento entre uma versão do código do aplicativo, uma tag de imagem de contêiner e uma revisão da definição da tarefa. Um processo de lançamento típico envolve um git commit que é transformado em uma imagem de contêiner com tag atribuída do SHA do git commit. Em seguida, essa tag de imagem de contêiner recebe sua própria revisão de definição de tarefa do Amazon ECS. Por último, o serviço Amazon ECS é atualizado para solicitar que ele implemente a nova revisão da definição de tarefas.

  • Use perfis do IAM diferentes para cada família de definição de tarefa.

    Defina cada definição de tarefa com seu próprio perfil do IAM. Essa recomendação deve ser feita em conjunto com nossa recomendação de fornecer a cada componente de negócios sua própria família de definição de tarefas. Ao implementar essas duas práticas recomendadas, você pode limitar a quantidade de acesso que cada serviço tem aos recursos da sua AWS conta. Por exemplo, é possível conceder acesso ao seu serviço de autenticação para se conectar ao seu banco de dados de senhas. Ao mesmo tempo, você também pode garantir que somente o serviço de pedidos tenha acesso às informações de pagamento do cartão de crédito.