Это очень частый вариант использования terraform, и было бы хорошо, если бы вы сделали это через terraform.
Вы можете следовать приведенному ниже коду, который вы можете использовать для запуска любого количества экземпляров, вам нужно применить снова после изменения count значение. это не повлияет на текущие запущенные экземпляры и не будет соответствовать вашему значению.
resource "aws_instance" "web" {
ami = "${data.aws_ami.ubuntu.id}"
instance_type = "t2.micro"
count = 3
availability_zone = "${element(var.az, count.index)}"
tags {
Name = "${count.index}"
}
}
Кроме того, если вы хотите выполнить какую-либо команду во время загрузки экземпляра. Для этого вы можете использовать скрипт пользовательских данных.
resource "aws_instance" "..." {
user_data = "${file("../../tmp/aws/userdata.sh")}"
...
}
Для повторяемости можно использовать модуль terraform. Например: если вы хотите использовать код для нескольких инфраструктур, скажем, для разработки, подготовки, производства. В случае модулей вам не нужно снова и снова писать один и тот же код для запуска экземпляра ec2. Вы можете передавать разные переменные для разной инфраструктуры.
Пример:
module "dev" {
source = "./modules/dev"
count = 2
region = "us-east-1"
}
module "production" {
source = "./modules/production"
count = 5
region = "us-east-1"
}
Ссылка: https://www.terraform.io/docs/modules/usage.html < / а>
Если вам не нужно удалять старые экземпляры и уменьшать размер вашего количества запущенных экземпляров. Terraform позаботится не об этом. Вы должны упомянуть эту стратегию при создании политики автоматического масштабирования.
Ниже перечислены многие политики прекращения действия.
Amazon EC2 Auto Scaling поддерживает следующие настраиваемые политики завершения:
OldestInstance. Terminate the oldest instance in the group. This option is useful when you're upgrading the instances in the Auto Scaling group to a new EC2 instance type. You can gradually replace instances of the old type with instances of the new type.
NewestInstance. Terminate the newest instance in the group. This policy is useful when you're testing a new launch configuration but don't want to keep it in production.
OldestLaunchConfiguration. Terminate instances that have the oldest launch configuration. This policy is useful when you're updating a group and phasing out the instances from a previous configuration.
ClosestToNextInstanceHour. Terminate instances that are closest to the next billing hour. This policy helps you maximize the use of your instances and manage your Amazon EC2 usage costs.
Default. Terminate instances according to the default termination policy. This policy is useful when you have more than one scaling policy for the group.
Вы можете перейти по ссылке ниже для получения дополнительной информации.
Ссылка: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html.
person
m0hit
schedule
23.10.2018