リソースのリスト表示とフィルタリング - Amazon Elastic Compute Cloud

リソースのリスト表示とフィルタリング

Amazon EC2 コンソールを使用して、一部のタイプのリソースのリストを取得できます。対応するコマンドまたは API アクションを使用して、各タイプのリソースのリストを取得できます。リソースが多い場合は、所定の条件に一致するリソースのみが表示されるように結果をフィルタリングすることができます。

コンソールを使用してリソースをリスト化およびフィルタリングする

コンソールを使用してリソースをリスト表示する

コンソールを使用して、最も一般的に使用される Amazon EC2 リソースタイプを表示できます。その他のリソースを表示するには、コマンドラインインターフェイスまたは API アクションを使用します。

コンソールを使用して EC2 リソースをリスト表示するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、リソースタイプに対応するオプションを選択します。例えば、インスタンスを一覧表示するには、[インスタンス] を選択します。

  3. このページには、選択したリソースタイプのすべてのリソースが表示されます。

コンソールを使用してリソースをフィルタリングする

検索機能は、Amazon EC2 の古い コンソールと新しいコンソールで若干異なります。

新しいコンソールでは、2 種類のフィルタリングがサポートされています。

  • API フィルタリングはサーバー側で行われます。このフィルタリングは API コールに適用され、サーバーから返されるリソースの数が減少します。これにより、大量のリソースにわたる迅速なフィルタリングが可能になり、サーバーとブラウザ間のデータ転送時間とコストを削減できます。

  • クライアントのフィルタリング は、クライアント側で行われます。これにより、ブラウザで既に使用可能なデータ (つまり、APIによって既に返されたデータ) をフィルタリングできます。クライアントフィルタリングは、ブラウザ内の小さなデータセットまでフィルタリングするために、API フィルタと併用してうまく機能します。

新しい Amazon EC2 コンソールでは、次のタイプの検索がサポートされます。

キーワードによる検索

キーワードによる検索は、検索する属性を指定せずに、すべてのリソースの属性で値を検索できるフリーテキスト検索です。

注記

すべてのキーワード検索では、クライアントフィルタリングが使用されます。

キーワードで検索するには、検索フィールドに検索したいキーワードを入力するか貼り付けて、Enter を選択します。例えば、123 を検索すると、IP アドレス、インスタンス ID、VPC ID、AMI ID など、いずれかの属性に 123 を持つすべてのインスタンスが一致します。フリーテキスト検索で予期しない一致が返された場合は、追加のフィルタを適用します。

属性による検索

属性による検索では、すべてのリソースで特定の属性を検索できます。

注記

属性検索では、選択した属性に応じて、API フィルタリングまたはクライアントフィルタリングが使用されます。属性検索を実行すると、属性はそれに応じてグループ化されます。

例えば、すべてのインスタンスの [インスタンスの状態] 属性を検索して、stopped 状態にあるインスタンスのみを取得することができます。目的:

  1. インスタンス画面の検索フィールドで、「Instance state」の入力を開始します。文字の入力中に、一致する属性のリストが表示されます。

  2. リストから [Instance state (インスタンスの状態)] を選択します。選択した属性に使用可能な値のリストが表示されます。

  3. リストから [停止] を選択します。

次のテクニックを使用して、検索の精度を高めたり、絞り込んだりできます。

逆順検索

逆検索では、指定した値に一致しないリソースを検索できます。逆検索は、検索キーワードの先頭に感嘆符 (!) を付けることによって実行されます。例えば、launch-wizard-1 という名前のセキュリティグループが割り当てられていないすべてのインスタンスを一覧表示するには、[セキュリティグループ名] 属性で検索し、キーワードに「!launch-wizard-1」と入力します。

注記

逆検索は、クライアントフィルタのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。

部分検索

部分検索では、部分文字列値を検索できます。部分検索を実行するには、検索するキーワードの一部だけを入力します。例えば、t2.microt2.smallt2.medium のすべてのインスタンスを検索するには、[インスタンスタイプ] 属性で検索し、キーワードに「t2」と入力します。

注記

部分検索は、クライアントフィルタのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。

正規表現検索

正規表現検索を使用するには、設定で [Use regular expression matching (正規表現マッチングを使用する)] を有効にする必要があります。

フィールド内の値を特定のパターンと一致させる場合、正規表現が役立ちます。例えば、s で始まる値を検索するには、^s を検索します。xyz で終わる値を検索するには、xyz$ を検索します。または、1 つ以上の文字が続く数字で始まる値を検索するには、[0-9]+.* を検索します。正規表現の検索には、大文字と小文字は区別されません。

注記

正規表現検索は、クライアントフィルタでのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。

ワイルドカード検索

0 文字以上の文字に一致させるには、* ワイルドカードを使用します。0 文字または 1 文字に一致させるには、? ワイルドカードを使用します。例えば、prod、prods、および production の値を持つデータセットがある場合、"prod*" はすべての値に一致しますが、"prod?" は prodprods にのみ一致します。リテラル値を使用するには、バックスラッシュ (\) でエスケープします。例えば、"prod\*" は prod* と一致します。

注記

ワイルドカード検索は、API フィルタの属性検索でのみサポートされます。クライアントフィルタでのみ、キーワード検索および属性検索ではサポートされません。

検索を組み合わせる

一般に、同じ属性を持つ複数のフィルタは、OR で自動的に結合されます。例えば、Instance State : Running および Instance State : Stopped を検索すると、実行中または停止中のすべてのインスタンスが返されます。AND で検索を結合するには、さまざまな属性を検索します。例えば、Instance State : Running および Instance Type : c4.large を検索すると、型が c4.large で、かつ停止状態のインスタンスだけが返されます。

以前の Amazon EC2 コンソールでは、次のタイプの検索がサポートされています。

キーワードによる検索

キーワードによる検索は、すべてのリソースの属性で値を検索できるフリーテキスト検索です。キーワードで検索するには、検索フィールドに検索したいキーワードを入力するか貼り付けて、Enter を選択します。例えば、123 を検索すると、IP アドレス、インスタンス ID、VPC ID、AMI ID など、いずれかの属性に 123 を持つすべてのインスタンスが一致します。フリーテキスト検索で予期しない一致が返された場合は、追加のフィルタを適用します。

属性による検索

属性による検索では、すべてのリソースで特定の属性を検索できます。例えば、すべてのインスタンスの [状態] 属性を検索して、stopped 状態にあるインスタンスのみを取得することができます。目的:

  1. インスタンス画面の検索フィールドで、「Instance State」の入力を開始します。文字の入力中に、一致する属性のリストが表示されます。

  2. リストから [Instance State ] を選択します。選択した属性に使用可能な値のリストが表示されます。

  3. リストから [停止] を選択します。

次のテクニックを使用して、検索の精度を高めたり、絞り込んだりできます。

逆順検索

逆検索では、指定した値に一致しないリソースを検索できます。逆検索は、検索キーワードの先頭に感嘆符 (!) を付けることによって実行されます。例えば、終了していないすべてのインスタンスを一覧表示するには、[インスタンスの状態] 属性で検索し、キーワードに「!Terminated」と入力します。

部分検索

部分検索では、部分文字列値を検索できます。部分検索を実行するには、検索するキーワードの一部だけを入力します。例えば、t2.microt2.smallt2.medium のすべてのインスタンスを検索するには、[インスタンスタイプ] 属性で検索し、キーワードに「t2」と入力します。

正規表現検索

フィールド内の値を特定のパターンと一致させる場合、正規表現が役立ちます。例えば、s で始まる属性値を持つすべてのインスタンスを検索するには、^s を検索します。または、xyz で終わる属性値を持つすべてのインスタンスを検索するには、xyz$ を検索します。正規表現の検索には、大文字と小文字は区別されません。

検索を組み合わせる

一般に、同じ属性を持つ複数のフィルタは、OR で自動的に結合されます。例えば、Instance State : Running および Instance State : Stopped を検索すると、実行中または停止中のすべてのインスタンスが返されます。AND で検索を結合するには、さまざまな属性を検索します。例えば、Instance State : Running および Instance Type : c4.large を検索すると、型が c4.large で、かつ停止状態のインスタンスだけが返されます。

リソースリストをフィルタリングするには

  1. ナビゲーションペインで、リソースタイプを選択します ([Instances] など)。

  2. 検索フィールドを選択します。

  3. リストからフィルターを選択します。

  4. フィルター値を指定します。

  5. 完了したら、フィルターを削除します。

CLI および API を使用した一覧表示とフィルタリング

リソースタイプごとに、そのタイプのリソースの一覧表示に使用する CLI コマンドまたは API アクションが用意されています。結果として得られるリソースのリストは長くなる場合があるため、特定の条件に一致するリソースのみを含めるように結果をフィルタリングする方がより速く、より便利です。

フィルタリングの考慮事項

  • 1 つのリクエストで複数のフィルターと複数のフィルタの値を指定できます。

  • フィルタの値には、ワイルドカードを使用することもできます。アスタリスク (*) は 0 個以上の文字、クエスチョンマーク (?) は 0 文字または 1 文字にマッチングします。

  • フィルタの値は大文字と小文字が区別されます。

  • 検索には、ワイルドカード文字のリテラル値を含めることができます。ただ、文字の前にバックスラッシュを使用してエスケープする必要があります。たとえば、\*amazon\?\\ という値では、リテラル文字列 *amazon?\ が検索されます。

サポートされているフィルタ

各 Amazon EC2 リソースでサポートされているフィルタを確認するには、次のドキュメントを参照してください。

例: 単一のフィルタを指定する

describe-instances を使用して Amazon EC2 インスタンスを一覧表示できます。フィルタを使用しないと、レスポンスには、すべてのリソースに関する情報が含まれます。次のコマンドを使用して、実行中のインスタンスのみを出力に含めることができます。

aws ec2 describe-instances --filters Name=instance-state-name,Values=running

実行中のインスタンスのインスタンス ID のみを一覧表示するには、次のように --query パラメータを追加します。

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query "Reservations[*].Instances[*].InstanceId" --output text

出力例を次に示します。

i-0ef1f57f78d4775a4 i-0626d4edd54f1286d i-04a636d18e83cfacb

例: 複数のフィルタまたはフィルタ値の指定

複数のフィルタまたは複数のフィルタ値を指定する場合、リソースはすべてのフィルタに一致して結果に含める必要があります。

次のコマンドを使用すると、タイプが m5.large または m5d.large のいずれかであるすべてのインスタンスを一覧表示できます。

aws ec2 describe-instances --filters Name=instance-type,Values=m5.large,m5d.large

次のコマンドを使用して、タイプが t2.micro であるすべての停止したインスタンスを一覧表示できます。

aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped Name=instance-type,Values=t2.micro

例: フィルタ値でのワイルドカードの使用

describe-snapshots を使用して EBS スナップショットを記述するときに、description フィルタのフィルタ値として database を指定した場合、コマンドは記述が「database」であるスナップショットのみを返します。

aws ec2 describe-snapshots --filters Name=description,Values=database

ワイルドカード * は、ゼロ文字以上と一致します。フィルタ値として *database* を指定すると、このコマンドは記述に database という単語を含むスナップショットのみを返します。

aws ec2 describe-snapshots --filters Name=description,Values=*database*

ワイルドカード ? は厳密に 1 文字に一致します。database? をフィルタ値に指定した場合、コマンドは、記述が「database」または「database」の後に 1 文字続くスナップショットのみを返します。

aws ec2 describe-snapshots --filters Name=description,Values=database?

database???? を指定すると、コマンドは、記述が「database」の後に最大 4 文字続くスナップショットだけを返します。「database」の後に 5 文字以上続く記述は除外されます。

aws ec2 describe-snapshots --filters Name=description,Values=database????

例: 日付に基づくフィルタリング

AWS CLI では、JMesPath を使用して、式を使用した結果をフィルタリングできます。たとえば、次の describe-snapshots コマンドは、指定された日付 (2020-03-31 で表記) より前に AWS アカウントによって作成されたすべてのスナップショット (123456789012 で表記) の ID を表示します。所有者を指定しない場合、結果にはすべてのパブリックスナップショットが含まれます。

aws ec2 describe-snapshots --filters Name=owner-id,Values=123456789012 --query "Snapshots[?(StartTime<=`2020-03-31`)].[SnapshotId]" --output text

次のコマンドは、指定した日付範囲で作成されたすべてのスナップショットの ID を表示します。

aws ec2 describe-snapshots --filters Name=owner-id,Values=123456789012 --query "Snapshots[?(StartTime>=`2019-01-01`) && (StartTime<=`2019-12-31`)].[SnapshotId]" --output text

タグに基づくフィルタリング

タグに従ってリソースのリストをフィルタリングする方法の例については、「コマンドラインによるタグの使用」を参照してください。