AWS Command Line Tool에서 이름으로 EC2 인스턴스 검색


32

라는 이름의 인스턴스가 dev-server-03있습니다. 이제 dev-server-*명령 줄에서 모든 인스턴스를 어떻게 검색 할 수 있습니까?

AWS CLI 도구를 사용하고 있습니다.


인스턴스 이름을 어떻게 지정했는지에 따라 다릅니다. OS 내부, AWS 콘솔 또는 둘 모두에서 호스트 이름을 설정 했습니까?
Craig Watson

예, OS 내부의 호스트 이름은 같은 이름으로 설정되어 있습니다.
Shiplu Mokaddim 5

답변:


55

"Name"키가있는 태그에 인스턴스 이름을 넣는 규칙을 사용한다고 가정하면 (이름을 입력 할 때 AWS 콘솔에서 수행하는 작업 임) --filters옵션을 사용하여 해당 인스턴스를 나열 할 수 있습니다 aws-cli :

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

해당 인스턴스의 인스턴스 ID를 원한다면 다음을 사용할 수 있습니다.

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

참고 : --query최신 버전의 aws-cli가 필요할 수 있지만 얻을 가치가 있습니다.


1
: OMG는이 밖으로 내기 위해 나에게 거의 반 시간을했다 ...이 방법 이상해Name=tag:Name
lisak

1
감사합니다 에릭 - 나는, 같은 줄에 여러 인스턴스 ID를 받고 쿼리를 사용 되었으나 github.com/aws/aws-cli/issues/914#issuecomment-56210312는 제안 --query 'Reservations[].Instances[].[InstanceId]나를 위해 작동하는
jaygooby

3
FWIW는 jq도구와 유사한 결과를 얻을하는 데 사용할 수있는 aws --query이 같은를 : aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'앞의 --note .점.
MarkHu

설명 인스턴스 필터를 대소 문자를 구분하지 않게 할 수 있습니까?
red888

3

아래에서 이름, 인스턴스 ID 및 개인 IP로 추가로 필터링 할 수 있습니다.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.