Статьи

Автоматическое масштабирование групп с помощью terraform в AWS. Часть 2. Группа безопасности экземпляра и загрузочный скрипт

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