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á.
Implante uma API do Amazon API Gateway em um site interno usando endpoints privados e um Application Load Balancer
Criado por Saurabh Kothari (AWS)
Resumo
Esse padrão mostra como implantar uma API do Amazon API Gateway em um site interno que pode ser acessado a partir de uma rede on-premises.. Você aprende a criar um nome de domínio personalizado para uma API privada usando uma arquitetura projetada com endpoints privados, um Application Load Balancer, PrivateLink AWS e Amazon Route 53. Essa arquitetura evita as consequências não intencionais do uso de um nome de domínio personalizado e um servidor proxy para ajudar no roteamento baseado em domínio em uma API. Por exemplo, se você implantar um endpoint de nuvem privada virtual (VPC) em uma sub-rede não roteável, sua rede não conseguirá acessar o API Gateway. Uma solução comum é usar um nome de domínio personalizado e depois implantar a API em uma sub-rede roteável, mas isso pode interromper outros sites internos quando a configuração do proxy passar o tráfego (execute-api.{region}.vpce.amazonaws.com
) para o AWS Direct Connect. Por fim, esse padrão pode ajudar você a atender aos requisitos organizacionais de uso de uma API privada que não pode ser acessada pela Internet e de um nome de domínio personalizado.
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa
Um certificado de Indicação do nome do servidor (SNI, Server Name Indication) para o site e a API
Uma conexão de um ambiente local com uma conta da AWS que é configurada usando o AWS Direct Connect ou o AWS VPN Site-to-Site
Uma zona hospedada privada com um domínio correspondente (por exemplo, domain.com) que é resolvida a partir de uma rede on-premises e encaminha consultas ao DNS para o Route 53
Uma sub-rede privada roteável que pode ser acessada a partir de uma rede on-premises
Limitações
Para obter mais informações sobre cotas (anteriormente chamadas de limites) para balanceadores de carga, regras e outros recursos, consulte Cotas para seus Application Load Balancers na documentação do Elastic Load Balancing.
Arquitetura
Pilha de tecnologia
Amazon API Gateway
Amazon Route 53
Application Load Balancer
AWS Certificate Manager
AWS PrivateLink
Arquitetura de destino
O diagrama a seguir mostra como um Application Load Balancer é implantado em uma VPC que direciona o tráfego da web para um grupo de destino do site ou do API Gateway com base nas regras de receptor do Application Load Balancer. O grupo de destino do API Gateway é uma lista de endereços IP do endpoint da VPC no API Gateway. O API Gateway está configurado para tornar a API privada com sua política de recursos. A política nega todas as chamadas que não sejam de um endpoint da VPC específico. Os nomes de domínio personalizados no gateway da API são atualizados para usar api.domain.com para a API e seu estágio. As regras do Application Load Balancer são adicionadas para rotear o tráfego com base no nome do host.

O diagrama mostra o seguinte fluxo de trabalho:
Um usuário de uma rede on-premises tenta acessar um site interno. A solicitação é enviada para ui.domain.com e api.domain.com. Em seguida, a solicitação é resolvida para o Application Load Balancer interno da sub-rede privada roteável. O SSL é encerrado no Application Load Balancer para ui.domain.com e api.domain.com.
As regras de receptor, configuradas no Application Load Balancer, verificam o cabeçalho do host.
a. Se o cabeçalho do host para api.domain.com, a solicitação será encaminhada para o grupo de destino do API Gateway. O Application Load Balancer inicia uma nova conexão com o API Gateway pela porta 443.
b. Se o cabeçalho do host for ui.domain.com, a solicitação será encaminhada para o grupo de destino do site.
Quando a solicitação chega ao API Gateway, o mapeamento de domínio personalizado configurado no API Gateway determina o nome do host e qual API executar.
Automação e escala
As etapas desse padrão podem ser automatizadas usando a AWS CloudFormation ou o AWS Cloud Development Kit (AWS CDK). Para configurar o grupo de destino das chamadas do API Gateway, você precisa usar um recurso personalizado para recuperar o endereço IP do endpoint da VPC. A API chama describe-vpc-endpoints
Ferramentas
O Amazon API Gateway ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
O Amazon Route 53 é um serviço web de DNS altamente disponível e escalável.
O AWS Certificate Manager (ACM) lida com a complexidade de criar, armazenar e renovar chaves e certificados SSL/TLS X.509 públicos e privados que protegem seus sites e aplicativos.
O AWS Cloud Development Kit (AWS CDK) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura da Nuvem AWS em código.
PrivateLinkA AWS ajuda você a criar conexões unidirecionais e privadas de seus serviços VPCs para fora da VPC.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um certificado de SNI e importe-o para o ACM. |
| Administrador de rede |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar um endpoint da VPC de interface do API Gateway | Para criar um endpoint da VPC de interface, siga as instruções em Acessar serviço da AWS usando um endpoint da VPC de interface na documentação da Amazon Virtual Private Cloud (Amazon VPC). | Administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar um grupo de destino para seu aplicativo. | Crie um grupo de destino para os recursos de interface do usuário do seu aplicativo. | Administrador de nuvem |
Crie um grupo de destino para o endpoint do API Gateway. |
| Administrador de nuvem |
Criar um Application Load Balancer. |
| Administrador de nuvem |
Cria regras de receptor. | Crie regras de receptor para fazer o seguinte:
| Administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar uma zona hospedada privada | Crie uma zona hospedada privada para domain.com. | Administrador de nuvem |
Crie registros de domínio. | Crie registros CNAME para o seguinte:
| Administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie e configure um endpoint de API privada. |
| Desenvolvedor de aplicativos, administrador de nuvem |
Criar um nome de domínio personalizado |
| Administrador de nuvem |