Кластер ECS не проходит проверку работоспособности ALB более 8080 - PullRequest
0 голосов
/ 22 октября 2019

У меня есть кластер ECS Fargate, который я использовал с интеграцией канала API Gateway VPC с NLB. Мы перешли к разрешению нашего домена на DNS-имя ALB, и в ALB произошло прекращение TLS. Затем он направляет трафик к кластеру через http/8080. После этого переключения задачи постоянно не проходят проверку работоспособности. Когда проверка работоспособности была установлена ​​на 8080/tcp с NLB, она работала нормально. При ALB проверка работоспособности равна 8080/http, и теперь она не проходит. Группа безопасности, подключенная к кластеру, разрешает трафик от ALB до 8080. Кроме того, я могу нажать DNS-имя балансировщика нагрузки и получить ожидаемый ответ. Итак, я знаю, что они действительно работают и работают нормально. Но тогда, он все еще не проходит проверку работоспособности, а затем задачи истощаются ... Это очень расстраиваетЯ вставил свои настройки ниже.

ECS Security Group:

resource "aws_security_group" "ecs_tasks" {
  name        = "ecs-tasks"
  description = "allow inbound access from the ALB only"
  vpc_id      = "${module.vpc.vpc_id}"

  ingress {
    protocol        = "TCP"
    from_port       = 8080
    to_port         = 8080
    security_groups = ["${aws_security_group.lb_sg.id}"]
  }

  egress {
    protocol    = "-1"
    from_port   = 0
    to_port     = 0
    cidr_blocks = ["0.0.0.0/0"]
  }
}

ALB, Listener, and Target Group:

resource "aws_lb" "api_lb" {
  name               = "api-lb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = ["${aws_security_group.lb_sg.id}"]
  subnets            = ["${module.vpc.public_subnets}"]

  enable_deletion_protection = false

  tags = {
     Environment = "dev/demo"
   }
 }

resource "aws_lb_listener" "api_listener" {
  load_balancer_arn = "${aws_lb.api_lb.id}"
  port              = "443"
  protocol          = "HTTPS"
  ssl_policy        = "ELBSecurityPolicy-2016-08"
  certificate_arn   = "arn:aws:acm:us-east-1:12345678910:certificate/xxxxxx-yyyy-zzzz-aaa-bbbbbbb"

  default_action {
    target_group_arn = "${aws_lb_target_group.api_tg.id}"
    type             = "forward"
  }
}

resource "aws_lb_target_group" "api_tg" {
  name     = "api-tg"
  port     = 8080
  protocol = "HTTP"
  target_type = "ip"
  vpc_id   = "${module.vpc.vpc_id}"

  stickiness{
    enabled = false
    type = "lb_cookie"
  }
  health_check{
    interval = 120
    timeout  = 90
    port     = 8080
    protocol = "HTTP"
    healthy_threshold = 2
    unhealthy_threshold = 2
  }
}

Task Definition:

[   
  {
    "name": "myGOapi",
    "image": "12345678910.dkr.ecr.us-east-1.amazonaws.com/myapi:1.0",
    "cpu": 512,
    "memory": 1024,
    "essential": true,
    "portMappings": [
      {
        "hostPort": 8080,
        "containerPort": 8080
      }
    ],
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
          "awslogs-group": "myapi",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "api"
      }
    }
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...