Atribuindo um nome de domínio a uma tarefa do AWS Fargate

12

Eu tenho uma tarefa do AWS Fargate executando um aplicativo Web em uma sub-rede pública para que ele tenha um endereço público. Minha pergunta é como conectar um domínio (por meio do Route 53) a essa tarefa, para que nada quebre quando implanto uma nova versão dele.

  • Sei que posso usar o ALB / NLB, mas quero economizar em custos.
  • Não quero usar o IP público diretamente, pois isso pode mudar.
  • Presumo que a solução tenha algo a ver com o ENI, mas não tenho certeza de como apontá-lo através da Rota 53.

Qualquer ajuda seria muito apreciada.

obrigado

Leo
fonte

Respostas:

6

Na maioria dos casos, você provavelmente deseja usar um ALB / NLB para a descoberta de serviços. Embora haja alguns custos, você também obtém muitos benefícios: alguma proteção contra DoS, métricas de escala, registro em log, SSL / TLS

No entanto, você pode usar a descoberta de serviço ECS .

A descoberta de serviço usa ações de API de nomenclatura automática do Amazon Route 53 para gerenciar entradas DNS para as tarefas do seu serviço, tornando-as detectáveis ​​na sua VPC

e

Os espaços para nome públicos são suportados, mas você deve ter uma zona hospedada pública existente registrada no Route 53 antes de criar seu serviço de descoberta de serviço.

A descoberta de serviço requer que as tarefas usem o modo awsvpc, bridge ou host da rede.

Aqui está uma entrada de blog detalhando como usar a descoberta de serviço com fargate: https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/

M. Glatki
fonte
0

Eu tentei. O problema é que o IP público usado pelo fargate é anexado à TAREFA; portanto, se a tarefa for reiniciada, um novo endereço IP será fornecido e o registro dns precisará ser atualizado. É por isso que o alb / nlb é usado.

Em teoria, você poderia usar outra coisa para gerenciar os registros de host DNS, talvez uma função lambda ou algo

Considerações sobre descoberta de serviço: Os registros DNS criados para um serviço de descoberta de serviço sempre são registrados com o endereço IP privado da tarefa, em vez do endereço IP público, mesmo quando espaços de nomes públicos são usados.

https://forums.aws.amazon.com/thread.jspa?threadID=270599

oneklc
fonte
0

Conforme declarado no guia do desenvolvedor do ECS :

O Amazon ECS não oferece suporte ao registro de serviços em espaços de nomes DNS públicos

Portanto, não há chance de registro imediato de domínio público via ECS Service Discovery. Mas o que você pode fazer é usar o AWS SKD para buscar o endereço IP público do seu contêiner após a implantação e registrá-lo na sua zona hospedada pública do Route 53.

Este artigo mostra uma abordagem usando uma função lambda para fazer exatamente isso sempre que seu contêiner for reimplementado.

Andreas Pasch
fonte