A tradução do artigo foi preparada especialmente para os alunos do curso “High Load Architect” .
Introdução
Os benefícios da AWS, como alta disponibilidade, escalabilidade e resiliência, já provaram seu valor para os fornecedores de SaaS (Software como Serviço). Com a modernização dos aplicativos SaaS, a AWS ajuda a alternar facilmente para uma arquitetura de microsserviço, fornecendo acesso da API a aplicativos externos.As ferramentas de gerenciamento de API, como o Amazon API Gateway, são a escolha natural para fornecer uma API externa segura e escalável. No entanto, ao mover seus aplicativos para as nuvens, os provedores de SaaS geralmente enfrentam a necessidade de implantar rapidamente seus serviços em vários clientes diferentes. E, é claro, com os requisitos específicos de cada um deles.A API do Gateway ajuda a criar uma arquitetura de microsserviço para vários locatários. Nessa arquitetura, uma única instância de um microsserviço é usada para atender diferentes clientes, o que torna possível usar os recursos de maneira mais otimizada e otimizar custos. Nesta configuração, para atender seus clientes, os provedores exigem o suporte de domínios de "etiqueta branca", bem como a capacidade de identificar um domínio de cliente para vincular uma lógica comercial específica a um cliente específico no back-end.Este artigo fala sobre a arquitetura de referência, que permite usar a API do Gateway como um único ponto de entrada para aplicativos da web e microsserviços baseados em APIs com vários clientes externos, usando subdomínios diferentes para cada um deles.Amazon API Gateway - ponto de entrada único
Construir uma arquitetura usando uma única API do Gateway para vários aplicativos da web e microsserviços é um fator importante para a reutilização de componentes e otimização de custos.O Amazon API Gateway fornece uma solução altamente escalável para criar e publicar APIs RESTful e APIs WebSocket. Você pode selecionar uma variedade de tecnologias para o back-end: recursos do AWS Lambda , funções da etapa da AWS ou ligar para pontos de extremidade HTTP hospedados no AWS Elastic Beanstalk , Amazon EC2 ou fora da AWS.O API Gateway executa tarefas típicas de gerenciamento de API, como segurança, armazenamento em cache, limitação e monitoramento. Embora seu principal objetivo seja criar uma camada abstrata sobre sua API e microsserviços internos, ele também pode simplificar seus aplicativos de back-end ou fornecer acesso a páginas da Web estáticas e documentos armazenados no bucket do Amazon S3 .Além do acima, as seguintes funções principais do Gateway de API ajudam a criar a arquitetura descrita aqui.1. Suporte para nomes de domínio personalizados:
Ao implantar uma API usando a API do Gateway, o nome de domínio padrão do terminal da API não é muito conveniente para o usuário final:https://api-id.execute-api.region.amazonaws.com/stage
api-id
API de gateway geradaregion
É indicado por você ao criar a API;stage
Especificado por você ao implantar a API.
O ponto de extremidade da API padrão pode ser difícil de trabalhar. Mas, graças à integração com o AWS Certificate Manager, que permite testar subdomínios com base em certificados SSL, você pode oferecer aos usuários da sua API um URL mais fácil e intuitivo, como, por exemplo customer1.example.com
,. A API do Gateway permite mapear vários subdomínios para um único ponto de extremidade da API, o que permite o uso do nome "white label" de acordo com os requisitos de clientes externos.2. Modificação de solicitações / respostas de API
A API do gateway permite configurar o processamento separado para cada parte do endereço do terminal da API. Graças a isso, é possível rotear solicitações de API para terminais de endpoint individuais e, ao mesmo tempo, alterar cabeçalhos na solicitação / resposta para um processamento mais flexível das solicitações de API.As vantagens dessa arquitetura
Os recursos descritos neste artigo são mostrados no diagrama abaixo.
Aqui está a arquitetura de um provedor SaaS típico que oferece seus serviços a outras organizações e deve oferecer suporte a domínios de "marca branca" para infraestruturas da Web e API. Uma arquitetura semelhante é obtida usando as seguintes etapas:- O domínio
example.com
pode ser registrado com um registro de domínio, mas você pode criar subdomínios através do CNAME-registro, por exemplo customer1.example.com
, customer2.example.com
. Isso pode ser feito na AWS usando o serviço Amazon Route 53 ou através de qualquer provedor DNS de terceiros. - AWS Certificate Manager (ACM)
example.com
*.example.com
. ACM-, API Gateway. - , ACM, API. API . :
customer1.example.com
customer2.example.com
.
: CNAME- customer1 customer2 DNS, API Gateway.
4. API Endpoint
/service1
— integration type HTTP, ELB, ECS/service2
- tipo de integração HTTP, roteando tráfego para o terminal de um aplicativo Web ELB hospedado em um cluster EC2/docs
- tipo de integração AWS S3, para documentos estáticos

5. A API do Gateway pode processar o nome de domínio totalmente qualificado (FQDN) na URL e mapeá-lo para cabeçalhos ou parâmetros personalizados na cadeia de consulta para enviar ao back-end correspondente.
Por exemplo, podemos criar um cabeçalho "Cliente" personalizado para redirecionar o cliente1 ou o cliente2 para um aplicativo de back-end específico do cliente. Isso é feito usando os parâmetros Solicitação de método e Solicitação de integração na API do gateway.Total
Como você pode ver, este é apenas um exemplo do uso da API do Gateway como um único ponto de entrada para microsserviços baseados na API e recursos estáticos de aplicativos da web. A API do Gateway permite que você use a infraestrutura de maneira mais eficiente, sem perder escala e aumentando a carga em seus aplicativos. Para obter mais informações sobre como trabalhar com a API do Gateway e o DNS da rota 53, consulte a documentação da AWS e use esses recursos para criar arquiteturas que atendam aos seus requisitos.