Как работает зона доступности Aws ecs fargate?

Два основных вопроса с кодом terraform.

  1. Альбом для Ecs fargate предназначен для маршрутизации в другие зоны доступности? или маршрутизация в контейнеры
  2. Если я создаю подсеть на основе номера зоны доступности (us-east-2a, 2b, 2c, поэтому число равно 3 и создаю 3 подсети) и сопоставляю ее с кластером ecs с помощью alb, применяется ли зона доступности?

Я пытаюсь создать инфраструктуру, как показано на изображении

resource «aws_vpc» «cluster_vpc» { tags = { Name = «ecs-vpc» } cidr_block = «10.30.0.0/16» } data «aws_availability_zones» «available» { } resource «aws_subnet» «cluster» { vpc_id = aws_vpc.cluster_vpc.id count = length(data.aws_availability_zones.available.names) cidr_block = «10.30.${10 + count.index}.0/24» availability_zone = data.aws_availability_zones.available.names[count.index] tags = { Name = «ecs-subnet» } } resource «aws_internet_gateway» «cluster_igw» { vpc_id = aws_vpc.cluster_vpc.id tags = { Name = «ecs-igw» } } resource «aws_route_table» «public_route» { vpc_id = aws_vpc.cluster_vpc.id route { cidr_block = «0.0.0.0/0» gateway_id = aws_internet_gateway.cluster_igw.id } tags = { Name = «ecs-route-table» } } resource «aws_route_table_association» «to-public» { count = length(aws_subnet.cluster) subnet_id = aws_subnet.cluster[count.index].id route_table_id = aws_route_table.public_route.id } resource «aws_ecs_cluster» «staging» { name = «service-ecs-cluster» } resource «aws_ecs_service» «staging» { name = «staging» cluster = aws_ecs_cluster.staging.id task_definition = aws_ecs_task_definition.service.arn desired_count = 1 launch_type = «FARGATE» network_configuration { security_groups = [aws_security_group.ecs_tasks.id] subnets = aws_subnet.cluster[*].id assign_public_ip = true } load_balancer { target_group_arn = aws_lb_target_group.staging.arn container_name = var.app_name container_port = var.container_port } resource «aws_lb» «staging» { name = «alb» subnets = aws_subnet.cluster[*].id load_balancer_type = «application» security_groups = [aws_security_group.lb.id] access_logs { bucket = aws_s3_bucket.log_storage.id prefix = «frontend-alb» enabled = true } tags = { Environment = «staging» Application = var.app_name } } … omit like lb_target, or specific components

Есть ли проблемы с вашим кодом, или вы просто ищете ответы на два своих вопроса?   —  person KIM    schedule 30.12.2020

оба код работает хорошо, но я не уверен в своем коде, хотя он работает.   —  person KIM    schedule 30.12.2020

@Marcin, я намерен создать инфраструктуру с тремя зонами доступности, а также развернуть aws fargate в трех зонах доступности. но я думаю, что мой код просто создает три зоны доступности и не использую их   —  person KIM    schedule 30.12.2020

Если кластер ALB и ECS используют одни и те же подсети (и кажется, что они взяты из кода Terraform), тогда он должен создать все, как показано на схеме.   —  person KIM    schedule 30.12.2020

@MarkoE, спасибо за ответ 1. если us-east-2a не работает, us-east-2b активируется автоматически, и alb будет направлять запросы на us-east-2b? 2. Это вызовет повышение тарифов? 3. aws fargate может сам маршрутизировать трафик? (если alb используется для маршрутизации зоны доступности, как aws направляет запросы маршрута?)   —  person KIM    schedule 30.12.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!