すべてのインスタンスのオート スケーリング グループを使用して HA rabbitmq セットアップを作成するために、Terraform スクリプトを構成しています。Auto Scaling グループを作成するために、Auto Scaling インスタンスを作成する起動構成を作成しています。
このインスタンスの前でネットワーク ロード バランサーを使用したいので、ターゲット グループとターゲット グループのアタッチメントを作成する必要があります。ここでは、ターゲット グループにアタッチするために target_id (起動構成 ID) を提供する必要があります。しかし、スクリプトを適用すると、次のエラーが表示されます。
Error registering targets with target group: ValidationError: Instance ID 'rabbit' is not valid status code: 400, request id: 1cad37a8-b1da-416a-bc11-f50ae6b83cd2
Terraform スクリプト
resource "aws_lb" "rabbit" {
name = "${local.cluster_name}-lb"
load_balancer_type = "network"
internal = "false"
subnets = aws_subnet.subnet.*.id
enable_cross_zone_load_balancing = "true"
tags = {
Name = "${local.cluster_name}-lb"
}
}
resource "aws_lb_listener" "http" {
load_balancer_arn = aws_lb.rabbit.arn
protocol = "TCP"
port = "80"
default_action {
type = "forward"
target_group_arn = aws_lb_target_group.TCP80.arn
}
}
resource "aws_lb_target_group" "TCP80" {
name = "${local.cluster_name}-TCP80"
vpc_id = aws_vpc.vpc.id
target_type = "instance"
protocol = "TCP"
port = "80"
health_check {
protocol = "TCP"
port = 80
# NLBs required to use same healthy and unhealthy thresholds
healthy_threshold = 3
unhealthy_threshold = 3
# Interval between health checks required to be 10 or 30
interval = 10
}
}
resource "aws_lb_target_group_attachment" "TCP80" {
count = var.controller_count
target_group_arn = aws_lb_target_group.TCP80.arn
target_id = aws_launch_configuration.rabbit.id
port = 80
}
resource "aws_launch_configuration" "rabbit" {
name = "rabbit"
image_id = data.aws_ami.ubuntu.id
instance_type = var.instance_type
key_name = "key_name"
security_groups = [
aws_security_group.rabbit-nodes.id,
]
}
resource "aws_autoscaling_group" "rabbit-node" {
#name = "${var.name}-${var.environment_tag}-"
name ="rabbit"
#count = var.instance_count
launch_configuration = aws_launch_configuration.rabbit.name
vpc_zone_identifier = aws_subnet.subnet.*.id
min_size = var.min_size
max_size = var.max_size
desired_capacity = var.desired_size
termination_policies = ["OldestLaunchConfiguration", "Default"]
#load_balancers = ["${aws_lb.rabbit}"]
health_check_type = "EC2"
health_check_grace_period = 300
lifecycle {
create_before_destroy = true
}
}