

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

# 实例
<a name="runtime-instances-how-it-works"></a>

当您在**实例**计算类型上托管代理时，Amazon Bedrock AgentCore Runtime 将在其预置并在您自己的 Amazon 账户内运行的 [ Amazon EC2 托管实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html)上运行您的代理，因此您无需管理实例生命周期、操作系统和运行时补丁、扩展或拆解，即可获得 Amazon EC2 的硬件选择和定价优势。[容量提供商](#runtime-instances-capacity-provider)定义这些实例使用的基础架构，并代表您 AgentCore 处理配置、修补、扩展和拆解。由于实例在您的账户中运行，您的数据将保留在您的账户中，因此您现有的账户控制措施适用，您可以使用 EC2 定价协议，例如储蓄计划、预留实例和 On-Demand 容量预留 (ODCR)。使用实例，您可以获得持久的计算，可以在单个实例上运行多个协作代理，同时保持对底层基础设施的可见性和控制权。

**Topics**
+ [何时使用实例](#runtime-instances-when-to-use)
+ [核心概念](#runtime-instances-concepts)
+ [比较计算类型](#runtime-instances-compute-comparison)
+ [使用 GPU 实例类型](#runtime-instances-gpu)
+ [调用流程](#runtime-instances-invocation-flow)
+ [跨会话的永久存储](#runtime-instances-persistent-volumes)
+ [IAM 角色](#runtime-instances-permissions)

## 何时使用实例
<a name="runtime-instances-when-to-use"></a>

当您的工作负载需要超出无服务器 microVM 模型所提供的功能时，请选择**实例**计算类型：
+  **持久、长时间运行的会话 ** — 会话最多可以运行 14 天，而微型虚拟机的会话最多可以运行 8 个小时。这适用于长时间运行的自动化、转换作业以及长时间暂停和恢复的代理。
+  **专业硬件 **-为 3D 渲染、仿真或模型推理等计算密集型工作负载选择支持的 GPU 实例类型。 AgentCore 在实例上配置 GPU 驱动程序，因此标准容器映像无需捆绑驱动程序即可运行，并且支持计算 (CUDA) 和图形工作负载。有关支持的系列，请参阅[使用 GPU 实例类型](#runtime-instances-gpu)。
+  **Multi-agent 协作 ** — 多个代理可以在同一个实例上运行，共享一个文件系统，并协调同一项任务。
+  **您的账户，您的控制权 ** — 实例在您的账户中运行，因此您的数据将保留在您的账户中，您可以使用现有的成本机制，例如储蓄计划和 On-Demand 容量预留 (ODCR)。

如果您的工作负载是轻量级的、快速完成的 API-driven 交互，则默认的 ** microVMS ** 计算类型通常更合适。有关更多信息，请参阅[比较计算类型](#runtime-instances-compute-comparison)。

## 核心概念
<a name="runtime-instances-concepts"></a>

除了 [ microVMS ](runtime-how-it-works.md) 中描述的核心 AgentCore 运行时概念外，在实例上托管代理还会引入一些资源。

### 容量提供程序
<a name="runtime-instances-capacity-provider"></a>

**容量提供商**定义您的代理运行的 EC2 基础设施：操作系统、允许的实例类型、网络（VPC 和子网）、存储卷以及用于预置和访问实例的 IAM 角色。容量提供器是一种可重复使用的模板——您可以将其与多个代理运行时关联起来，并在调用这些运行时 AgentCore 使用它来启动实例。

主要特性：
+ 容量提供器是在一种`CREATING`状态下创建的，并在验证其配置`READY`后变成。如果验证失败，则会进入`CREATE_FAILED`。
+ 创建容量提供器后，只能编辑其描述。要更改其他配置，请复制容量提供商并在重复流程中进行更新。
+ 您可以列出与容量提供器关联的运行时（和运行时版本），并且必须先取消它们的关联，然后才能删除容量提供器。
+ 删除容量提供商会停止并删除其所有关联会话及其永久存储。

### 实例上的代理运行时间
<a name="runtime-instances-runtime"></a>

创建代理运行时时，您可以选择其**计算类型**。选择**实例可通过`capacityProviderConfiguration`参数将运行时与容量提供者**关联起来。运行时仍然定义运行的代理（代码或容器工件）及其配置方式（协议、身份验证、端点、版本）；容量提供者定义其运行的计算。

创建运行时后，您无法更改计算类型。

### 会话
<a name="runtime-instances-session"></a>

**会话**是从运行时容量提供商实例化的独立的 EC2 实例。每个会话都有自己的生命周期和持久状态，你可以用你在调用时提供的`runtimeSessionId`来标识它。 AgentCore 在第一次调用时使用新的会话 ID 创建会话，并且会话在停止时保持其状态。

一个会话最多运行 14 天。当会话达到这个最大生命周期时， AgentCore 会自动将其停止。它会终止 EC2 实例，但保留会话的永久容量。要在会话停止后恢复工作，请使用相同的方法再次调用运行时`runtimeSessionId`。 AgentCore 预置新实例并重新连接永久卷，因此您的数据完好无损。由于新实例可以从更新的计算机映像启动，因此重新启动的会话可能会在装有最新补丁的实例上运行。删除会话时，会 AgentCore 取消配置所有内容，包括永久卷。

有关会话隔离和多租户安全模型，请参阅运行时实例[运行时实例的安全模型和权限](runtime-instances-security.md)的安全模型和权限。

### 座席
<a name="runtime-instances-agent"></a>

**代理**是在会话中运行的工作负载。与一个运行时托管一个代理的 microVM 模型不同，单个实例会话可以托管多个代理。当两个代理运行时共享同一个容量提供商时，您可以使用相同的容量提供商调用它们，`runtimeSessionId`将两个代理放在同一 EC2 实例上。在那里，他们共享一个文件系统，可以协作完成相同的任务。

### 了解托管实例
<a name="runtime-instances-managed-instances"></a>

支持您的会话的 EC2 实例是 [ Amazon EC2 托管实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html)，代表您在账户中预置和运行它们，因此与标准 EC2 实例相比，您对它们的权限有限。 AgentCore 您可以通过 EC2 `DescribeInstances` 输出中的`Operator`字段和实例上的 AgentCore 容量提供商标签来识别它们。

您不能直接对这些实例执行标准的 EC2 生命周期操作，例如，您不能自己启动、修补或终止它们。 AgentCore 管理其生命周期；要删除它们，请删除相关的容量提供商，这将停止和删除其会话及其永久存储。默认情况下，托管实例在 EC2 控制台视图和 API 列表操作中处于隐藏状态；您可以使用[托管资源可见性设置来更改此设置](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html#managed-resource-visibility-settings)。它们仍可全面运行，可在您的账户中计费。

## 比较计算类型
<a name="runtime-instances-compute-comparison"></a>

下表比较了**微型虚拟**机和**实例的**计算类型，以帮助您为工作负载选择合适的计算类型。


| 特征 | 微型虚拟机 | 实例 | 
| --- | --- | --- | 
| 最适合 | 轻量级、可快速启动、按需扩展并在数小时内完成的 API-driven 代理 | Long-running需要 GPU 或多代理会话的状态工作负载或协作工作负载 | 
| 管理模型 | 完全 Amazon 托管、无服务器、按需扩展 |  Amazon 在您的账户中托管 EC2； Amazon 通过持续会话管理补丁和更新 | 
| 最长会话持续时间 | 长达 8 小时 | 最多 14 天 | 
| 操作系统 | Linux 容器 (`arm64`) | Linux（`x86_64`和`arm64`） | 
| Networking |  `PUBLIC`或 VPC | VPC | 
| 代理模式 | API，CLI | API，CLI | 
| 每个会话的代理数 | 一个运行时托管一个代理 (1:1) | 一个会话可以托管多个代理 (1:N) | 
| 支持的构件 | 容器镜像和 Amazon S3 来源 | 容器镜像和 Amazon S3 来源 | 
| GPU 访问权限 | 不支持 | 选择支持的 GPU 实例类型；驱动程序已为您配置 | 
| 定价 | Consumption-based，计费方式 AgentCore | EC2 实例在您的账户中运行；使用您的储蓄计划和 ODCR | 
| 模型和框架 | Any | Any | 

## 使用 GPU 实例类型
<a name="runtime-instances-gpu"></a>

对于模型推断、3D 渲染和媒体处理等计算密集型工作负载，请在容量提供商允许的实例类型中包含 GPU 实例类型。 AgentCore 在实例上配置 GPU 驱动程序，因此您无需配置设备路径、GPU 索引或驱动程序版本，标准容器镜像（例如 CUDA 映像）无需捆绑驱动程序即可运行。同时支持计算 (CUDA) 和图形（例如 Vulkan、EGL 和 GLX）工作负载。当多个代理在同一个实例上运行时，所有代理共享对其 GPU 的访问权限。

支持以下 GPU 和加速器实例系列：
+ NVIDIA GPU 系列 — `g4dn` `g5` `g6` `g6e`、`gr6`、、`g6f`、`gr6f`、、和`g7e`。
+  Amazon 加速器系列 —`inf2`（由 Amazon Inferentia2 提供支持）。

如果您加入了来自不支持的系列的加速器实例类型，`CreateCapacityProvider`则失败时`ValidationException`会显示一个命名实例类型并列出支持的系列。 Non-accelerator 实例类型不受影响。

## 调用流程
<a name="runtime-instances-invocation-flow"></a>

调用由容量提供者支持的代理运行时遵循与 microVM 模型相同的[InvokeAgentRuntime](https://docs.amazonaws.cn/bedrock-agentcore/latest/APIReference/API_InvokeAgentRuntime.html)入口点。 AgentCore 解析容量提供商，确保实例和代理正在为您的会话运行，并将请求代理给代理：

1. 您`InvokeAgentRuntime`使用运行时 ARN 和 a `runtimeSessionId` 进行调用。

1. 如果该会话 ID 不存在会话， AgentCore 请在您的账户中预置来自运行时容量提供商的 EC2 实例，并在其上启动代理。会话的第一次调用需要更长的时间，因为它包括实例配置。

1. 如果会话已经存在，则 AgentCore 重用正在运行的实例。调用第二个运行时，如果使用相同的会话 ID 共享同一个容量提供商，则会在同一个实例上启动该代理与第一个运行时一起启动。

1. AgentCore 将请求代理给代理并将响应传回给您。每个代理都使用自己的 IAM 证书运行，这些证书源自其运行时的执行角色。

由于代理在您账户中的实例上运行，因此 EC2 实例、其网络接口和任何永久卷均可在您账户的 EC2 控制台中显示，并计入您的账户。这些是 [ Amazon EC2 托管实例， AgentCore 即代表您在账户中预置和运行的实例。](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html)您可以使用[托管资源可见性设置控制它们是否出现在您的 EC2 控制台视图和 API 列表操作中](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html#managed-resource-visibility-settings)。

## 跨会话的永久存储
<a name="runtime-instances-persistent-volumes"></a>

容量提供商可以定义一个或多个 Amazon EBS 卷。保存容量提供商时， AgentCore 保存卷配置并在会话首次启动时创建 EBS 卷。当代理运行时通过其存储配置装载卷时，该卷的数据将在会话停止后继续存在：

1. 在第一次调用会话时， AgentCore 创建卷并将其连接到 EC2 实例。

1. 当 AgentCore 停止会话时，它会终止 EC2 实例但保留卷。

1. 在下次使用相同卷调用时`runtimeSessionId`，预置 AgentCore 一个新实例并重新连接现有卷，这样代理就可以看到其先前的数据完好无损。

这使得工作空间文件、缓存和检查点在会话重启后持续存在的有状态代理工作流程成为可能。删除会话会减少 EC2 资源（实例、网络接口和 EBS 容量）的配置，因此您无需再为不再需要的基础设施承担成本。

## IAM 角色
<a name="runtime-instances-permissions"></a>

除了向您的代理代码授予运行时权限的代理运行时执行角色外，在实例上托管代理还涉及以下角色：
+  **实例配置文件 ** — 附加到 EC2 实例的 IAM 角色。 AgentCore 使用它从实例收集系统日志；它不向您的代理代码授予权限（代理运行时执行角色会这样做）。
+  **基础设施角色 ** — 一个 IAM AgentCore 角色，负责代表您预置和管理您的账户中的 EC2 实例（为实例及其网络接口启动、标记和配置网络）。

您可以让控制台为您创建默认角色，也可以提供现有角色。因为基础设施角色允许 AgentCore 您管理账户中的计算，将其范围限制为工作负载所需的最低权限，并在适当时使用 IAM 条件将其限制为特定 VPC、子网或实例类型。