目录
阅读时间: 4 分钟
读者朋友们大家好!在这篇博客中,我们将看到如何使用terraform部署ElasticBeanstalk。在我之前的博客中,我们已经看到了如何在 Elastic Beanstalk中部署应用程序。在那里我们看到了AWS是如何处理所有底层资源的,所以你不必担心任何事情。你可以专注于编写你的应用程序代码,将其打包并上传。而EBS则负责其基础设施和资源。
先决条件。
- 你必须在你的系统中安装terraform。如果你还没有,那么请选择这个博客来安装terraform:https://learn.hashicorp.com/tutorials/terraform/install-cli
它已经成功安装在你的系统中。现在是时候为AWS Elastic beanstalk建立Terraform配置文件了,我们将用它来在AWS云上启动AWS Elastic beanstalk。
所以,让我们开始吧!
第1步:建立一个目录并移动到这个目录。创建一个名为main.tf的文件,将整个内容粘贴在该文件中。为了部署ElasticBeanstalk,我们需要创建一个ElasticBeanstalk应用程序和环境。所以,在这个文件中,我们要创建一个应用程序和环境。
# Create elastic beanstalk application
resource "aws_elastic_beanstalk_application" "elasticapp" {
name = var.elasticapp
}
# Create elastic beanstalk Environment
resource "aws_elastic_beanstalk_environment" "beanstalkappenv" {
name = var.beanstalkappenv
application = aws_elastic_beanstalk_application.elasticapp.name
solution_stack_name = var.solution_stack_name
tier = var.tier
setting {
namespace = "aws:ec2:vpc"
name = "VPCId"
value = var.vpc_id
}
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "aws-elasticbeanstalk-ec2-role"
}
setting {
namespace = "aws:ec2:vpc"
name = "AssociatePublicIpAddress"
value = "True"
}
setting {
namespace = "aws:ec2:vpc"
name = "Subnets"
value = join(",", var.public_subnets)
}
setting {
namespace = "aws:elasticbeanstalk:environment:process:default"
name = "MatcherHTTPCode"
value = "200"
}
setting {
namespace = "aws:elasticbeanstalk:environment"
name = "LoadBalancerType"
value = "application"
}
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "InstanceType"
value = "t2.medium"
}
setting {
namespace = "aws:ec2:vpc"
name = "ELBScheme"
value = "internet facing"
}
setting {
namespace = "aws:autoscaling:asg"
name = "MinSize"
value = 1
}
setting {
namespace = "aws:autoscaling:asg"
name = "MaxSize"
value = 2
}
setting {
namespace = "aws:elasticbeanstalk:healthreporting:system"
name = "SystemType"
value = "enhanced"
}
}
第二步:之后,我们将在同一目录下创建一个vars.tf文件。顾名思义,这个文件将包含我们将在main.tf文件中引用的所有变量。将以下内容粘贴到你的文件中。
variable "elasticapp" {
default = "myapplication"
}
variable "beanstalkappenv" {
default = "myenvironment"
}
variable "solution_stack_name" {
default = "64bit Amazon Linux 2018.03 v2.10.13 running Python 3.6"
}
variable "tier" {
default = "WebServer"
}
variable "vpc_id" {
default = "vpc-0dd76a41523810a28"
}
variable "public_subnets" {
default = ["subnet-091f546a60cdf204f", "subnet-0af22fcd735aea012"]
}
在这个文件中,我提到了应用程序名称、环境名称、解决方案栈名称、层级、vpc_id和公共子网。你可以根据你的需要改变这些字段。如果你不知道该给解决方案堆栈的名称,那么你可以通过列出它来选择。列出解决方案堆栈名称的命令是。
$ aws elasticbeanstalk list-available-solution-stacks
Step3: 现在,我们将建立一个名为provider.tf的文件。正如它的名字所暗示的,在这个文件中我们将提到在哪里创建资源。provider.tf文件将验证并允许Terraform连接到AWS云。
provider "aws" {
region = "ap-south-1"
}
第四步:现在所有的配置都完成了。现在是时候使用terraform命令来部署ElasticBeanstalk了。所以,我们将使用的第一个命令是。
$ terraform init
这将初始化terraform。Terraform被成功初始化了。
第五步:接下来我们将运行以下命令,告诉terraform需要提供哪些资源。
$ terraform plan
第6步:最后,我们将运行命令,部署我们的ElasticBeanstalk。
$ terraform apply
这将需要一些时间,让我们等待。
是的,现在已经成功完成了。现在,让我们在AWS控制台检查ElasticBeanstalk。
这是我的ElasticBeanstalk环境。
这是我的应用程序。
当你在你的环境中打开这个网址,你会发现你部署的应用程序。
总结
谢谢你坚持到最后。在这篇博客中,我们已经看到了如何使用terraform部署ElasticBeanstalk。如果你喜欢这篇博客,请通过竖起大拇指表示感谢,并分享这篇博客,同时给我提出建议,告诉我如何改进我未来的文章以满足你的需求。
学习愉快!
