假设我有 20 个正在运行的 EC2 实例和 10 个活动的预留实例预留。
使用 AWS 控制台或AWS CLI,确定正在运行的 EC2 实例中哪些是不是是否被预留实例预留‘覆盖’?
为了更清楚地了解所需的结果,请考虑以下内容(据我所知,在 AWS 控制台中是不可能的):
- 获取某个区域内所有实例的列表
running
。您现在可以在 AWS 控制台中以及通过 AWS CLI 执行此操作。 - 获取同一区域内所有预留实例预订的列表
active
。您现在可以在 AWS 控制台中执行此操作,然后通过 AWS CLI。 - 交叉检查两个列表:每次您
running
在区域 Y 中看到大小为 X 的实例,并且区域 Y 中存在大小为 X 的预留实例预留时,将其从列表中删除running
。 - 修改后的列表中的其余实例
running
是所有未被预留实例预订涵盖的实例。
我正在寻找一种方法来获得 #4,而不必手动将 AWS 控制台中可用的两个列表复制到 Excel 中,并running
在看到相应的 RI 预留时手动划掉实例。我也可以编写一个使用 CLI 的脚本来执行此操作,但我假设可能已经存在某种方法,因为这是一种分析成本效率的明显方法。
答案1
如果您的所有 EC2 实例都是同一类型且位于同一区域,我认为没有任何方法可以知道哪些实例在覆盖范围内,哪些不在,因为预留实例只是一个计费概念。预留实例永远不会真正分配给特定的 EC2 实例。
AWS 将查看您正在运行的实例数以及您购买的预留实例数,并据此向您收费。因此,确定您是否有未包含在预留实例中的 EC2 实例的最佳方法是分析您的 AWS 账单详细信息并查找未作为预留实例计费的 EC2 使用情况。