Статьи

Автоматическое масштабирование групп с помощью terraform в AWS. Часть 1. Основные этапы

Итак, вы хотите создать группу автоматического масштабирования в AWS, используя terraform. Ниже приведены минимальные шаги для достижения этой цели.

Перед написанием действительного кода вы должны указать провайдера aws terraform, а также регион в файле provider.tf.

1
2
3
4
5
6
7
8
provider "aws" {
  version = "~> 2.0"
  region  = "eu-west-1"
}
 
terraform {
  required_version = "~>0.12.0"
}

Тогда мы будем

Первым шагом будет определение некоторых переменных в файле variables.tf.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
variable "vpc_id" {
  type = string
  default = "your-vpc-id"
}
 
variable "launch_configuration_name" {
  type = string
  default = "launch_configuration_name"
}
 
variable "auto_scalling_group_name" {
  type = string
  default = "auto_scalling_group_name"
}
 
variable "image_id" {
  type = string
  default =  "image-id-based-on-the-region"
}
 
variable "instance_type" {
  type = "string"
  default = "t2.micro"
}

Затем у нас будет конфигурация группы автозвука в файле autoscalling_group.tf.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
data "aws_subnet_ids" "subnets" {
  vpc_id = var.vpc_id
}
 
data "aws_subnet" "subnet_values" {
  for_each = data.aws_subnet_ids.subnets.ids
  id       = each.value
}
 
resource"aws_launch_configuration" "launch-configuration" {
  name = var.launch_configuration_name
  image_id = var.image_id
  instance_type = var.instance_type
}
 
resource "aws_autoscaling_group" "autoscalling_group_config" {
  name = var.auto_scalling_group_name
  max_size = 3
  min_size = 2
  health_check_grace_period = 300
  health_check_type = "EC2"
  desired_capacity = 3
  force_delete = true
  vpc_zone_identifier = [for s in data.aws_subnet.subnet_values: s.id]
 
  launch_configuration = aws_launch_configuration.launch-configuration.name
 
  lifecycle {
    create_before_destroy = true
  }
}

Давайте сломать их. Идентификатор vpc необходим для определения подсетей, используемых вашей группой автоматического масштабирования. Таким образом, значение vpc_zone_identifier должно выводить подсети из определенного vpc.

Затем вы должны создать конфигурацию запуска. Конфигурация запуска должна указывать идентификатор изображения в зависимости от вашего региона и типа экземпляра.

Чтобы выполнить это при условии, что у вас есть учетные данные aws, вы должны выполнить инициализацию, а затем применить

1
2
> terraform init
> terraform apply

Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. См. Оригинальную статью здесь: Автоматическое масштабирование групп с помощью terraform в AWS. Часть 1. Основные шаги

Мнения, высказанные участниками Java Code Geeks, являются их собственными.