上手教程:使用Terraform打造弹性VPC架构

最近Akamai发布的虚拟专用云(VPC)功能提供了一种隔离的网络,让云资源可以用私密的方式进行通信。

关于Akamai VPC功能,最棒的地方在于它有着极高的灵活性。用户可以通过Cloud Manager、开发人员工具(如CLI)或者基础设施即代码工具Terraform来添加计算实例。本文将告诉大家如何使用Terraform部署VPC并动态添加子网。

使用Terraform的原因在于:我们可以在一个地方看到应用程序的所有配置,从而方便地在另一个环境中复制这些资源,将资源移到不同的账户等。这等于为我们环境提中的资源提供了一种“单一事实来源”,有助于缓解配置漂移的情况。

先决条件

在开始后续操作之前,请确保自己满足下列条件:

  1. 一个Linode账户。如果没有,可以在这里免费注册一个。
  2. Linode v4 API的个人访问令牌,Terraform需要使用此令牌与我们的Linode资源进行交互。
  3. 在本地计算机上安装了Terraform。
  4. 基本的命令行使用知识。


步骤1:创建Terraform配置文件

​我们将从为Terraform设置Linode提供程序开始。为这个Terraform项目创建一个新目录,并创建一个名为terraform.tf的文件。我们没有从零开始构建配置文件,而是利用了Terraform注册表。

​首先,在Terraform注册表中找到Linode VPC。在页面右侧,点击“Use Provider”,并将下拉菜单中的代码复制到我们自己的terraform.tf文件中。然后从VPC的“Example Usage”部分复制并粘贴代码。

我们的配置文件看起来应该是这样的:

请注意:大家还需要替换这里列出的授权密钥和Root密码。

terraform {
  required_providers {
    linode = {
      source = "linode/linode"
      version = "2.13.0"
    }
  }
}
provider "linode" {
  token = "your_api_token"
}
resource "linode_vpc" "test" {
    label = "test-vpc"
    region = "us-iad"
    description = "My first VPC."
}

步骤2:部署配置文件

要部署配置文件,请运行terraform plan,然后运行terraform apply。

随后,当我们进入云仪表板时,会看到VPC已显示在这里。

利用基础设施即代码方式来部署VPC,能在管理云基础设施时提供更大的控制力、一致性、敏捷性和效率,同时还可有效降低人为错误的可能性,让部署变得更快速可靠。

步骤3:向VPC添加子网

​向VPC添加子网,这是设计一个有序、安全、可扩展的云基础设施的重要先决条件,而这也需要与我们的应用程序和服务的具体需求保持一致。通过添加子网,可以将我们的VPC逻辑分割成更小、更易管理的网络。这种分割有助于根据功能、安全需求或其他因素对资源进行分组。例如,我们可能会为Web服务器、数据库和应用程序组件分别设置单独的子网。

子网还允许我们在自己的VPC内有效地管理IP地址。每个子网在其指定的IP地址范围内运行,有助于避免冲突,并提供了IP地址分配的结构化方法。随着基础设施规模扩大并部署更多资源,这种特性会变得越来越重要。

子网充当了安全边界,使我们能根据子网托管的资源的敏感性,为每个子网实施不同的安全措施。例如,我们可以对数据库子网应用比Web服务器子网更严格的安全规则。这也有助于实施最小权限原则。

​子网还在VPC内路由和优化网络流量方面发挥着关键作用。我们可以配置路由表,根据特定需求在不同子网之间引导流量。这种灵活性使我们能为自己的应用程序设计最有效的通信路径。

​那么接下来,让我们向VPC添加一些子网。为此请编辑terraform.tf文件,添加一个vpc_subnet资源块。

请注意:我们需要替换成自己的vpc_id,这个信息显示在云仪表板中。

resource "linode_vpc_subnet" "vpc-subnet-terraform-subnet-01" {
    vpc_id = "your_vpc_id"
    label = "vpc-subnet-terraform-subnet-01"
    ipv4 = "192.168.1.0/24"
}
resource "linode_vpc_subnet" "vpc-subnet-terraform-subnet-02" {
    vpc_id = "your_vpc_id"
    label = "vpc-subnet-terraform-subnet-02"
    ipv4 = "10.0.0.0/24"
}

运行terraform apply来应用这些更改。

这样我们的VPC就有2个子网了。在Cloud Manager中可以看到这些变化:

注意事项:

  1. 每个子网只应有一个vpc_subnet资源块。
  2. 同一VPC内子网的IPv4地址范围不能有重叠。

Akamai VPC与其他超大规模云服务商的差异之处

​Akamai VPC有一个非常显著的独特之处:在定义子网时所具备的灵活性。在许多传统的超大规模云服务提供商中,在这方面往往有一个严格的要求,即VPC中的所有子网必须共享相同的RFC1918范围或块。这基本上意味着:一旦为VPC设置了顶级CIDR范围,其中的所有子网都将被限制在这个特定的地址空间内。

然而,Akamai采用了一种不同的,并且更灵活多样的方法。Akamai VPC允许每个子网存在于其自己的RFC1918范围或块中。这意味着用户可以根据具体用例,以最适合的方式自由地设计自己的网络架构。例如,用户可以在192.168/16空间中运行一个子网,而另一个子网在10/8空间中运行,并且可以让这两个子网加入到同一个VPC中。

这种灵活性非常实用,尤其是当我们的应用程序或业务需求发生变化时。与一些超大规模云服务提供商施加的限制不同,Akamai VPC允许用户动态添加具有不同范围的子网。因此,如果需求发生变化或应用程序有所扩展,用户可以轻松地集成新的子网,而不受预定义顶级CIDR范围的限制。这种灵活性符合现代云架构对多样化网络需求的要求,而这也使Akamai VPC显得与众不同,提供了与当今云环境动态的特性完美契合,并且可定制,可扩展性的VPC功能。


Akamai VPC现已在各大核心区域可用,并且我们还将根据用户反馈和需求逐渐为VPC添加更多功能和特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

要查询 `user` 表中 `we_chat_subscribe` 和 `we_chat_union_id` 列不为空的用户数量

文章目录 1、we_chat_subscribe2、we_chat_union_id 1、we_chat_subscribe 要查询 user 表中 we_chat_subscribe 列不为空的用户数量,你可以使用以下 SQL 查询语句: SELECT COUNT(*) FROM user WHERE we_chat_subscribe IS NOT NULL;解释: …

【论文复现】进行不同视角图像的拼接

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 进行不同视角图像的拼接 背景描述算法简介SIFT算法原理代码原理代码部署核心代码拼接结果其他的图片如何进行拼接? 修改内容&…

xxl-job 简单的入门到实战

本文是参考官方文档自己实践一次,纯享版,大致也是作者边写博客边去跟着官方文档实现 一、前期准备 1、官网地址 GitHub地址: GitHub - xuxueli/xxl-job: A distributed task scheduling framework.(分布式任务调度平台XXL-JOB&…

数字后端培训项目Floorplan常见问题系列专题续集1

今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。 希望对大家的数字后端学习和工作有所帮助。 数字后端项目Floor…

江苏捷科云:可视化平台助力制造企业智能化管理

公司简介 江苏捷科云信息科技有限公司(以下简称“捷科”)是一家专注于云平台、云储存、云管理等产品领域的创新型企业,集研发、生产和销售于一体,致力于在网络技术领域打造尖端品牌。在推动制造业企业数字化转型的进程中&#xf…

【视觉惯性SLAM:对极几何】

对极几何(Epipolar Geometry)介绍 对极几何是立体视觉中的核心内容之一,它描述了两个相机在观察同一个三维场景时,成像平面之间的几何关系。对极几何能够约束图像中对应点的位置关系,是双目立体匹配、三维重建、以及位…

从Condition开始,回顾AQS

Synchronized和Reentrantlock的挂起逻辑 synchronized中有两个核心的结构 EntryList cxq:等待拿锁的线程存储位置Waitset:被执行wait方法的线程存储位置 流转: 线程获取锁资源失败,扔到EntryList cxq线程持有锁资源&#x…

umi : 无法加载文件 D:\software\nodejs\node_global\umi.ps1,因为在此系统上禁止运行脚本。

问题详情 2、解决方法 1.使用命令 get-ExecutionPolicy查看 显示Restricted:限制 所以要给权限 2. 使用命令:Set-ExecutionPolicy -Scope CurrentUser 3. 会提示为参数提供值 4. 输入: RemoteSigned 具体如下图所示,成功解决。 报…

Redis篇--常见问题篇4--大Key(Big Key,什么是大Key,影响及使用建议)

1、概述 大Key:通常是指值(Value)的长度非常大,实际上键(Key)长度很大也算。通常来说,键本身不会很长,占用的内存较少,因此判断一个键是否为bigKey主要看它对应的值的大…

02、并发编程的三大特性

并发编程有三大特性分别是,原子性,可见性,有序性。会产生这些特性的根本原因是现在的服务器都是多CPU多核心数的,每个CPU都有自己单独的一套缓存和pc系统,而且程序在运行时按照JMM的规范,它们是需要先把数据…

基于Java+Jsp Servlet Mysql实现的Java Web在线商城项目系统设计与实现

一、前言介绍: 1.1 项目摘要 随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分。在线商城作为电子商务的一种重要形式,以其便捷性、高效性和广泛覆盖性,受到了越来越多消费者的青睐。同时,随着消…

【安全测试相关知识】

安全测试介绍 背景 在当前信息技术快速发展的背景下,网络安全问题日益严峻,数据泄露、黑客攻击、病毒传播等安全事件层出不穷,给个人、企业乃至国家带来严重威胁。所以安全测试已成为企业和国家关注的重心 作用 安全测试是确保软件系统安…

WPS如何快速将数字金额批量转换成中文大写金额,其实非常简单

大家好,我是小鱼。 在日常的工作中经常会遇到需要使用金额大写的情况,比如说签订业务合同时一般都会标注大写金额,这样是为了安全和防止串改。但是很多人也许不太熟悉金额大写的方法和习惯,其它没有关系,我们在用WPS制…

Element-ui的使用教程 基于HBuilder X

文章目录 1.Element-ui简介2.使用HBuilderX 创建一个基于Vue3的项目 (由于是使用的基于Vue3的Element-ui)3.安装element-ui4.在项目里完全引用element-ui5.引用组件6.运行项目 1.Element-ui简介 Element,一套为开发者、设计师和产品经理准备…

MySQL的架构设计和设计模式

1. 数据库设计模式与范式 数据库设计模式是解决数据库设计中常见问题的一种思维方式,它提供了一套解决方案。以下是一些常见的数据库设计模式和范式: 实体-关系模型(Entity-Relationship Model):通过实体和实体之间的…

【MySQL】十三,关于MySQL的全文索引

MySQL的全文索引用于搜索文本中的关键字,类似于like查询。 演示 建表 CREATE TABLE demo (id INT(11) NOT NULL,name CHAR(30) NOT NULL,age INT(11) NOT NULL,info VARCHAR(255),primary key(id),fulltext index futxt_idx_info(info) );此表的默认存储引擎为In…

Aloudata 入选 IDC「GenAI+Data」中国市场代表厂商

近期,国际知名技术研究与咨询机构 IDC 发布了《GenAIData 市场趋势分析及最佳实践案例》报告,总结了当前主要市场特点和数据变化影响,并给出技术布局建议,以供市场参考。报告中还绘制了 GenAIData 发展趋势图,从市场需…

NCR+可变电荷块3——NCB/cell绘图1

文献method参考: 蛋白质序列数据从uniprot中获取 https://www.uniprot.org/uniprotkb/P46013/entry https://www.uniprot.org/uniprotkb/P06748/entry、 1,电荷分布计算: Charge distribution was calculated as the sum of the charges …

单片机锂电池电量电压检测

一、引言 (一)锂电池电量检测的重要性简述 在如今这个科技飞速发展的时代,众多电子设备都依赖锂电池来供电,像我们日常使用的智能手机、平板电脑、笔记本电脑,还有出行必备的电动自行车、电动汽车等等,锂…

支付宝订单码支付

1.订单码支付,首先下载官方网站提供的sdk包到你的项目中。 2.选择控制器复制官方文档的获取二维码相关的代码示例。打开sdk包中v2的index.php文件,这个才是你选择语言的具体代码。 3.引用里面所需要的类文件,文件下载到你的项目中后&#xf…