You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行查看AWS EC2实例的创建日期?

通过AWS CLI实现EC2实例创建日期查询与过期销毁

1. 为什么ec2metadata无法满足需求?

ec2metadata(或通过curl http://169.254.169.254/latest/meta-data/获取元数据)仅能返回实例运行时的基础信息,不包含创建/启动时间(LaunchTime),必须通过AWS CLI调用官方接口获取该字段。

2. 查询所有实例的创建日期与运行状态

执行以下命令,可直观输出实例ID、启动时间(即创建日期)和当前状态:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, LaunchTime, State.Name]' --output table
  • LaunchTime为UTC时区的实例启动时间,可直接用于计算运行时长。

3. 筛选运行超过90天的实例

第一步:计算90天前的UTC时间阈值

Linux/macOS环境:

THRESHOLD=$(date -d "-90 days" --utc +"%Y-%m-%dT%H:%M:%SZ")

Windows PowerShell环境:

$THRESHOLD = (Get-Date).AddDays(-90).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")

第二步:查询符合条件的实例ID

仅筛选运行中且启动时间早于阈值的实例:

aws ec2 describe-instances --query 'Reservations[*].Instances[?LaunchTime <= `'"$THRESHOLD"'` && State.Name == `running`].InstanceId' --output text
  • 建议先执行此命令确认结果,避免误删目标外的实例。

4. 批量销毁过期实例

将查询到的实例ID直接传入终止命令:

aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --query 'Reservations[*].Instances[?LaunchTime <= `'"$THRESHOLD"'` && State.Name == `running`].InstanceId' --output text)

注意事项

  • 确保AWS CLI已配置具备ec2:DescribeInstances和ec2:TerminateInstances权限的凭证。
  • 终止实例时,默认会删除关联的根EBS卷(可根据卷的保留配置调整)。
  • 生产环境建议先在测试实例上验证命令逻辑,再批量执行。

内容的提问来源于stack exchange,提问作者Deepak Tatyaji Ahire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:50:33