以前,我们按照最小的步骤来启动terraform中的自动伸缩组。在这篇文章中,我们将向自动伸缩组中添加一个安全组和一个HTTP服务器来处理请求。
使用我们的基本配置,我们将为实例创建安全组。
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的服务器,因此安全端口应允许进入该端口的流量进入。 注意出口。 我们将从互联网访问资源,因此我们希望能够下载em。
然后,我们将在启动配置中设置安全组。
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接口。
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
现在,我们已经准备好如前所示加速自动缩放。
> terraform init > terraform apply