O que é o AWS App Mesh? - AWSApp Mesh

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

O que é o AWS App Mesh?

AWS App Meshé uma malha de serviço que facilita o monitoramento e o controle de serviços. Uma malha de serviço é uma camada de infraestrutura dedicada a lidar com a comunicação de serviço a serviço, geralmente por meio de uma matriz de proxies de rede leves implantados juntamente com o código do aplicativo. O App Mesh padroniza o modo como seus serviços se comunicam, oferecendo a você visibilidade completa e ajudando a garantir alta disponibilidade para seus aplicativos. App Mesh oferece controles de tráfego de rede e visibilidade consistentes para cada serviço em um aplicativo.

Adicionando App Mesh a um aplicativo de exemplo

Considere o seguinte aplicativo de exemplo simples, que não usa App Mesh. Os dois serviços podem estar em execução noAWS Fargate, Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS), Kubernetes em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) ou em instâncias do Amazon EC2 com Docker.

Nesta ilustração, tantoserviceAeserviceBSão detectáveis por meio doapps.localNamespace. Digamos, por exemplo, que você decida implantar uma nova versão doserviceb.apps.localnomeadoservicebv2.apps.local. Em seguida, você deseja direcionar uma porcentagem do tráfego deservicea.apps.localparaserviceb.apps.localE um percentual paraservicebv2.apps.local. Quando você tem certeza de queservicebv2estiver funcionando bem, você deseja enviar 100 por cento do tráfego para ele.

O App Mesh pode ajudá-lo a fazer isso sem alterar nenhum código de aplicativo ou nomes de serviço registrados. Se você usar o App Mesh com esse aplicativo de exemplo, sua malha pode se parecer com a ilustração a seguir.

Nessa configuração, os serviços não se comunicam mais entre si diretamente. Em vez disso, eles se comunicam entre si através de um proxy. O proxy implantado com oservicea.apps.locallê a configuração do App Mesh e envia tráfego paraserviceb.apps.localouservicebv2.apps.localCom base na configuração do.

Componentes da App Mesh

O App Mesh é composto pelos seguintes componentes, ilustrados no exemplo anterior:

  • Serviço Mesh— Uma malha de serviços é um limite lógico para o tráfego de rede entre os serviços que residem nela. No exemplo, a malha é chamadaappse contém todos os outros recursos para a malha. Para mais informações, consulte Malhas de Serviço.

  • Serviços virtuais— Um serviço virtual é uma abstração de um serviço real que é fornecido por um nó virtual, direta ou indiretamente, por meio de um roteador virtual. Na ilustração, dois serviços virtuais representam os dois serviços reais. Os nomes dos serviços virtuais são os nomes detectáveis dos serviços reais. Quando um serviço virtual e um serviço real têm o mesmo nome, vários serviços podem se comunicar entre si usando os mesmos nomes usados antes da implementação do App Mesh. Para mais informações, consulte Serviços virtuais.

  • Nós virtuais— Um nó virtual atua como um ponteiro lógico para um serviço detectável, como um serviço do Amazon ECS ou Kubernetes. Para cada serviço virtual, você terá pelo menos um nó virtual. Na ilustração, oservicea.apps.localO serviço virtual obtém informações de configuração para o nó virtual chamadoserviceA. OserviceAé configurado com oservicea.apps.localPara a descoberta de serviços do. Oserviceb.apps.localO serviço virtual é configurado para rotear o tráfego para oserviceBeserviceBv2nós virtuais através de um roteador virtual chamadoserviceB. Para mais informações, consulte Nó virtual.

  • Roteadores virtuais e rotas— Os roteadores virtuais cuidam do tráfego de um ou mais serviços virtuais dentro da malha. Uma rota é associada a um roteador virtual. A rota é usada para corresponder às solicitações relacionadas ao roteador virtual e distribuir o tráfego para os nós virtuais associados da forma adequada. Na ilustração anterior, oserviceBtem uma rota que direciona uma porcentagem de tráfego para oserviceBnó virtual, e uma porcentagem de tráfego para oserviceBv2Nó virtual. Você pode definir a porcentagem de tráfego roteado para um nó virtual específico e alterá-lo ao longo do tempo. Você pode rotear o tráfego com base em critérios como cabeçalhos HTTP, caminhos de URL ou nomes de serviço e método gRPC. Você pode configurar políticas de repetição para repetir uma conexão se houver um erro na resposta. Por exemplo, na ilustração, a política de repetição para a rota pode especificar que uma conexão comserviceb.apps.localé repetida cinco vezes, com dez segundos entre tentativas de repetição, seserviceb.apps.localretorna tipos específicos de erros. Para mais informações, consulte e .

  • aplicativo web— Você configura seus serviços para usar o proxy depois de criar sua malha e seus recursos. O proxy lê a configuração do App Mesh e direciona o tráfego adequadamente. Na ilustração, toda a comunicação deservicea.apps.localparaserviceb.apps.localpassa pelo proxy implantado com cada serviço. Os serviços se comunicam entre si usando os mesmos nomes de descoberta de serviço que usaram antes de introduzir o App Mesh. Como o proxy lê a configuração do App Mesh, você pode controlar como os dois serviços se comunicam entre si. Quando você quiser alterar a configuração do App Mesh, não é necessário alterar ou reimplantar os próprios serviços ou os proxies. Para mais informações, consulte Imagem do Envoy.

Como começar a usar

Para usar o App Mesh, você deve ter um serviço existente em execução noAWS Fargate, Amazon ECS, Amazon EKS, Kubernetes no Amazon EC2 ou Amazon EC2 com Docker.

Para começar a usar App Mesh, consulte um dos seguintes guias:

Acessar App Mesh

Você pode trabalhar com App Mesh das seguintes formas:

AWS Management Console

O console é uma interface baseada em navegador que você pode usar para gerenciar os recursos App Mesh da App Mesh. Você pode abrir o console do App Mesh emhttps://console.aws.amazon.com/appmesh/.

AWS CLI

Fornece comandos para um conjunto amplo de produtos da AWS e é compatível com Windows, Mac e Linux. Para começar, consulte oAWS Command Line InterfaceGuia do usuário. Para obter mais informações sobre comandos para App Mesh, consulte o App Mesh.appmeshnoAWS CLIReferência de comandos da.

AWS Tools for Windows PowerShell

Fornece comandos para um conjunto amplo de produtos da AWS para os usuários que usam script no ambiente do PowerShell. Para começar, consulte oAWS Tools for Windows PowerShellGuia do usuário. Para obter mais informações sobre cmdlets para App Mesh, consulte o App Mesh.App MeshnoAWSReferência de cmdlets do PowerShell.

AWS CloudFormation

Permite que você crie um modelo que descreve todos osAWSOs recursos que você deseja. Usar o modelo, oAWS CloudFormationO provisiona e configura os recursos para você. Para começar, consulte oAWS CloudFormationGuia do usuário. Para obter mais informações sobre os tipos de recurso App Mesh, consulte oReferência do tipo de recurso App MeshnoAWS CloudFormationReferência do modelo.

SDKs da AWS

Também fornecemos SDKs que permitem que você acesse App Mesh em uma variedade de linguagens de programação. Os SDKs cuidam automaticamente de tarefas como:

  • Assinar criptograficamente suas solicitações de serviço

  • Recuperar solicitações

  • Lidar com respostas de erro

Para mais informações sobre os SDKs disponíveis, consulte Ferramentas para a Amazon Web Services.

Para obter mais informações sobre APIs App Mesh, consulte oAWS App MeshReferência de API do.