Uso do Service Connect para conectar serviços do Amazon ECS com nomes abreviados - Amazon Elastic Container Service

Uso do Service Connect para conectar serviços do Amazon ECS com nomes abreviados

O Amazon ECS Service Connect fornece gerenciamento da comunicação entre serviços conforme a configuração do Amazon ECS. Ele cria uma descoberta de serviços e uma malha de serviços no Amazon ECS. Isso fornece a configuração completa dentro de cada serviço que você gerencia por implantações de serviço, uma maneira unificada de consultar os serviços nos namespaces que não dependem da configuração de DNS da VPC, além de métricas e dos logs padronizados para monitorar todas as aplicações. O Service Connect apenas realiza a interconexão de serviços.

O diagrama a seguir mostra um exemplo de rede do Service Connect com duas sub-redes na VPC e dois serviços. Um serviço do cliente que executa o WordPress com uma tarefa em cada sub-rede. Um serviço de servidor que executa o MySQL com uma tarefa em cada sub-rede. Ambos os serviços são altamente disponíveis e resilientes a problemas de tarefas e zonas de disponibilidade, pois cada serviço executa várias tarefas espalhadas por duas sub-redes. As setas sólidas mostram uma conexão do WordPress com o MySQL. Por exemplo, um comando da CLI mysql --host=mysql executado de dentro do contêiner do WordPress na tarefa com o endereço IP 172.31.16.1. O comando usa o nome curto mysql na porta padrão do MySQL. O nome e a porta se conectam ao proxy do Service Connect na mesma tarefa. O proxy na tarefa do WordPress usa balanceamento de carga round-robin e qualquer informação de falha anterior na detecção de valores discrepantes para escolher a qual tarefa do MySQL se conectar. Conforme mostrado pelas setas sólidas no diagrama, o proxy se conecta ao segundo proxy na tarefa do MySQL com o endereço IP 172.31.16.2. O segundo proxy se conecta ao servidor MySQL local na mesma tarefa. Ambos os proxies relatam o desempenho da conexão que é visível em gráficos nos consoles Amazon ECS e Amazon CloudWatch para que você possa obter métricas de performance de todos os tipos de aplicações da mesma forma.

Exemplo de rede do Service Connect mostrando serviços mínimos de HA

Os termos a seguir são usados com o Service Connect.

nome da porta

A configuração de definição de tarefa do Amazon ECS que atribui um nome a um mapeamento de porta específico. Essa configuração só é usada pelo Amazon ECS Service Connect.

alias do cliente

A configuração do serviço do Amazon ECS que atribui o número da porta usada no endpoint. Além disso, o alias do cliente pode atribuir o nome DNS do endpoint, substituindo o nome da descoberta. Se um nome de descoberta não for fornecido no serviço do Amazon ECS, o nome do alias do cliente substituirá o nome da porta como o nome do endpoint. Para ver exemplos de endpoints, consulte a definição de endpoint. Vários aliases de cliente podem ser atribuídos a um serviço do Amazon ECS. Essa configuração só é usada pelo Amazon ECS Service Connect.

nome da descoberta

O nome intermediário opcional que você pode criar para uma porta especificada na definição da tarefa. Esse nome é usado para criar um serviço do AWS Cloud Map. Se esse nome não for fornecido, será usado o nome da porta da definição da tarefa. Vários nomes de descoberta podem ser atribuídos a uma porta específica de um serviço do Amazon ECS. Essa configuração só é usada pelo Amazon ECS Service Connect.

Os nomes dos serviços do AWS Cloud Map devem ser exclusivos dentro de um namespace. Devido a essa limitação, você só pode ter uma configuração do Service Connect sem um nome de descoberta para uma definição de tarefa específica em cada namespace.

endpoint

O URL para se conectar a uma API ou site. O URL contém o protocolo, um nome DNS e a porta. Para obter mais informações sobre endpoints em geral, consulte endpoint no Glossário da AWS na Referência geral da Amazon Web Services.

O Service Connect cria endpoints que se conectam aos serviços do Amazon ECS e configura as tarefas nos serviços do Amazon ECS para se conectarem aos endpoints. O URL contém o protocolo, um nome DNS e a porta. Você seleciona o protocolo e o nome da porta na definição da tarefa, pois a porta deve corresponder à aplicação que está dentro da imagem do contêiner. No serviço, você seleciona cada porta pelo nome e pode atribuir o nome DNS. Se você não especificar um nome DNS na configuração do serviço do Amazon ECS, será usado por padrão o nome da porta da definição da tarefa. Por exemplo, um endpoint do Service Connect pode ser http://blog:80, grpc://checkout:8080 ou http://_db.production.internal:99.

Serviço do Service Connect

A configuração de um único endpoint em um serviço do Amazon ECS. Isso faz parte da configuração do Service Connect, que consiste em uma única linha na Service Connect and discovery name configuration (Configuração do Service Connect e do nome da descoberta) no console ou em um objeto da lista services da configuração JSON de um serviço do Amazon ECS. Essa configuração só é usada pelo Amazon ECS Service Connect.

Para obter mais informações, consulte ServiceConnectService na Referência de API do Amazon Elastic Container Service.

namespace

O nome do recurso da Amazon (ARN) abreviado ou completo do namespace AWS Cloud Map para uso com o Service Connect. O namespace deve estar na mesma Região da AWS que o serviço e o cluster do Amazon ECS. O tipo de namespace no AWS Cloud Map não afeta o Service Connect.

O Service Connect usa o namespace AWS Cloud Map como um agrupamento lógico de tarefas do Amazon ECS que se comunicam entre si. Cada serviço do Amazon ECS pode pertencer a apenas um namespace. Os serviços em um namespace podem ser distribuídos entre diferentes clusters do Amazon ECS dentro da mesma Região da AWS na mesma Conta da AWS. É possível organizar serviços de forma flexível, seguindo qualquer critério desejado.

serviço de cliente

Um serviço que executa uma aplicação cliente de rede. Esse serviço deve ter um namespace configurado. Cada tarefa do serviço pode descobrir e se conectar a todos os endpoints do namespace por meio de um contêiner do proxy do Service Connect.

Se algum dos seus contêineres na tarefa precisar se conectar a um endpoint em um serviço em um namespace, escolha um serviço de cliente. Se uma aplicação de frontend, de proxy reverso ou de balanceador de carga receber tráfego externo por meio de outros métodos, como o Elastic Load Balancing, ela poderá usar esse tipo de configuração do Service Connect.

serviço cliente-servidor

Um serviço do Amazon ECS que executa uma aplicação de rede ou de serviço Web. Esse serviço deve ter um namespace e pelo menos um endpoint configurados. Cada tarefa do serviço pode ser acessada por meio dos endpoints. O contêiner do proxy do Service Connect recebe o nome e a porta do endpoint para direcionar o tráfego para os contêineres da aplicação na tarefa.

Se algum dos contêineres expuser e receber tráfego de rede em uma porta, escolha um serviço cliente-servidor. Essas aplicações não precisam se conectar a outros serviços cliente-servidor no mesmo namespace, mas a configuração do cliente é necessária. Esse tipo de configuração do Service Connect pode ser utilizado por backend, middleware, camada de negócios ou pela maioria dos microsserviços. Se você quiser que uma aplicação de frontend, de proxy reverso ou de balanceador de carga receba tráfego de outros serviços configurados com o Service Connect no mesmo namespace, esses serviços deverão usar esse tipo de configuração do Service Connect.

O recurso Service Connect cria uma rede virtual de serviços relacionados. A mesma configuração de serviços pode ser usada em vários namespaces diferentes para executar conjuntos de aplicações independentes, mas idênticas. O Service Connect define o contêiner do proxy no serviço do Amazon ECS. Dessa forma, a mesma definição de tarefa pode ser usada para executar aplicações idênticas em namespaces diferentes com diferentes configurações do Service Connect. Cada tarefa realizada pelo serviço executa um contêiner proxy na tarefa.

O Service Connect é adequado para conexões entre serviços do Amazon ECS dentro do mesmo namespace. Para as seguintes aplicações, você precisa usar um método de interconexão adicional para se conectar a um serviço do Amazon ECS que esteja configurado com o Service Connect:

  • Tarefas que estão configuradas em outros namespaces

  • Tarefas que não estão configuradas para o Service Connect

  • Outras aplicações fora do Amazon ECS

Essas aplicações podem se conectar por meio do proxy do Service Connect, mas não conseguem resolver os nomes dos endpoints do Service Connect.

Para que essas aplicações resolvam os endereços IP das tarefas do Amazon ECS, é necessário usar outro método de interconexão.

Definição de preço

O preços do Amazon ECS Service Connect depende de você usar ou não a infraestrutura do AWS Fargate ou do Amazon EC2 para hospedar workloads em contêineres. Ao usar o Amazon ECS no AWS Outposts, os preços seguem o mesmo modelo de quando você está usando o Amazon EC2 diretamente. Para obter mais informações, consulte Preços do Amazon ECS.

O uso do AWS Cloud Map é totalmente gratuito quando o Service Connect o utiliza.