By using AWS re:Post, you agree to the Terms of Use
/aws ec2 describe-instances --filters/

aws ec2 describe-instances --filters


Hi, am wondering if applying filters on aws cli "ec2 describe-instances --filters [] " would filter the result set before fetching it over the network or at the client? E.g., I have 10 instances in my account, of which only 5 are 'Running' and I want to see the details of only those. My understanding after reading the docs in this case is that, backend API would simply fetch everything and filters would be applied at the client before displaying results. This means bringing over unnecessary data over the network. Is this the right understanding? If so, is there any way to "run filter at source itself"?

1 Answers
Accepted Answer

The --filter(s) parameter uses server-side filtering, returning only the data with matching results.

In contrast, the --query parameter utilises client-side filtering, returning all data to the client prior to matching.

For more info, take a look at

answered 2 months ago
  • Thanks, it helps. I'm pasting a sample code from boto3 docs,

    instances = ec2.instances.filter(

    Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])

    -- Can I assume that this 'filter' would work the same way, since both use the same backend API?

  • Yes, that would be using server-side filtering

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions