和风网标志

使用 Amazon Bedrock 为 AWS Landing Zone 生成定制的、合规的应用程序 IaC 脚本 |亚马逊网络服务

日期:

对于旨在利用云资源的灵活性和规模的现代组织来说,迁移到云是至关重要的一步。 Terraform 等工具 AWS CloudFormation 对于此类转变至关重要,它们提供基础设施即代码 (IaC) 功能,可精确定义和管理复杂的云环境。然而,尽管 IaC 具有诸多优势,但其学习曲线以及遵守组织和行业特定合规性和安全标准的复杂性可能会减慢您的云采用之旅。组织通常通过投资广泛的培训计划或雇用专业人员来应对这些障碍,但这通常会导致成本增加和迁移时间延迟。

生成式人工智能 (AI) 亚马逊基岩 直接解决这些挑战。 Amazon Bedrock 是一项完全托管的服务,通过单一 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先 AI 公司的高性能基础模型 (FM) 选择,以及广泛的构建具有安全性、隐私性和负责任的人工智能的生成式人工智能应用程序的能力。 Amazon Bedrock 使团队能够生成根据组织需求定制的 Terraform 和 CloudFormation 脚本,同时无缝集成合规性和安全性最佳实践。传统上,学习 IaC 的云工程师会手动筛选文档和最佳实践,以编写兼容的 IaC 脚本。借助 Amazon Bedrock,团队可以输入高级架构描述并使用生成式 AI 生成 Terraform 脚本的基线配置。这些生成的脚本经过定制,可以满足您组织的独特要求,同时符合安全性和合规性行业标准。这些脚本作为基础起点,需要进一步细化和验证,以确保它们符合生产级标准。

该解决方案不仅加速了迁移过程,还提供了标准化且安全的云基础设施。此外,它还为初学者云工程师提供初始脚本草稿作为标准模板进行构建,从而促进他们的 IaC 学习之旅。

当您应对云迁移的复杂性时,对结构化、安全且合规的环境的需求至关重要。 AWS登陆区 通过提供部署 AWS 资源的标准化方法来满足这一需求。这可确保您的云基础从一开始就根据 AWS 最佳实践构建。借助 AWS Landing Zone,您可以消除安全配置、资源配置和账户管理方面的猜测。对于希望在不影响治理或控制的情况下进行扩展的组织特别有利,为实现强大而高效的云设置提供了清晰的路径。

在这篇文章中,我们将向您展示如何使用 Amazon Bedrock 为 AWS Landing Zone 生成定制的、合规的 IaC 脚本。

云迁移背景下的AWS Landing Zone架构

AWS Landing Zone 可以帮助您根据 AWS 最佳实践设置安全的多账户 AWS 环境。它提供了一个基线环境来开始使用多帐户架构、自动设置新帐户以及集中合规性、安全性和身份管理。以下是基于 Terraform 的自定义 AWS Landing Zone 解决方案的示例,其中每个应用程序都驻留在其自己的 AWS 账户中。

高级工作流程包括以下组件:

  • 模块配置 – 跨不同领域(例如数据库、容器、数据管理、网络和安全)的不同平台团队开发和发布经过认证的或自定义模块。这些通过管道传递到 Terraform 私有模块注册表,该注册表由组织维护以实现一致性和标准化。
  • 账户自动售货机层 – 账户自动售货机 (AVM) 层使用 AWS控制塔, Terraform 的 AWS 账户工厂 (AFT),或用于销售帐户的自定义登陆区解决方案。在这篇文章中,我们将这些解决方案统称为 AVM 层。当应用程序所有者向 AVM 层提交请求时,它会处理请求中的输入参数以配置目标 AWS 账户。然后通过 AVM 自定义为该帐户配置定制的基础架构组件,其中包括 AWS Control Tower 自定义 or AFT 定制.
  • 应用基础设施层 – 在这一层中,应用程序团队将其基础设施组件部署到预配置的 AWS 账户中。这是通过在特定于应用程序的存储库中编写 Terraform 代码来实现的。 Terraform 代码调用之前由平台团队发布到 Terraform 私有注册表的模块。

利用生成式 AI 克服本地 IaC 迁移挑战

维护本地应用程序的团队经常会遇到 Terraform(AWS 环境中 IaC 的关键工具)的学习曲线。这种技能差距可能是云迁移工作的一个重大障碍。 Amazon Bedrock 凭借其生成式 AI 功能,在缓解这一挑战方面发挥着重要作用。它促进了应用程序基础设施层 Terraform 代码创建的自动化,使 Terraform 经验有限的团队能够高效过渡到 AWS。

Amazon Bedrock 根据架构描述生成 Terraform 代码。生成的代码是根据组织最佳实践、安全性和监管指南定制和标准化的。通过将高级提示与 Amazon Bedrock 知识库,它存储有关特定于组织的 Terraform 模块的信息。该解决方案使用检索增强生成 (RAG) 通过知识库中的详细信息丰富 Amazon Bedrock 的输入提示,确保输出 Terraform 配置和 README 内容符合您组织的 Terraform 最佳实践和指南。

下图说明了此体系结构。

工作流程包括以下步骤:

  1. 该过程从帐户出售开始,应用程序所有者在此提交新 AWS 帐户的请求。这会调用 AVM,后者处理请求参数以配置目标 AWS 账户。
  2. 计划迁移的应用程序的架构描述作为输入之一传递到 AVM 层。
  3. 配置帐户后,将应用 AVM 自定义。这可以包括 AWS Control Tower 自定义 or AFT 定制 根据组织政策设置具有必要基础设施组件和配置的帐户。
  4. 同时,AVM 层调用 Lambda 函数来生成 Terraform 代码。此功能通过自定义提示丰富了架构描述,并利用 RAG 进一步增强来自 Bedrock 知识库的组织特定编码指南的提示。该知识库包括针对组织量身定制的最佳实践、安全护栏和指南。参见说明性的 例子 上传到知识库的组织特定 Terraform 模块规范和指南。
  5. 在部署之前,Terraform 代码的初始草案会由云工程师或自动代码审查系统进行彻底审查,以确认其符合所有技术和合规性标准。
  6. 然后,使用经过审查和更新的 Terraform 脚本将基础设施组件部署到新配置的 AWS 帐户中,设置应用程序所需的计算、存储和网络资源。

解决方案概述

AWS Landing Zone 部署使用 Lambda 函数根据架构输入生成 Terraform 脚本。该功能是操作的核心,它使用 Amazon Bedrock 和 Amazon Bedrock 知识库将这些输入转换为合规代码。然后,输出将存储在 GitHub 存储库中,与迁移中的特定应用程序相对应。以下各节详细介绍了实施此解决方案所需的先决条件和具体步骤。

先决条件

您应该具备以下条件:

配置 Lambda 函数以生成自定义代码

此 Lambda 函数是自动为 AWS 服务创建定制的、合规的 Terraform 配置的关键组件。它将生成的配置直接提交到指定的 GitHub 存储库,与组织最佳实践保持一致。功能代码可参考如下 GitHub回购。要创建 lambda 函数,请遵循 说明.

下图说明了该功能的工作流程。

工作流程包括以下步骤:

  1. 该函数由来自 AVM 层的事件调用,包含架构描述。
  2. 该函数从知识库检索并使用 Terraform 模块定义。
  3. 该函数按照推荐调用 Amazon Bedrock 模型两次 及时的工程指南。该函数应用 RAG 通过 Terraform 模块信息丰富输入提示,确保输出代码符合组织最佳实践。
    • 首先,按照组织编码指南生成 Terraform 配置,并包含知识库中的 Terraform 模块详细信息。例如,提示可能是:“为 AWS 服务生成 Terraform 配置。通过使用 IAM 角色和最小权限来遵循安全最佳实践。包括所有必要的参数和默认值。添加注释来解释整体架构和每个资源的用途。”
    • 其次,创建详细的自述文件。例如:“为基于 AWS 服务的 Terraform 配置生成详细的 README。包括有关安全改进、遵循 AWS 架构完善的框架的成本优化技巧的部分。此外,还包括所使用的每项 AWS 服务的详细成本细分,以及每小时费率以及每日和每月的总成本。”
  4. 它将生成的 Terraform 配置和 README 提交到 GitHub 存储库,提供可追溯性和透明度。
  5. 最后,它会成功响应,包括提交的 GitHub 文件的 URL,或返回详细的错误信息以进行故障排除。

为 Amazon Bedrock 配置知识库

请按照以下步骤在 Amazon Bedrock 中设置您的知识库:

  1. 在 Amazon Bedrock 控制台上,选择 知识库 在导航窗格中。
  2. 创建知识库.
  3. 输入反映知识库用途的清晰描述性名称,例如适用于 Amazon Bedrock 的 AWS 账户设置知识库。
  4. 分配具有必要权限的预配置 IAM 角色。通常最好让 Amazon Bedrock 为您创建此角色,以确保它具有正确的权限。
  5. 将 JSON 文件上传到启用加密以确保安全的 S3 存储桶。该文件应包含 AWS 服务和 Terraform 模块的结构化列表。对于 JSON 结构,请使用以下内容 例子 来自 GitHub 存储库。
  6. 选择默认的嵌入模型。
  7. 允许 Amazon Bedrock 为您创建和管理矢量存储 亚马逊开放搜索服务.
  8. 检查信息的准确性。请特别注意 S3 存储桶 URI 和 IAM 角色详细信息。
  9. 创建您的知识库。

部署并配置这些组件后,当您的 AWS Landing Zone 解决方案调用 Lambda 函数时,会生成以下文件:

  • Terraform 配置文件 – 该文件指定基础设施设置。
  • 全面的自述文件 – 该文件记录了代码中嵌入的安全标准,确认它们与初始部分中概述的安全实践保持一致。此外,本自述文件还包括架构摘要、成本优化技巧以及 Terraform 配置中描述的资源的详细成本细分。

以下屏幕截图显示了 Terraform 配置文件的示例。

以下屏幕截图显示了自述文件的示例。

清理

完成以下步骤以清理您的资源:

  1. 如果不再需要 Lambda 函数,请将其删除。
  2. 清空并删除用于 Terraform 状态存储的 S3 存储桶。
  3. 从 GitHub 存储库中删除生成的 Terraform 脚本和 README 文件。
  4. 删除知识库 如果不再需要。

结论

Amazon Bedrock 的生成式 AI 功能不仅简化了用于 AWS 部署的兼容 Terraform 脚本的创建,而且还为初级云工程师将本地应用程序迁移到 AWS 提供了关键的学习帮助。此方法可加速云迁移过程并帮助您遵循最佳实践。您还可以使用该解决方案在迁移后提供价值,增强日常运营,例如持续的基础设施和成本优化。尽管我们在本文中主要关注 Terraform,但这些原则也可以增强您的 AWS CloudFormation 部署,为您的基础设施需求提供多功能解决方案。

准备好利用 Amazon Bedrock 中的生成式 AI 简化您的云迁移流程了吗?首先探索 亚马逊基岩用户指南 了解它如何简化您组织的云之旅。如需进一步帮助和专业知识,请考虑使用 AWS专业服务 帮助您简化云迁移之旅并最大限度地发挥 Amazon Bedrock 的优势。

借助 Amazon Bedrock 释放快速、安全、高效的云采用潜力。立即迈出第一步,了解它如何增强您组织的云转型工作。


关于作者

埃比·托马斯 专门从事制定战略和开发自定义 AWS Landing Zone 资源,重点是使用生成式 AI 来增强云基础设施自动化。在 AWS 专业服务部门,Ebbey 的专业知识对于构建简化云采用的解决方案至关重要,为 AWS 用户提供安全高效的操作框架。他以其应对云挑战的创新方法以及对推动云服务功能的承诺而闻名。

现货图片

最新情报

现货图片