Итак, вы хотите создать группу автоматического масштабирования в 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, являются их собственными. |