【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)

这篇具有很好参考价值的文章主要介绍了【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 Terraform 创建应用程序负载均衡器

实验步骤

前提条件

  • 安装 Terraform: 地址

下载仓库代码模版

  • 本实验代码位于 task_elb 文件夹中

  • 变量文件 variables.tf   

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 在上面的代码中,您将声明aws_access_keyaws_secret_key和 区域变量

  • terraform.tfvars  

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 在上面的代码中,您将定义变量的值

  • main.tf

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws 

 

  • 在上面的代码中,您将执行以下任务

    • 创建一个安全组,并在其中填充规则允许特定端口上的流量

    • 创建 2 个 EC2 实例。实例类型为 t2.micro,实例数量为 2

    • 提到使用哪个 SSH 密钥对(已存在于您的 AWS EC2 控制台中)。安全组 ID 是使用将在创建过程中设置的变量自动获取的

    • 添加了用户数据来安装 Apache 服务器并添加了一个html页面

    • 为 EC2 实例提供了标签

    • 获取vpc_id的详细信息,以及subnet_id的详细信息

    • 使用默认 VPC 来创建 ELB

    • 创建目标组,提供运行状况检查详细信息

    • 创建应用程序负载均衡器和侦听器

    • 目标组附加到应用程序负载均衡器

  • outputs.tf,将输出应用程序负载均衡器的 DNS 名称 

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  


使用 Terraform 部署

  • 确保您这些文件在同一位置

  • 通过运行以下命令初始化 Terraform

    • terraform init

    • 注意:terraform init检查所有插件依赖项下载它们

  • 查看生成计划,请运行以下命令

    • terraform plan

  • 创建在 main.tf 配置文件中声明的所有资源 ,请运行以下命令

    • terraform apply

  • 您将能够看到将要创建的资源,通过输入 yes 批准所有资源的创建

  • terraform apply 命令最多可能需要 2 分钟才能创建资源


检查 AWS 控制台中的资源

  • 确保您位于美国东部(弗吉尼亚北部)us-east-1 区域

  • 通过单击 AWS 控制台顶部导航到 EC2

  • 导航到左侧面板“网络与安全”下的安全组

  • 您将能够看到安全组名称为Terraform_Sg的安全组。

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

  

  • 导航到左侧面板“实例”下的“实例”

  • 您可以看到创建的实例。您可以检查我们在 terraform 文件中应用的配置,例如密钥对、安全组、实例类型等。

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

 

  • 导航到左侧面板“负载平衡”下的“负载均衡器”

  • 您将能够看到创建的负载均衡器,其名称为aws-alb

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

 

  • 导航到左侧面板“负载平衡”下的目标组

  • 您将能够看到创建的目标组,其名称为aws-tg

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

 


检查 HTML 页面和流量分布

  • 在 terraform 文件中,我们使用用户数据创建了一个 Apache 服务器并发布了一个 HTML 页面

  • 在浏览器中打开一个新选项卡,然后粘贴所创建的应用程序负载均衡器的 DNS 名称

  • 在用户数据中创建的 HTML 内容将显示在页面中

  • 继续刷新页面以查看两个实例之间的传入流量分布

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 现在,我们可以说已创建 2 个 EC2 实例应用程序负载均衡器。在负载均衡器的帮助下,传入流量将分发到两个 EC2 实例

  • 我们还可以确认安全组允许 HTTP 传入请求

补充简单案例

要在Terraform中为ALB绑定EC,您需要使用Terraform的AWS provider和相应的资源类型。以下是一个示例配置,用于将ALB与EC2实例进行绑定:

provider "aws" {
  region = "your_region"
}

resource "aws_security_group" "example" {
  name   = "example_sg"
  vpc_id = "your_vpc_id"

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

resource "aws_instance" "example" {
  instance_type = "t2.small"
  ami           = "your_ami_id"
  subnet_id     = "your_subnet_id"
  key_name      = "your_key_name"

  vpc_security_group_ids = [aws_security_group.example.id]
}

resource "aws_alb" "example" {
  name          = "example_alb"
  security_groups = [aws_security_group.example.id]
  subnets        = ["your_subnet_id1", "your_subnet_id2"]
}

resource "aws_alb_listener" "http" {
  load_balancer_arn = aws_alb.example.arn
  port              = 80
  protocol          = "HTTP"
}

resource "aws_alb_target_group" "example" {
  name     = "example_target_group"
  port     = 80
  protocol = "HTTP"
  vpc_id   = "your_vpc_id"
}

resource "aws_alb_target_group_attachment" "example" {
  target_group_arn = aws_alb_target_group.example.arn
  port             = 80
  instances        = [aws_instance.example.id]
}

在上面的配置中,首先定义了一个AWS provider,指定了您的区域。

然后,定义了一个安全组(aws_security_group),

允许从公共IP地址(0.0.0.0/0)访问端口80。

接下来,定义了一个EC2实例(aws_instance),

并将其与上述安全组关联。

然后,定义了一个ALB(aws_alb),

并将其与指定的子网和安全组关联。

接下来,定义了一个HTTP监听器(aws_alb_listener)并将其与ALB关联。

然后,定义了一个目标组(aws_alb_target_group),指定端口为80,协议为HTTP,并将其与指定的VPC关联。

最后,通过定义目标组附件(aws_alb_target_group_attachment)将EC2实例与目标组进行绑定。

请根据您的实际需求修改示例配置中的资源和参数。文章来源地址https://www.toymoban.com/news/detail-686093.html

到了这里,关于【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Terraform学习】使用 Terraform创建DynamoDB添加项目(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月10日
    浏览(29)
  • TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

    概述: TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。本篇文章主要介绍用DK11为FMX创建一个应用程序,现在就跟着小编来了解一下吧~ # 31款JAVA开发必备控件和工具 # 界面/文档管理/报表/IDE等4000款

    2024年02月07日
    浏览(34)
  • Python 创建 Web 应用程序和用户界面库之flexx使用详解

    Flexx 是一个强大的 Python 库,用于创建交互式的 Web 应用程序和用户界面。它提供了灵活的组件和布局管理器,使开发者可以轻松构建具有丰富交互性和动态性的应用。本文将详细介绍 Flexx 库的特性、用法,并通过丰富的示例代码展示其在实际项目中的应用。 Flexx 是一个基于

    2024年04月17日
    浏览(55)
  • 【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

      本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月10日
    浏览(30)
  • python中使用xml快速创建Caption和URL书签管理器应用程序

    导语: 本文介绍如何使用wxPython库创建一个Caption和URL管理器应用程序。该应用程序具有图形用户界面,允许用户输入Caption和URL,并将其保存到XML文件中。此外,还提供了浏览文件夹并选择HTML文件的功能,并可以运行另一个Python脚本。 C:pythoncodeblogsavexml.py 在软件开发中,创

    2024年02月12日
    浏览(37)
  • 【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月11日
    浏览(38)
  • IBM Spectrum LSF Application Center 以应用程序为中心的工作负载提交和管理

    IBM® Spectrum LSF Application Center 为集群用户和管理员提供了一个灵活的、以应用为中心的界面。IBM Spectrum LSF Application Center 作为 IBM Spectrum LSF 的可选附加模块提供,使用户能够与直观、自我记录的界面进行交互。这提高了用户满意度和生产力。通过对应用程序的标准化访问,I

    2024年02月10日
    浏览(30)
  • 怎么创建JDBC应用程序

    建立一个JDBC应用程序,本教程中以Java连接MySQL为一个示例,分六个步骤进行: 1. 导入包 在程序中包含数据库编程所需的JDBC类。大多数情况下,使用 import java.sql.* 就足够了,如下所示: 2. 注册JDBC驱动程序 需要初始化驱动程序,这样就可以打开与数据库的通信。以下是代码

    2024年02月15日
    浏览(55)
  • ZA303学习笔记七管理应用程序(Azure AD Connect/使用SSO)

    官方文档 https://docs.microsoft.com/zh-cn/azure/active-directory/hybrid/ Azure Active Directory (Azure AD)是一个综合性的标识即服务(IDaas)解决方案,由数百万组织用来跨标识、访问管理和安全的各个方面。Azure AD拥有超过10亿用户身份,并可帮助用户登录和安全访问两者:(Azure AD Connect是本地安

    2024年02月07日
    浏览(32)
  • ❤️ ❤️ ❤️ 爆:使用ChatGPT+Streamlit快速构建机器学习数据集划分应用程序!!!

    ChatGPT 对于 Python 程序员有用吗?特别是我们这些使用 Python 进行数据处理、数据清洗和构建机器学习模型的人?我们试试就知道了。 来自 OpenAI 的 ChatGPT 是什么?假设你已经知道了。网上铺天盖地的宣传呐喊,我想不再需要介绍了。加入您碰巧不知道 ChatGPT 是什么,赶快去查

    2023年04月22日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包