ECS でフロントエンドとバックエンドに別々のロードバランサーを使用するにはどうすればよいでしょうか?

ECS でフロントエンドとバックエンドに別々のロードバランサーを使用するにはどうすればよいでしょうか?

ECS にデプロイされた django アプリ コンテナ用に、ECS AWS で実行されるロード バランサーの次の Terraform 構成があります。

resource "aws_lb" "api" {
  name               = "${local.prefix}-api"
  load_balancer_type = "application"
  subnets = [
    aws_subnet.public_a.id,
    aws_subnet.public_b.id
  ]

  security_groups = [aws_security_group.lb_api.id]

  tags = local.common_tags
}

resource "aws_lb_target_group" "api" {
  name        = "${local.prefix}-api"
  protocol    = "HTTP"
  vpc_id      = aws_vpc.main.id
  target_type = "ip"
  port        = 8000

  health_check {
    path = "/admin/login/"
  }
}

resource "aws_lb_listener" "api" {
  load_balancer_arn = aws_lb.api.arn
  port              = 80
  protocol          = "HTTP"

  default_action {
    type = "redirect"

    redirect {
      port        = "443"
      protocol    = "HTTPS"
      status_code = "HTTP_301"
    }
  }
}

resource "aws_lb_listener" "api_https" {
  load_balancer_arn = aws_lb.api.arn
  port              = 443
  protocol          = "HTTPS"

  certificate_arn = aws_acm_certificate_validation.cert.certificate_arn

  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.api.arn
  }
}


resource "aws_security_group" "lb_api" {
  description = "Allow access to Application Load Balancer"
  name        = "${local.prefix}-lb-api"
  vpc_id      = aws_vpc.main.id

  ingress {
    protocol    = "tcp"
    from_port   = 80
    to_port     = 80
    cidr_blocks = ["0.0.0.0/0"]
  }

  ingress {
    protocol    = "tcp"
    from_port   = 443
    to_port     = 443
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    protocol    = "tcp"
    from_port   = 8000
    to_port     = 8000
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = local.common_tags
}

私は React フロントエンド コンテナ用にほぼ同一のファイルを持っています。唯一の違いは、単語「api」が「frontend」に置き換えられていること、ターゲット グループ ポート (フロントエンド ロード バランサの場合は 80)、ヘルス チェック パス (フロントエンドの場合は「/」のみ) です。

API のみをデプロイすると、ブラウザでアプリケーションに正常にアクセスできます。ただし、フロントエンド ロード バランサを追加すると、ブラウザでフロントエンドにアクセスできなくなります (エラー「503 サービスは一時的に利用できません」)。Django アプリケーションは動作し続けましたが、しばらくするとダウンしました。

ECS UIを見ると、クラスター、タスク、コンテナは問題なく動作していることがわかります。しかし、ヘルスチェックでエラーが発生し続けます。このエラーはおそらくポートマッピングに関連していると思います。しかし、マッピングはコンテナ定義ファイル。

考えられる理由は何でしょうか?

関連情報