Usando APIs de gateway como um ponto de entrada único para aplicativos da Web e APIs

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 gerada
  • region É 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:

  1. O domínio example.compode 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.
  2. AWS Certificate Manager (ACM) example.com *.example.com. ACM-, API Gateway.
  3. , 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.

All Articles