首页 > 解决方案 > 如何使用 python 获取 AWS 实例的总内存大小?

问题描述

我想在 AWS 实例中运行一个 python 启动脚本,我想在其中获取在实例创建期间选择的总内存大小。

我试过了free -hgrep MemTotal /proc/meminfo命令。但是,这些命令的问题是,我获得的 RAM 量比我在创建实例时选择的实际内存大小要少一些(可能是由于系统使用)。我想获得创建实例时选择的确切内存大小。例如,“t2.small”为“2 GB”,“c5.large”为“4 GB”等。

此外,没有可用于获取 AWS 实例内存大小的元数据 URL。

有没有办法做到这一点?

标签: amazon-web-servicesamazon-ec2

解决方案


我自己没有这样做,但我认为这个过程可能是这样的:

客户端 = boto3.client('ec2')

type = client.describe_instance_attribute(Attribute='instanceType', InstanceId='YOUR_ID')

详细信息 = client.describe_instance_types(InstanceTypes=[ type ])

内存 = 详细信息['InstanceTypes']['MemoryInfo']['SizeInMiB']

您需要为实例提供正确的 IAM 权限以获取数据(它与http://169.254.169.254元数据不同)。

您还可以从http://169.254.169.254/2020-10-27/meta-data/instance-type/获取实例类型,但我正在尝试使用 boto3 寻求完全 python 解决方案。


推荐阅读