使用 Terraform 在 AWS Wavelength 区域中部署资源 - AWS Prescriptive Guidance

使用 Terraform 在 AWS Wavelength 区域中部署资源

Zahoor Chaudhrey 和 Luca Iannario,Amazon Web Services

摘要

AWS Wavelength 可帮助您构建专为多接入边缘计算(MEC)应用程序优化的基础设施。Wavelength Zones 是将 AWS 计算和存储服务嵌入到通信服务提供商(CSP)5G 网络的 AWS 基础设施部署。来自 5G 设备的应用程序流量无需离开电信网络即可到达在 Wavelength Zones 中运行的应用程序服务器。以下内容有助于通过 Wavelength 实现网络连接:

  • 虚拟私有云(VPC) – AWS 账户 中的 VPC 可以扩展到跨多个可用区,包括 Wavelength Zones。Amazon Elastic Compute Cloud(Amazon EC2)实例和相关服务显示为区域 VPC 的一部分。在 Amazon Virtual Private Cloud(Amazon VPC)中创建和管理 VPC。

  • 运营商网关 – 运营商网关可实现 Wavelength Zone 的子网与 CSP 网络、互联网或通过 CSP 网络的 AWS 区域 的连接。运营商网关有两个作用。它允许来自特定位置的 CSP 网络的入站流量,并允许将出站流量发送到电信网络和互联网。

此模式及其关联的 Terraform 代码可帮助您在 Wavelength Zone 中启动资源,例如 Amazon EC2 实例、Amazon Elastic Block Store(Amazon EBS)卷、VPC、子网和运营商网关。

先决条件和限制

先决条件

  • 一个活跃的 AWS 账户

  • 一个集成式开发环境(IDE)

  • 选择加入目标 Wavelength Zone

  • AWS Command Line Interface(AWS CLI),已安装配置

  • Terraform 版本 1.8.4 或更高版本,已安装(Terraform 文档)

  • Terraform AWS Provider 版本 5.32.1 或更高版本,已配置(Terraform 文档)

  • Git,已安装(GitHub)

  • 创建 Amazon VPC、Wavelength 和 Amazon EC2 资源的权限

限制

并非所有 AWS 区域 都支持 Wavelength Zones。有关更多信息,请参阅 Wavelength 文档中的可用 Wavelength Zones

架构

下图显示了如何在 Wavelength Zone 中创建子网和 AWS 资源。Wavelength Zone 中包含子网的 VPC 可以连接到运营商网关。运营商网关允许您连接到以下资源:

  • 电信运营商网络上的 4G/LTE 和 5G 设备。

  • 针对精选 Wavelength Zone 合作伙伴的固定无线接入。有关更多信息,请参阅多接入 AWS Wavelength

  • 公有互联网资源的出站流量。

运营商网关将 Wavelength Zone 中的 AWS 资源连接到 CSP 网络。

工具

AWS 服务

  • Amazon Virtual Private Cloud(Amazon VPC)可帮助您将 AWS 资源启动到您定义的虚拟网络中。该虚拟网络类似于您在数据中心中运行的传统网络,并具有使用 AWS 的可扩展基础设施的优势。

  • AWS Wavelength 将 AWS 架构 基础设施扩展到电信提供商的 5G 网络。这可以帮助您为移动设备和最终用户构建具有超低延迟的应用程序。

其他工具

  • Terraform 是 HashiCorp 推出的基础设施即代码(IaC)工具,可帮助您创建和管理云和本地资源。

代码存储库

此模式的代码可在 GitHub 使用 Terraform 创建 AWS Wavelength 基础设施存储库中找到。Terraform 代码部署了以下基础设施和资源:

  • 一个 VPC

  • Wavelength Zone

  • Wavelength Zone 中的公有子网

  • Wavelength Zone 中的运营商网关

  • Wavelength Zone 中的 Amazon EC2 实例

最佳实践

操作说明

任务描述所需技能

克隆存储库。

输入以下命令,以将使用 Terraform 创建 AWS Wavelength 基础设施存储库克隆至您的环境。

git clone git@github.com:aws-samples/terraform-wavelength-infrastructure.git

DevOps 工程师

更新变量。

  1. 导航到克隆的存储库。

    cd terraform-wavelength-infrastructure
  2. 使用任意文本编辑器,在根目录中创建一个名为 terraform.tfvars 的文件。

  3. 创建以下变量并输入其值:

    • region = <enter Region name>

    • vpc_cidr = <enter CIDR block used by VPC>

    • wavelength_subnet_cidr = <enter CIDR block for the subnet in the Wavelength Zone>

    • availabilityzone_wavelength = <enter Wavelength Zone name>

  4. 保存 terraform.tfvars 文件。

DevOps 工程师,Terraform

初始化配置。

输入以下命令,以初始化工作目录。

terraform init
DevOps 工程师,Terraform

预览 Terraform 计划。

输入以下命令,以比较您 AWS 环境的目标状态与当前状态。此命令会生成将要配置的资源的预览。

terraform plan
DevOps 工程师,Terraform

验证并部署。

  1. 查看 Terraform 计划中的配置更改,并确认要实现这些更改。

  2. 输入以下命令,以应用计划并创建基础设施。

    terraform apply
  3. 输入 yes 以继续。Terraform 会创建配置文件中声明的架构。有关架构的更多信息,请参阅此模式的目标架构部分。

DevOps 工程师,Terraform
任务描述所需技能

验证基础设施部署。

  1. 如果您 AWS 区域 中的公有子网中还没有 Amazon EC2 实例,请创建一个。有关说明,请参阅启动 Linux 实例启动 Windows 实例。您将使用此实例来测试从 AWS 区域 到 Wavelength Zone 的连接。

  2. 测试从 AWS 区域 中的实例到 Wavelength Zone 中的实例的连接。有关说明,请参阅 Wavelength 文档中的测试连接

AWS DevOps,DevOps 工程师

(可选)清理 基础架构。

如果您需要删除 Terraform 预调配的所有资源,请执行以下操作:

  1. 输入以下命令。

    terraform destroy
  2. 输入 yes以确认。

DevOps 工程师,Terraform

故障排除

问题解决方案

与 AWS 区域 中的 Amazon EC2 实例的连接。

请参阅排查 Linux 实例的连接问题排查 Windows 实例的连接问题

与 Wavelength Zone 中的 Amazon EC2 实例的连接。

请参阅排查与我在 Wavelength Zone 中启动的 EC2 实例的 SSH 或 RDP 连接问题

Wavelength Zone 中的容量。

请参阅 Wavelength Zone 的配额和注意事项

从运营商网络到 AWS 区域 的移动或运营商连接。

  1. 验证运营商网关是否正常运行。执行以下操作:

    1. 打开 Amazon VPC 控制台

    2. 在导航窗格中,选择您的 VPC

    3. 选择包含 Wavelength Zone 的 VPC。

    4. 详细信息窗格中,对于运营商网关,确认已附加该值。

  2. 验证附加到 Wavelength Zone 中实例的所有弹性 IP 地址是否正常运行。执行以下操作:

    1. 打开 Amazon EC2 控制台

    2. 在导航窗格中,选择 Instances (实例)

    3. 在 Wavelength Zone 中,选择实例。

    4. 选择网络选项卡。

    5. 确认弹性网络接口已附加弹性 IP 地址。

  3. 联系运营商网络支持团队。

相关资源