我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
通过拆分、移动和修改来高效管理 Amazon EC2 按需容量预留 (ODCR)
本文由高级解决方案架构师尼纳德·乔希、首席解决方案架构师巴鲁·辛格和亚马逊云科技企业支持主管安库什·戈亚尔撰写。
导言
在当今的云优先世界中,在确保应用程序可用性的同时高效管理计算容量对您的业务至关重要。对于想要管理预留空间的组织来说,Amazon EC2 按需容量预留 (ODCR) 是一个宝贵的工具,但管理多个团队和账户的预留却具有挑战性。最近,亚马逊云科技推出了新功能——拆分、移动和修改——以改善组织管理其容量预留的方式。在这篇文章中,我们将探讨这些功能如何改变您的运营。
常见的 ODCR 管理挑战
作为 ODCR 的消费者,您在管理容量预留时可能会面临一些挑战。这些挑战包括但不限于以下方面:
- 某些账户的预留容量未得到充分利用
- 无法有效地重新分配多余的容量
- 难以管理多个亚马逊云科技账户的现有容量
- 创建后难以修改预留属性
由于多个开发团队和多个项目同时运行,您可能会难以实现有效的容量分配。您可能还会发现自己正在面对这样的情况:一支队伍的产能过剩,而另一支队伍迫切需要它。
用例 1:在团队之间重新分配容量
未使用容量的困境
假设您的机器学习 (ML) 团队拥有十个 c5.2xlarge 实例的 ODCR,但他们只使用五个。同时,您的分析团队迫切需要三个相同类型的 Amazon EC2 实例来执行新项目。以前,您的分析团队必须创建新的预留,这会给管理自己的容量预留带来不必要的开销。同时,您的机器学习团队拥有的 ODCR 的五个未使用容量槽会导致不必要的成本。
分离救援能力
使用新的拆分功能,您现在可以划分现有的 ODCR(参见下图中的 ODCR-1)(总容量为十个 EC2 实例),并使用其中三个未使用容量创建新的 ODCR。

图 1:拆分前,ODCR-1 包含原始总容量和未使用容量
这导致了两个 ODCR 的创建:
- 原始 ODCR:机器学习团队七个实例的总容量
- 新的 ODCR:分析团队的三个实例
下图说明了拆分结果:
图 2:拆分后,具有更新的总容量和未使用容量的 ODCR-1 以及新创建的 ODCR-2
跨账户共享
拆分操作在同一亚马逊云科技账户中创建新的 ODCR。如果您的团队在同一亚马逊云科技账户下运作,则拆分操作是直接的,无需任何进一步的步骤。但是,如果您的团队使用不同的亚马逊云科技账户,则需要在拆分操作后使用 Amazon Resource Access Manager (Amazon RAM) 来共享新创建的 ODCR。这样可以在保持集中控制的同时实现跨账户容量管理。
有关将容量从一个预留拆分到新预留时的先决条件和注意事项的更多信息,请参阅亚马逊云科技文档。
有关拆分功能的更多信息,例如参数、异常和限制,请参阅 API 和 CLI 文档。
用例 2:在预留之间移动容量
为增长而扩展
几天后,当您的分析团队需要再增加一个容量来启动其扩展项目的实例时,您需要向 ODCR-2 添加更多容量。
将能力转移到救援队伍中
您可以将其中一个未使用的插槽从 ODCR-1 移至 ODCR-2,而不是为此目的创建新的 ODCR。这种灵活性为您节省了预留新容量所涉及的多个步骤,消除了对运行现有工作负载的任何干扰,并有助于简化 ODCR 管理。这种再平衡确保了资源的优秀利用率,无需进一步采购。

图 3:在移动之前,ODCR-1 的容量为未使用容量,ODCR-2 为当前容量

图 4:迁移后,容量减少的 ODCR-1,容量增加的 ODCR-2
有关将容量从一个预留转移到另一个预留时的先决条件和注意事项的更多信息,请参阅亚马逊云科技文档。
有关移动功能的更多信息,例如参数、异常和限制,请参阅 API 和 CLI 文档。
用例 3:调整预留属性以更改工作负载模式
动态工作负载要求
当您的数据处理工作负载模式发生重大变化时,必须进行调整。最初,您可能使用特定的实例匹配标准设置了 ODCR,使其成为可预测工作负载的有针对性的预留。但是,当您引入更多动态的即兴分析项目时,您需要更灵活地根据预留启动实例。
修改功能以获得帮助
使用修改功能,您现在可以更改预留的属性,而无需创建新的预留或中断正在运行的工作负载。你可以通过以下方式修改你的 ODCR:
- 更改实例数量
- 将实例资格从"目标"更改为"开放"
- 调整预约的结束日期,使其与您的项目时间表保持一致
此修改允许您:
- 无需严格的实例资格即可更灵活地启动新实例
- 改善不同项目中预留容量的使用情况
- 保持成本优化,同时适应不断变化的业务需求
修改功能提供了这种灵活性,同时确保您的现有工作负载继续不间断地运行,使其成为动态环境的宝贵工具。有关将 ODCR-2 的实例数量从四修改为六的示例,请参阅下图:

图 5:修改前,ODCR-2 的总容量为四个,实例资格为目标

图 6:修改后,ODCR-2 的新总容量为六个,实例资格为开放
增加 ODCR 大小或创建新的 ODCR 大小取决于 Amazon EC2 按需可用容量。因此,如果现有 ODCR 中有未使用的容量,那么移动/拆分可能是比修改 ODCR 更好的选择。
有关修改容量预留的先决条件和注意事项的更多信息,请参阅亚马逊云科技文档。
有关修改功能的更多信息,例如参数、异常和限制,请参阅 API 和 CLI 文档。
分流容量的特殊注意事项
在前面的章节中,我们看到了如何使用拆分能力来分离多余的未使用容量,为另一个团队创建 ODCR。但是,您也可以使用此功能拆分已用容量来创建新的 ODCR。当您想要拆分部分使用的 ODCR 以创建新的 ODCR 以便于跟踪和管理时,此功能特别有用。除了拆分未使用/过剩容量的注意事项外,拆分已用容量时还需要考虑以下注意事项:
- 只能为具有开放实例资格且不与任何账户共享的 ODCR 拆分已用容量。
- 在保留区内运行的实例具有开放资格(换句话说,它们不是针对预留的)。
- 当您拆分已用容量时,将随机选择符合条件的实例。您无法指定拆分哪些正在运行的实例。如果找不到足够数量的符合条件的实例来完成拆分数量,则拆分操作将失败。当您指定要拆分的实例数量时,默认情况下,将首先移动所有未使用的容量,然后移动任何符合条件的正在运行的实例(预留中的已用容量)。
在下一节中,我们将对可以或不能使用拆分功能的场景进行了区分。
场景 1:管理内部 ODCR(容量预留未与任何其他亚马逊云科技账户共享)
对于您的内部项目,在管理未与外部合作伙伴(其他亚马逊云科技账户)共享且都具有开放实例资格的 ODCR 时,请考虑以下使用 ODCR-1 的示例:
- 十个 c5.2xlarge 实例的总容量,均符合开放实例资格
- 您的机器学习团队目前正在使用八个实例
- 两个未使用的实例

图 7:拆分之前,总容量为 10 的 ODCR-1 和 2 个未使用的实例
此 ODCR 不与任何外部亚马逊云科技账户共享,因此您可以最大限度地灵活拆分预留。无论当前有多少实例在使用,您最多可以将九个实例拆分为一个新的预留(总容量减去一个)。在这种情况下,您可以共享已用和未使用的容量。这使您在重组内部团队的能力分配方面有很大的自由度。

图 8:拆分后,ODCR-1 的总容量仍为 1,ODCR-2 的总容量为 9,有两个未使用的容量
场景 2:管理与合作伙伴共享的 ODCR(与其他亚马逊云科技账户共享容量预留)
当您需要与合作伙伴的亚马逊云科技账户共享您的 ODCR 时,请考虑以下场景:ODCR-1 有:
- 十个 c5.2xlarge 实例的总容量
- 您的团队和合作伙伴的团队都在使用八个实例
- 两个未使用的实例

图 9:拆分之前,ODCR-1 与另一个亚马逊云科技账户共享。
在这种情况下,您的选择更加有限。ODCR-1 与您的合作伙伴的亚马逊云科技账户共享,因此您只能拆分未使用的容量(最多两个实例)。拆分后,新创建的 ODCR (ODCR-2) 将保留在您的亚马逊云科技账户中,不会与任何其他亚马逊云科技账户共享。此限制有助于防止对合作伙伴的运行工作负载造成任何干扰,同时仍允许在容量管理方面保持一定的灵活性。

图 10:拆分后,ODCR-1 仍与另一个亚马逊云科技账户共享,新创建的 ODCR-2 不共享
这些情景展示了内部和合作伙伴共享环境中容量管理的重要因素。在计划任何拆分或修改之前,您应该仔细考虑 ODCR 的共享状态,确保您的团队和合作伙伴都能顺利运营。
移动能力的特殊注意事项
移动功能使您能够在 ODCR 之间重新分配可用(或多余)容量。但是,在某些情况下,您也可以使用此功能在 ODCR 之间移动使用过的实例。如果您想将部分使用的 ODCR 合并为一个以便于跟踪和管理,则此功能特别有用。除了移动未使用容量的注意事项外,以下注意事项也适用于移动已用容量:
- 源和目标 ODCR 均符合开放实例资格且处于活动状态。
- 在保留区内运行的实例具有开放资格(换句话说,它们不是针对预留的)。
- 源和目标 ODCR 均归同一个账户所有。
- 源和目标 ODCR 可以共享,但在移动已用部分时使用相同的帐户列表。这种共享至相同账户的条件不适用于 ODCR 的未使用部分。
当您指定要移动的实例数量时,默认情况下,将首先移动所有未使用的容量,然后移动任何符合条件的正在运行的实例(预留中的已用容量)。
在接下来的部分中,我们将介绍你可以在哪里使用或不能使用此功能。
场景 1:源和目标 ODCR 未与其他账户共享(团队转移)
使用同一亚马逊云科技账户(Account-A)管理内部团队之间的容量时,您会发现流程很明确。例如,在整合 ML 团队的资源时:
- ODCR-1(机器学习小组 A):总共有十个容量(全部符合开放资格),其中八个在用,两个未使用。
- ODCR-2(机器学习小组 B):有五个容量(全部有开放资格),全部在使用中。

图 11:在移动之前,ODCR-1 和 ODCR-2 都在同一亚马逊云科技账户中,未共享
两个 ODCR 属于同一个账户,不在外部共享,而且 ODCR 具有开放实例资格。因此,您可以自由地将所有十个实例从 ODCR-1 移动到 ODCR-2,从而为合并后的 DevOps 团队创建一个包含 15 个实例的统一池。

图 12:从 ODCR-1 转移容量后,ODCR-2 的总容量为 15,其中 2 个未使用
场景 2:与同一个账户共享源和目标 ODCR(外部合作伙伴协作)
如果您的 ML 团队 (ODCR-1) 与外部 AI 研究合作伙伴(Account-B)合作,则您的设置可能如下所示:
- ODCR-1:十个实例(八个已使用,两个未使用),均符合开放实例资格,通过 Amazon RAM 与研究伙伴共享。
- ODCR-2:内部分析团队有五个实例(全部使用),均符合开放实例资格。

图 13:在移动之前,ODCR-1 和 ODCR-2 都在同一亚马逊云科技账户中,ODCR-1 与其他亚马逊云科技账户共享
当您的分析团队需要更多容量时,您只能将两个未使用的实例从 ODCR-1 移至 ODCR-2,因为其他八个实例将积极用于合作伙伴协作。

图 14:由于 ODCR-1 与其他亚马逊云科技账户共享,因此仅将未使用的容量转移到 ODCR-2
场景 3:来源和目标 ODCR 与不同的账户共享(多伙伴项目)
在本场景中,涉及管理不同合作伙伴合作的容量:
- ODCR-1:十个实例(八个已使用,两个未使用),与数据库合作伙伴(账户 B)共享。
- ODCR-2:五个实例(全部使用),与安全合作伙伴(账户 C)共享。

图 15:ODCR-1 和 ODCR-2 与不同的亚马逊云科技账户共享
由于合作伙伴安排不同,换句话说,与其他账户共享的 ODCR,您只能将两个未使用的容量从 ODCR-1 转移到 ODCR-2。这确保了数据库合作伙伴的工作负载不会中断。

图 16:由于共享容量预留,只有未使用的容量转移到 ODCR-2
这些场景提供了有关多账户环境中容量管理的宝贵经验。您可以制定全面的共享策略,在灵活性与合作伙伴承诺之间取得平衡,使您能够优化资源使用,同时保持牢固的合作伙伴关系。
结论
亚马逊云科技的新 ODCR 功能(拆分、移动和修改)代表了云容量管理的重大进步。对于您的组织而言,这些功能改变了您处理计算资源的方式,从而实现了更高效的运营和成本管理。动态调整和共享容量预留的能力为您提供了所需的灵活性,同时保持了关键工作负载所需的稳定性。
随着云基础设施的不断发展,这些功能表明亚马逊云科技致力于解决您在管理复杂云环境时面临的现实挑战。如果您想优化您的亚马逊云科技基础设施,那么这些新的 ODCR 功能为改善容量管理和资源使用提供了强大的工具。
为了增进您对这些功能的理解,我们创建了一个 GitHub 存储库,其中包含用于实现目的的 API。有关更多详细信息,请参阅更新的容量预留文档。如果您有任何问题或反馈,请随时在评论部分分享或联系 Amazon Support。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。