Search ec2 instance by its name from aws command line tool

Solution 1:

Assuming that you are using the convention of putting the name of the instance in a tag with the key of "Name" (this is what the AWS Console does when you enter a name), then you can use the --filters option to list those instances with aws-cli:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'

If you just wanted the instance ids of those instances, you could use:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
  --output text --query 'Reservations[*].Instances[*].InstanceId'

Note: --query may require a recent version of aws-cli but it's worth getting.

Solution 2:

You can further filter with name, instance id and private ip with below,

aws ec2 describe-instances --filters "Name=tag:Name,Values=*myinstance*" --output json --query 'Reservations[*].Instances[*].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value]' --region us-east-1