Eu queria saber se o seguinte é possível com as ofertas da AWS?
https://www.example.com/a/
-> servido pelo Apache na instância A do EC2
https://www.example.com/b/
-> servido pelo Apache na instância B do EC2
Para esclarecer, não quero que os arquivos em um caminho de diretório estejam na mesma instância do servidor que os arquivos no outro caminho de diretório.
Entendo que isso seja possível com um proxy de algum tipo, mas existe uma solução mais fácil com uma das ofertas da AWS.
O EC2 Load Balancer não parece permitir alternar com base no caminho do diretório. A rota 53 funciona no nível do DNS, que não possui informações de caminho para retornar IPs com base nisso.
amazon-web-services
apache2
Joseph Shih
fonte
fonte
Host:
cabeçalhos e filtra o tráfego falso. Parece improvável que eles adicionem recursos como você está perguntando se olhar para os cabeçalhos é muito trabalhoso para eles. Felizmente, eles têm outras opções.Respostas:
Use o AWS Application Load Balancer , que faz o roteamento baseado em caminho . Esse segundo link é um tutorial de como fazê-lo.
Em resumo, você configura seu ALB como normal e siga estas etapas (copiadas do tutorial da AWS):
fonte
Além da excelente resposta de Tim, você também pode conseguir isso com o CloudFront .
Primeiro, crie sua distribuição , adicionando origens para a Instância EC2 A e EC2 Instância B (que também podem ser balanceadores de carga, hosts que não sejam da AWS ou até buckets S3).
Em seguida, configure as regras de comportamento do cache para mapear / a / * e / b / * para as origens apropriadas.
Se faz sentido ou não usar o CloudFront para essa finalidade, dependerá do seu aplicativo e da necessidade de uma CDN.
fonte
/a*
e/b*
ser tratado por diferentes serviços, contas diferentes, regiões diferentes ou mesmo um caminho tratado por algo em execução na AWS e em outro local. O CloudFront possui muitos casos de uso que não exigem, conceitualmente, uma CDN.