1. 概述

了解当前 AWS EC2 实例的类型对于资源管理、成本优化和性能问题排查至关重要。实例类型决定了虚拟机的计算能力、内存、存储和网络带宽。掌握如何从命令行直接获取该信息,特别是在编写自动化脚本或多实例管理时非常关键。

在本教程中,我们将介绍如何使用 AWS CLI 获取 EC2 实例类型。


2. 为什么实例类型很重要

实例类型在云上应用的性能和成本控制中扮演着重要角色。它们针对不同场景进行了优化,比如计算密集型、内存优化型或存储密集型操作。掌握当前实例类型有助于更高效地进行扩容、资源优化或成本削减。此外,在排查问题或设置监控系统时,这也是不可或缺的信息。

在执行命令前,确保你已安装并配置好 AWS CLI,并具备访问 AWS 资源的权限。

可以通过以下命令验证 AWS CLI 是否安装成功:

$ aws --version
aws-cli/2.5.1 Python/3.8.8 Linux/4.15.0-136-generic exe/x86_64.ubuntu.20

如果没有安装,可以使用如下命令安装:

$ sudo apt install awscli

安装完成后,运行以下命令配置 AWS 凭证:

$ aws configure

它会提示输入 Access Key ID、Secret Access Key、区域和输出格式。配置完成后,即可开始使用 CLI 操作 AWS 资源。


3. 使用 describe-instances 命令获取实例类型

AWS CLI 提供了获取 EC2 实例详细信息的便捷方式,其中 describe-instances 命令特别适用于获取实例类型。

以下命令可用于获取特定实例的类型:

$ aws ec2 describe-instances --instance-ids i-1234567890abcdef0 --query "Reservations[].Instances[].InstanceType" --output text
t2.small

我们使用 --query 参数来提取特定字段(这里是 InstanceType),避免输出冗长的完整信息。--output text 参数用于以纯文本格式输出结果。✅这种写法非常适合用于自动化脚本中。

如果你需要同时查询多个实例的类型,只需在命令中添加多个 --instance-ids

$ aws ec2 describe-instances --instance-ids i-1234567890abcdef0 i-abcdef01234567890 --query "Reservations[].Instances[].InstanceType" --output text
t2.small
t3.large

这对于管理大规模 EC2 集群时快速了解实例类型分布非常有用。


4. 使用实例元数据获取实例类型

如果你是在 EC2 实例内部运行命令,还可以通过访问实例元数据来获取实例类型信息。

AWS 提供了一个元数据服务,可以通过 HTTP 接口访问。例如,获取当前实例类型可以使用以下命令:

$ curl http://169.254.169.254/latest/meta-data/instance-type
t2.micro

这个 IP 地址 169.254.169.254 是 AWS 保留用于访问实例元数据的地址。⚠️注意:该方式仅适用于在 EC2 实例内部执行,无需认证,直接可用。


5. 自动化获取实例类型

对于拥有大量 EC2 实例的环境,手动逐个查询显然效率低下。我们可以通过脚本自动化获取所有实例的类型。

下面是一个使用 Bash 编写的简单脚本示例,用于获取指定区域中所有实例的类型:

#!/bin/bash
region="us-west-1"
instance_ids=$(aws ec2 describe-instances --region $region --query "Reservations[].Instances[].InstanceId" --output text)

for instance_id in $instance_ids
do
  instance_type=$(aws ec2 describe-instances --instance-ids $instance_id --query "Reservations[].Instances[].InstanceType" --output text)
  echo "Instance ID: $instance_id, Instance Type: $instance_type"
done

该脚本首先获取指定区域内的所有实例 ID,然后遍历这些 ID,分别获取它们的实例类型并输出。这种脚本非常适合用于资源审计或监控场景。


6. 总结

本文介绍了如何通过 AWS CLI 获取 EC2 实例类型,包括:

  • 使用 describe-instances 命令查询单个或多个实例的类型
  • 通过实例元数据服务快速获取当前实例类型
  • 编写脚本实现批量自动化查询

掌握这些方法有助于我们更好地进行资源优化、成本控制和性能调优。在自动化运维或监控系统中,准确获取实例类型信息是做出合理决策的基础。


原始标题:How to Get the AWS EC2 Instance Type from the Command Line