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 querysort_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.