O balanceador de carga do Amazon ECS definido para a porta 9090 não funciona

1

Eu criei o balanceador de carga clássico no Amazon Web Services e forneci a porta do listener como 9090. E associei o balanceador de carga a um cluster com duas instâncias do EC2. Eu dei as regras de entrada para as instâncias de 9090 também.

E para criar um serviço no cluster, criei uma definição de tarefa da seguinte forma.

{
  "family": “my-spring-task“,
  "containerDefinitions": [{
    "image": “my-docker-group/my-spring-app“,
    "name": "my-spring-app",
    "cpu": 10,
    "memory": 256,
    "essential": true,
    "portMappings": [{
      "containerPort": 9090,
      "hostPort": 9090
    }]
  }]
}

Em seguida, crio o serviço, com a definição de tarefa acima fornecida.

aws ecs register-task-definition --cli-input-json file://service90-task.json

aws ecs create-service --cluster service90-cluster --service-name service90-service --load-balancers loadBalancerName=service90-load-balancer,containerName=my-spring-app,containerPort=9090 --task-definition service90-task  --role ecs-service-role --desired-count 0

Meu plano é executar um projeto Spring Boot, que é construído com o plug-in gradle e docker.

Eu tenho o projeto executando a porta 8080. E está funcionando como esperado. Mas quando tento executar um serviço na porta 9090, ele não funciona devido à falha da verificação de integridade.

Preciso de conselhos sobre como fazer a porta para 9090 ou qualquer número de porta.

    
por Lahiru Liyanapathirana 15.12.2016 / 04:57

1 resposta

2

O mais provável é que a porta dentro do contêiner ainda seja 8080, a menos que você reconfigure a própria inicialização de mola para usar 9090. Nesse cenário, você desejará definir containerPort como 8080 e deixar hostPort em 9090.

Como alternativa, você pode deixar hostPort em branco e o ECS atribuirá uma porta 'alta' aleatória a cada contêiner e, em seguida, anexá-la ao ALB. Isso tem o benefício de aliviar a necessidade de mapear as designações de portas no cluster do ECS e várias instâncias do mesmo contêiner podem ser executadas no mesmo host.

    
por 15.12.2016 / 19:30