使用 Amazon Bedrock 实现 AWS 基础设施运营自动化 - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Bedrock 实现 AWS 基础设施运营自动化

Ishwar Chauthaiwale 和 Anand Bukkapatnam Tirumala,Amazon Web Services

Summary

在云原生解决方案中,自动执行常见基础设施操作在维护高效、安全和经济实惠的环境方面起着至关重要的作用。手动处理操作非常耗时,而且容易出现人为错误。此外,具有不同 AWS 专业知识水平的团队成员需要在执行这些任务的同时确保遵守安全协议。此模式演示了如何使用 Amazon Bedrock 通过自然语言处理 (NLP) 自动执行常见的 AWS 基础设施操作。

这种模式可以帮助组织开发可重复使用、模块化和安全的代码,用于在多个环境中部署基于生成式人工智能的基础设施。通过专注于基础设施即代码 (IaC) 和自动化,它提供了关键 DevOps 优势,包括版本控制、一致的部署、减少错误、更快的配置和改进的协作。

该模式实现了一个安全的架构,使团队能够管理与密钥相关的操作, AWS 服务 包括:

  • Amazon Simple Storage Service(Amazon S3)存储桶版本控制管理

  • Amazon Relational Database Service(Amazon RDS)快照创建

  • Amazon Elastic Compute Cloud(Amazon EC2)实例管理

该架构使用亚马逊虚拟私有云(Amazon VPC)终端节点和私有网络进行安全通信,其 AWS Lambda 功能在私有子网中充当任务执行者。Amazon S3 提供数据管理并实施全面的 AWS Identity and Access Management (IAM) 角色和权限,以确保适当的访问控制。此解决方案不包括聊天记录功能,也不会存储聊天记录。

先决条件和限制

产品版本

  • Amazon Titan 文本嵌入 v2

  • Anthropic Claude 3.5 Sonnet 或 Claude 3 Haiku

  • Terraform P AWS rovider 版本 4 或更高版本

  • Terraform 版本 1.5.7 或更高版本

架构

下图显示了此模式的工作流和架构组件。

使用 Amazon Bedrock 自动执行常见 AWS 基础设施操作的工作流。

解决方案架构由多个层组成,它们协同工作以处理自然语言请求并执行相应的 AWS 操作:

  1. 用户通过 Amazon Bedrock 聊天控制台提出操作请求。

  2. 聊天机器人使用 Amazon Bedrock 知识库来处理请求。它实现了用于自然语言处理的 Amazon Titan 文本嵌入 v2 模型。

  3. 如果用户提示中包含操作请求,则 Amazon Bedrock 操作组使用 Anthropic Claude 3 Haiku 或 Claude 3.5 Sonnet 模型(取决于您的选择)作为执行逻辑,并通过 OpenAPI 架构定义操作。

  4. 操作组使用访问 AWS PrivateLink 用于安全服务通信的 Amazon VPC 终端节点

  5. 该 AWS Lambda 功能可通过亚马逊 Bedrock 服务的亚马逊 VPC 终端节点访问。

  6. Lambda 函数是主要的执行引擎。根据请求,Lambda 函数调用 API 以对 AWS 服务执行操作。Lambda 函数还处理操作的路由和执行。

  7. 从 Lambda 函数中 AWS 服务 获取 API 请求并执行相应的操作。

  8. Lambda 函数计算 Amazon Bedrock 可以理解的输出有效载荷。

  9. 此有效载荷通过使用 PrivateLink 安全服务通信发送到 Amazon Bedrock。Amazon Bedrock 使用的大语言模型(LLM)可以理解此有效载荷,并将其转换为人类可理解的格式。

  10. 然后在 Amazon Bedrock 聊天控制台上向用户显示输出。

该解决方案支持以下主要操作:

  • Amazon S3 – 启用存储桶版本控制以进行版本控制。

  • Amazon RDS – 创建用于备份的数据库快照。

  • Amazon EC2 – 列出实例并控制实例的启动和停止。

工具

AWS 服务

  • Amazon Bedrock 是一项完全托管的服务,它通过统一的 API 提供来自领先的人工智能初创公司和亚马逊的高性能基础模型 (FMs) 供您使用。

  • AWS Command Line Interface (AWS CLI) 是一个开源工具,可帮助您 AWS 服务 通过命令行 shell 中的命令进行交互。

  • Amazon Elastic Compute Cloud(Amazon EC2)在 AWS Cloud中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速纵向扩展或缩减这些服务器。

  • AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。

  • AWS Lambda 是一项计算服务,可帮助您运行代码,无需预调配或管理服务器。它只在需要时运行您的代码,并自动进行扩展,因此您只需为使用的计算时间付费。

  • Amazon OpenSearch Server less 是亚马逊 OpenSearch 服务的按需无服务器配置。

  • AWS PrivateLink帮助您创建从您的虚拟私有云 (VPCs) 到 VPC 外部服务的单向私有连接。

  • Amazon Relational Database Service(Amazon RDS)可帮助您在 AWS Cloud中设置、操作和扩展关系数据库。

  • Amazon Simple Storage Service(Amazon S3)是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • AWS Systems Manager 可帮助您管理在 AWS Cloud中运行的应用程序和基础设施。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理 AWS 资源。

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

其他工具

  • Git 是开源分布式版本控制系统。

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

代码存储库

此模式的代码可在 GitHub aws-sam infra-ops-orchestrator ples/ 存储库中找到。

最佳实践

操作说明

Task说明所需技能

克隆存储库。

要在本地计算机上克隆存储库,请运行以下命令:

git clone "git@github.com:aws-samples/infra-ops-orchestrator.git" cd infra-ops-orchestrator
AWS DevOps, DevOps 工程师

编辑环境变量。

编辑克隆存储库的根目录中的 terraform.tfvars 文件。查看 [XXXXX] 所指示的占位符,并根据您的环境对其进行更新。

AWS DevOps, DevOps 工程师

创建基础设施。

要创建基础设施,请运行以下命令:

terraform init
terraform plan

仔细审查执行计划。如果计划的更改可以接受,则请运行以下命令:

terraform apply --auto-approve
AWS DevOps, DevOps 工程师
Task说明所需技能

访问该解决方案。

成功部署后,请按照以下步骤使用基于聊天的界面:

  1. 要访问基础设施 Orchestrator Assistrator 助手,请 AWS 管理控制台 使用具有 A mazon Bedrock 权限的 IAM 角色登录,然后通过以下网址打开 Amazon Bedrock 控制台。https://console.aws.amazon.com/bedrock/从左侧的导航窗格中,选择代理。然后,在代理部分选择基础设施编排工具助手。

  2. 请确保您的 AWS 环境中存在针对以下建议的目标资源,然后尝试以下示例操作:

    • 通过询问“创建 RDS 实例 [实例名称] 的快照”来创建 Amazon RDS 实例的快照备份

    • 询问“启用存储桶 [存储桶名称] 版本控制”,以在 Amazon S3 存储桶上启用版本控制

    • 通过询问“列出所有 EC2 实例”来列出 Amazon EC2 实例

    • 通过询问:“启动 EC2 实例 [实例 ID]”或“停止 EC2 实例 [实例 ID]”来启动或停止 Amazon EC2 实例

    注意:将方括号中的值替换为实际资源名称或您的 AWS 环境 IDs 中的值。

AWS DevOps, DevOps 工程师
Task说明所需技能

删除创建的资源。

要删除此模式创建的所有基础设施,请运行以下命令:

terraform plan -destroy

仔细审查销毁计划。如果计划的删除可以接受,则请运行以下命令:

terraform destroy

注意:此命令将永久删除由此模式创建的所有资源。在移除任何资源之前,该命令会提示进行确认。

AWS DevOps, DevOps 工程师

问题排查

问题解决方案

代理行为

有关此问题的信息,请参阅 Amazon Bedrock 文档中的测试代理行为并进行问题排查

Lambda 网络问题

有关这些问题的信息,请参阅 Lambda 文档中的 Lambda 中的联网问题疑难解答

IAM 权限

有关这些问题的信息,请参阅 IAM 文档中的排查 IAM 问题

相关资源