Implante um Amazon API Gateway API em um site interno usando endpoints privados e um Application Load Balancer - Recomendações da AWS

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 um Amazon API Gateway API em um site interno usando endpoints privados e um Application Load Balancer

Criado por Saurabh Kothari () AWS

Ambiente: produção

Tecnologias: aplicativos web e móveis; rede; sem servidor; infraestrutura

AWSserviços: Amazon API Gateway; Amazon Route 53; AWS Certificate Manager (ACM)

Resumo

Esse padrão mostra como implantar um Amazon API Gateway API em um site interno que pode ser acessado a partir de uma rede local. Você aprende a criar um nome de domínio personalizado para uma empresa privada API usando uma arquitetura projetada com endpoints privados, um Application Load Balancer e o Amazon AWS PrivateLink 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 um. 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 Gateway. API Uma solução comum é usar um nome de domínio personalizado e depois implantá-lo API em uma sub-rede roteável, mas isso pode interromper outros sites internos quando a configuração do proxy passa 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 para usar um API nome de domínio privado inacessível pela Internet e um nome de domínio personalizado.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa

  • Um certificado de indicação de nome de servidor (SNI) para seu site e API

  • Uma conexão de um ambiente local com uma AWS conta configurada usando o AWS Direct Connect ou AWS Site-to-Site VPN

  • Uma zona hospedada privada com um domínio correspondente (por exemplo, domain.com) que é resolvida a partir de uma rede local e encaminha consultas para DNS 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

  • AWSCertificate Manager

  • AWS PrivateLink

Arquitetura de destino

O diagrama a seguir mostra como um Application Load Balancer é implantado em um VPC que direciona o tráfego da web para um grupo-alvo do site ou do API Gateway com base nas regras de ouvinte do Application Load Balancer. O grupo-alvo do API Gateway é uma lista de endereços IP para o VPC endpoint no API Gateway. APIO Gateway está configurado para tornar o API ambiente privado com sua política de recursos. A política nega todas as chamadas que não sejam de um VPC endpoint específico. Os nomes de domínio personalizados no API gateway são atualizados para usar api.domain.com para o 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.

Arquitetura que usa regras de ouvinte do Application Load Balancer para direcionar o tráfego da web.

O diagrama mostra o seguinte fluxo de trabalho:

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

  2. As regras de receptor, configuradas no Application Load Balancer, verificam o cabeçalho do host.

    a. Se o cabeçalho do host for api.domain.com, a solicitação será encaminhada para o grupo-alvo do Gateway. API 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.

  3. 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 AWS CloudFormation o AWS Cloud Development Kit (AWSCDK). Para configurar o grupo-alvo das chamadas do API Gateway, você deve usar um recurso personalizado para recuperar o endereço IP do VPC endpoint. APIchama describe-vpc-endpointse describe-network-interfacesretorna os endereços IP e o grupo de segurança, que podem ser usados para criar o API grupo-alvo de endereços IP.

Ferramentas

  • O Amazon API Gateway ajuda você a criar, publicar, manter, monitorar e proteger RESTHTTP, WebSocket APIs em qualquer escala.

  • O Amazon Route 53 é um serviço DNS web altamente disponível e escalável.

  • AWSO Certificate Manager (ACM) ajuda você a criar, armazenar e renovar certificados e chaves SSL TLS /X.509 públicos e privados que protegem seus AWS sites e aplicativos.

  • AWSO Cloud Development Kit (AWSCDK) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura de AWS nuvem em código.

  • AWS PrivateLinkajuda você a criar conexões unidirecionais e privadas de seus VPCs serviços fora do. VPC

Épicos

TarefaDescriçãoHabilidades necessárias

Crie um SNI certificado e importe o certificado para ACM o.

  1. Crie um SNI certificado para ui.domain.com e api.domain.com. Para obter mais informações, consulte Escolhendo como CloudFront atende HTTPS às solicitações na CloudFront documentação da Amazon.

  2. Importe os SNI certificados para o AWS Certificate Manager (ACM). Para obter mais informações, consulte Importação de certificados para o AWS Certificate Manager na ACM documentação.

Administrador de rede
TarefaDescriçãoHabilidades necessárias

Crie um VPC endpoint de interface no API Gateway.

Para criar um VPC endpoint de interface, siga as instruções em Acesse um AWS serviço usando um VPC endpoint de interface na documentação da Amazon Virtual Private Cloud VPC (Amazon).

Administrador de nuvem
TarefaDescriçãoHabilidades 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-alvo para o endpoint do API Gateway.

  1. Crie um grupo-alvo com um tipo de endereço IP e, em seguida, adicione o endereço IP do VPC endpoint do API Gateway ao grupo-alvo.

  2. Configure verificações de saúde para seus grupos-alvo com o código de sucesso 403. 403 é necessário porque o VPC endpoint do API Gateway retorna um código 403 quando é invocado sem nenhum cabeçalho pela verificação de integridade do grupo de destino.

Administrador de nuvem

Criar um Application Load Balancer.

  1. Crie um Application Load Balancer (interno) em uma sub-rede privada roteável.

  2. Adicione o ouvinte 443 ao Application Load Balancer e escolha o certificado. ACM

Administrador de nuvem

Cria regras de receptor.

Crie regras de receptor para fazer o seguinte:

  1. Encaminhe o host api.domain.com para o grupo-alvo do Gateway API

  2. Encaminhe o host ui.domain.com para o grupo de destino dos recursos de interface do usuário

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar uma zona hospedada privada

Crie uma zona hospedada privada para domain.com.

Administrador de nuvem

Crie registros de domínio.

Crie CNAME registros para o seguinte:

  • An API com o valor definido como o DNS nome do Application Load Balancer

  • Uma interface de usuário com o valor definido como o DNS nome do Application Load Balancer

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie e configure um API endpoint privado.

  1. Para criar um API endpoint privado, siga as instruções em Criar um endpoint privado API no Amazon API Gateway na documentação do API Gateway. 

  2. Configure a política de recursos para permitir chamadas somente para o VPC endpoint. API Para obter mais informações, consulte Controlando o acesso às políticas de recursos e API com o API Gateway na documentação do API Gateway.

Desenvolvedor de aplicativos, administrador de nuvem

Criar um nome de domínio personalizado

  1. Crie um nome de domínio personalizado para api.domain.com. Para obter mais informações, consulte Configurando nomes de domínio personalizados REST APIs na documentação do API Gateway.

  2. Selecione o criado API e o estágio. Para obter mais informações, consulte Trabalhando com API mapeamentos REST APIs na documentação do API Gateway.

Administrador de nuvem

Recursos relacionados