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

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

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

高度な検索

高度な検索を使用すると、フィルタを組み合わせて正確な検索結果を得ることができます。キーワード、ユーザー定義のタグキー、事前定義のリソース属性でフィルタリングできます。

使用できる検索タイプは次のとおりです。

  • キーワードによる検索

    キーワードで検索するには、検索ボックスに検索したいキーワードを入力するか貼り付けて、Enter を選択します。たとえば、インスタンス ID を入力すれば、特定のインスタンスを検索することができます。

  • フィールドによる検索

    リソースに関連付けられたフィールド、タグ、属性で検索することもできます。たとえば、すべての停止状態のインスタンスを見つけるには、

    1. 検索ボックスで「Instance State」という文字列の入力を開始します。入力するにつれて、フィールドの候補リストが表示されます。

    2. リストから [Instance State ] を選択します。

    3. 値の候補リストから [Stopped] を選択します。

    4. さらにリストを絞り込むには、検索ボックスを選択して、より多くの検索オプションを指定します。

  • 高度な検索

    複数のフィルタを組み合わせることで、高度なクエリを作成することができます。たとえば、タグで検索して本稼働用スタックで実行中の Flying Mountain プロジェクトのインスタンスを絞り込み、次に属性で検索して、すべての t2.micro インスタンスか us-west-2a 内にあるすべてのインスタンスか、またはその両方のインスタンスを絞り込みます。

  • 逆順検索

    特定の値と一致しないリソースを検索することができます。たとえば、すべての削除されていないインスタンスを一覧表示するには、[Instance State] フィールドを、削除した値の前に感嘆符 (!) をつけて検索します。

  • 部分検索

    フィールドで検索する場合、部分的な文字列を入力すれば、その文字列が含まれたすべてのリソースをフィールドから検索することができます。たとえば、[インスタンスタイプ] を検索し、「t2」と入力すれば、すべての t2.micro、t2.small、t2.medium インスタンスを見つけることができます。

  • 正規表現

    フィールド内の値を特定のパターンと一致させる場合、正規表現が役立ちます。たとえば、Name タグで検索し、「^s.*」と入力すると、Name タグが「s」で始まるすべてのインスタンスを見つけることができます。正規表現の検索には、大文字と小文字は区別されません。

正確な検索結果が得られたら、簡単に参照できるようにその URL をブックマークできます。大量のインスタンスがある場合は、フィルタとブックマークを利用すると大幅に時間を節約できます。検索を繰り返し実行する必要はありません。

検索フィルタの結合

通常、同じキーフィールド (たとえば、tag:Name、検索、インスタンスの状態) を持つ複数のフィルタは、OR で自動的に結合されます。これは意図的な処理で、AND で結合すると、ほとんどのフィルタが論理的でなくなることがその理由です。たとえば、Instance State=running AND Instance State=stopped で検索した場合、0 件の検索が返されます。ほとんどの場合、詳細検索を行うには、異なるキーフィールドでは補完的な検索用語を使用します。ここでは、AND ルールが自動的に適用されます。tag: Name:=All values and tag:Instance State=running を検索した場合、これらの両方の条件を満たす検索結果が取得されます。検索結果を調整するには、結果が要件と一致するまで、単に文字列内のフィルタを 1 つずつ削除します。

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

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

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

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

  2. ナビゲーションペインで、リソースに対応するオプションを選択します ([AMIs] や [Instances] など)。

    
                     Amazon EC2 コンソールのナビゲーションペイン
  3. このページには、すべての利用可能なリソースが表示されます。

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

Amazon EC2 コンソールを使用して、最も一般的に使用されるリソースタイプについてフィルタリングとソートを実行できます。たとえば、インスタンスページの検索バーを使用して、タグ、属性、キーワードでインスタンスをソートすることができます。

また、各ページの検索フィールドを使用して、特定の属性または値を持つリソースを検索できます。文字列の一部または複数の文字列に基づいて検索するために、正規表現を使用できます。たとえば、MySG セキュリティグループを使用するすべてのインスタンスを検索するには、検索フィールドに「MySG」と入力します。その結果には、文字列の一部に MySG を含むすべての値が含まれます。たとえば、MySG2 MySG3 が該当します。結果を MySG だけに絞り込むには、検索フィールドに「\bMySG\b」と入力します。タイプが m1.small または m1.large であるすべてのインスタンスを一覧表示するには、検索フィールドに「m1.small|m1.large」と入力します。

us-east-1bアベイラビリティーゾーンでステータスが available のボリュームをリスト表示するには

  1. ナビゲーションペインの [Volumes] を選択します。

  2. 検索ボックスをクリックして、メニューの [アタッチメントのステータス] を選択し、[デタッチ済み] を選択します。(デタッチされたボリュームは、同じアベイラビリティーゾーン内のインスタンスにアタッチすることができます)。

  3. 検索ボックスを再びクリックして、[State] を選択し、[Available] を選択します。

  4. 検索ボックスを再びクリックして、[アベイラビリティーゾーン] を選択し、[us-east-1b] を選択します。

  5. この基準に一致するボリュームが表示されます。

Amazon EBS-Backed のパブリック 64 ビット Linux AMI をリストするには

  1. ナビゲーションペインで [AMIs] を選択します。

  2. [Filter] ペインの [Filter] リストで、[Public images]、[EBS images]、[Windows] の順にクリックします。

  3. 検索フィールドに x86_64 と入力します。

  4. この基準に一致する AMI が表示されます。

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」であるスナップショットのみを返します。

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

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

タグに従ってリソースのリストをフィルタリングする方法の例については、「CLI または API でのタグの操作」を参照してください。