dev-server-03
という名前のインスタンスがあります。コマンドラインからすべてのdev-server-*
インスタンスを検索するにはどうすればよいですか?
私はaws cliツールを使用しています。
「名前」のキーを持つタグにインスタンスの名前を配置する規則を使用していると仮定すると(これは、名前を入力したときに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の最新バージョンが必要な場合がありますが、取得する価値があります。
以下を使用して、名前、インスタンス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
jq
を使用している場合は、次のようにしてこれを実現できます。
aws ec2 describe-instances |
jq -r '.Reservations[].Instances[] |
select(.Tags[].Value | startswith("dev-server-"))'
次のようなより具体的な結果を得るために、jq
に追加のフィルターを追加できます。
... startswith("dev-server-")) | .PublicDnsName'