因此,您想使用Terraform在AWS上创建一个自动缩放组。 以下是达到此目的的最少步骤。
在编写实际代码之前,应指定aws terraform提供程序以及provider.tf文件上的区域。
provider "aws" { version = "~> 2.0" region = "eu-west-1" } terraform { required_version = "~>0.12.0" }
然后我们将
第一步是在variables.tf文件上定义一些变量。
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文件上具有自动缩放组配置。
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 ID才能识别自动伸缩组使用的子网。 因此,值vpc_zone_identifier将从定义的vpc派生子网。
然后,您必须创建启动配置。 启动配置应指定基于您所在地区和实例类型的映像ID。
要执行此操作,前提是您拥有aws凭证,因此必须进行初始化,然后应用
> terraform init > terraform apply
翻译自: https://www.javacodegeeks.com/2020/01/autoscaling-groups-with-terraform-on-aws-part-1-basic-steps.html