A AWS oferece uma maneira de rotear o tráfego HTTPS para duas instâncias diferentes do EC2 com base no caminho do diretório?

9

Eu queria saber se o seguinte é possível com as ofertas da AWS?

https://www.example.com/a/ - > servido pelo Apache em Instância A do EC2

https://www.example.com/b/ - > servido pelo Apache em Instância do EC2 B

Para esclarecer, não quero que os arquivos em um caminho de diretório estejam na mesma instância de servidor que os arquivos no outro caminho de diretório.

Entendo que isso seja possível com um proxy de algum tipo, mas há uma solução mais fácil com uma das ofertas da AWS.

O EC2 Load Balancer parece não permitir a troca com base no caminho do diretório. O Route 53 funciona no nível do DNS, que não possui informações de caminho para retornar IPs com base nisso.

    
por Joseph Shih 10.01.2018 / 03:40

2 respostas

29

Use o Balanceador de carga de aplicativos da AWS , que tem Roteamento baseado em caminho . Esse segundo link é um tutorial sobre como fazer isso.

Em suma, você configura seu ALB normalmente e segue estas etapas (copiadas do tutorial da AWS):

  • On the Listeners tab, use the arrow to view the rules for the listener, and then choose Add rule. Specify the rule as follows:

  • For Target group name, choose the second target group that you created.

  • For Path pattern specify the exact pattern to be used for path-based routing (for example, /img/*). For more information, see Listener Rules.

  • Choose Save.

    
por 10.01.2018 / 04:04
9

Além da excelente resposta de Tim, você também pode conseguir isso com o CloudFront .

Primeiro, crie sua distribuição , adicionando origens para Instância A do EC2 e Instância B do EC2 (que também podem ser balanceadores de carga, hosts não-AWS ou até mesmo baldes S3).

Em seguida, configure regras de comportamento do cache para mapear / a / * e / b / * para as origens apropriadas.

Se faz ou não sentido usar o CloudFront para essa finalidade, isso dependerá do seu aplicativo e da necessidade de um CDN.

    
por 10.01.2018 / 10:06