Ранее мы следовали минимальным шагам, необходимым для раскрутки группы автоматического масштабирования в terraform. В этом посте мы добавим группу безопасности в группу автоматического масштабирования и http-сервер для обслуживания запросов.
Используя нашу базовую конфигурацию, мы создадим группу безопасности для экземпляров.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
resource "aws_security_group" "instance_security_group" { name = "autoscalling_security_group" ingress { from_port = 8080 to_port = 8080 protocol = "tcp" cidr_blocks = [ "0.0.0.0/0" ] } egress { from_port = 0 protocol = "-1" to_port = 0 cidr_blocks = [ "0.0.0.0/0" ] } } |
Наши экземпляры запускают сервер, прослушивающий порт 8080, поэтому порт безопасности должен позволять входящий трафик на этот порт. Обратите внимание на выход. Мы будем иметь доступ к ресурсам из Интернета, поэтому мы хотим иметь возможность загружать их.
Тогда мы просто установим группу безопасности на настройку запуска.
1
2
3
4
5
6
|
resource "aws_launch_configuration" "launch-configuration" { name = var.launch_configuration_name image_id = var.image_id instance_type = var.instance_type security_groups = [ "${aws_security_group.instance_security_group.id}" ] } |
Теперь пришло время раскрутить сервер в этих случаях. Aws_launch_configuration дает нам возможность указать сценарий запуска (данные пользователя на aws ec2). Я буду использовать сервер Apache Ignite и его http-интерфейс.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
resource "aws_launch_configuration" "launch-configuration" { name = var.launch_configuration_name image_id = var.image_id instance_type = var.instance_type security_groups = [ "${aws_security_group.instance_security_group.id}" ] user_data = <<-EOF #!/bin/bash yum install java unzip -y curl https: //www-eu .apache.org /dist/ignite/2 .7.6 /apache-ignite-2 .7.6-bin.zip -o apache-ignite.zip unzip apache-ignite.zip -d /opt/apache-ignite cd /opt/apache-ignite/apache-ignite-2 .7.6-bin/ cp -r libs /optional/ignite-rest-http/ libs /ignite-rest-http/ . /bin/ignite .sh . /examples/config/example-cache .xml EOF |
И теперь мы готовы ускорить автомасштабирование, как показано ранее.
1
2
|
> terraform init > terraform apply |
Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. См. Оригинальную статью здесь: Автоматическое масштабирование групп с помощью terraform в AWS. Часть 2. Группа безопасности экземпляра и загрузочный скрипт Мнения, высказанные участниками Java Code Geeks, являются их собственными. |