AWS EC2: List Running Instances with Filters

Filter EC2 instances by state, tags, or instance type using aws ec2 describe-instances with --filters and --query for clean output.

EC2 Operations

Detailed Explanation

Listing Running EC2 Instances

The aws ec2 describe-instances command retrieves detailed information about your EC2 instances. Without filters, it returns everything — so using --filters and --query is essential for practical use.

List All Running Instances

aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query "Reservations[].Instances[].[InstanceId,InstanceType,State.Name,PublicIpAddress]" \
  --output table

Example Output

---------------------------------------------------------------
|                      DescribeInstances                       |
+---------------------+-----------+---------+-----------------+
|  i-0abc123def456789 |  t3.micro | running |  54.210.100.50  |
|  i-0def789abc123456 |  t3.small | running |  52.24.100.200  |
+---------------------+-----------+---------+-----------------+

Filter by Tag

aws ec2 describe-instances \
  --filters "Name=tag:Environment,Values=production" \
  --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name']|[0].Value]" \
  --output table

Filter by Instance Type

aws ec2 describe-instances \
  --filters "Name=instance-type,Values=t3.micro,t3.small" \
  --query "Reservations[].Instances[].InstanceId" \
  --output text

Common Filters

Filter Name Example Values Purpose
instance-state-name running, stopped, terminated Filter by state
tag:Name MyServer Filter by tag
instance-type t3.micro Filter by size
vpc-id vpc-abc123 Filter by VPC
availability-zone us-east-1a Filter by AZ

JMESPath Tips

  • [].Instances[].InstanceId — extract just IDs
  • [?State.Name=='running'] — filter in query
  • sort_by(@, &LaunchTime) — sort results
  • [:5] — limit to first 5 results

Use Case

Monitoring running infrastructure, auditing instance types for cost optimization, finding instances by tag during incident response, or scripting automated inventory reports.

Try It — AWS CLI Command Builder

Open full tool