

# Amazon EC2 リソースの検索
<a name="Using_Filtering"></a>

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

**Topics**
+ [コンソールの手順](#advancedsearch)
+ [コマンドラインの例](#Filtering_Resources_CLI)
+ [グローバルビュー (クロスリージョン)](#global-view-intro)

## コンソールを使用したリソースの一覧表示およびフィルタリング
<a name="advancedsearch"></a>

**Contents**
+ [コンソールを使用したリソースの一覧表示](#listing-resources)
+ [コンソールを使用したリソースのフィルタリング](#console-filter)
  + [サポートされているフィルタ](#console-filters)
+ [コンソールを使用してフィルターセットの保存](#saved-filter-sets-in-the-ec2-console)
  + [主な特徴](#saved-filter-sets-key-features)
  + [フィルターセットを作成](#create-saved-filter-sets)
  + [フィルターセットを変更](#modify-saved-filter-sets)
  + [フィルターセットを削除](#delete-saved-filter-sets)

### コンソールを使用したリソースの一覧表示
<a name="listing-resources"></a>

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

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

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. Amazon EC2 リソースは AWS リージョンに固有です。ナビゲーションバーで、**[リージョン]** セレクタからリージョンを選択してください。  
![\[リージョンの表示\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/EC2_select_region.png)

1. ナビゲーションペインで、リソースタイプに対応するオプションを選択してください。例えば、すべてのインスタンスを一覧表示するには**[インスタンス]** を選択してください。

### コンソールを使用したリソースのフィルタリング
<a name="console-filter"></a>

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

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

1. 検索フィールドを選択してください。

1. リストからフィルターを選択してください。

1. **= (等しい)**)、などの演算子を選択してください。一部の属性では他の演算子を選択することもできます。すべての画面で演算子が選択できるわけではないことに注意してください。

1. フィルター値を選択してください。

1. 選択したフィルタを編集するにはフィルタートークン (青いボックス) を選択し、必要な編集を行った上で **[Apply]** (適用) をクリックしてください。すべての画面で、選択したフィルターの編集がサポートされているわけではないことに注意してください。  
![\[フィルターを編集します。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/filter-edit.png)

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

#### サポートされているフィルタ
<a name="console-filters"></a>

Amazon EC2 コンソールでは2 種類のフィルタリングがサポートされています。
+ *API フィルタリング*はサーバー側で行われます。このフィルタリングは API コールに適用され、サーバーから返されるリソースの数が減少します。これにより、大量のリソースにわたる迅速なフィルタリングが可能になり、サーバーとブラウザ間のデータ転送時間とコストを削減できます。API に関するフィルタリングでは**[=]** (等しい) および **[:]** (含む) の演算子が使用できます。また、常に大文字と小文字が区別されます。
+ *クライアントのフィルタリング* はクライアント側で行われます。これにより、ブラウザで既に使用可能なデータ (つまり、APIによって既に返されたデータ) をフィルタリングできます。クライアントフィルタリングはブラウザ内の小さなデータセットまでフィルタリングするために、API フィルタと併用してうまく機能します。クライアントフィルタリングは、**=** (等しい) および **:** (含む) の演算子に加えて、**>=** (以上) のような範囲演算子や、**\$1=** (等しくない) などの否定 (反転) 演算子もサポートできます。

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

**キーワードによる検索**  
キーワードによる検索は検索する属性やタグキーを指定せずに、リソースの属性とタグの全体から値を検索できる、フリーテキスト検索です。  
すべてのキーワード検索では*クライアントフィルタリング*が使用されます。
キーワードで検索するには検索フィールドに検索したいキーワードを入力するか貼り付けて、**Enter** を選択してください。例えば `123` を検索すると、IP アドレス、インスタンス ID、VPC ID、AMI ID などの属性の中、あるいは Name などのタグの中に *123* が含まれる、すべてのインスタンスが一致します。フリーテキスト検索で予期しない一致が返された場合は追加のフィルタを適用します。

**属性による検索**  
属性による検索ではすべてのリソースで特定の属性を検索できます。  
属性検索では選択した属性に応じて、*API フィルタリング*または*クライアントフィルタリング*が使用されます。属性検索を実行すると、属性はそれに応じてグループ化されます。
例えば、すべてのインスタンスの [**インスタンスの状態**] 属性を検索して、`stopped` 状態にあるインスタンスのみを取得することができます。目的:  

1. **インスタンス**画面の検索フィールドで、「`Instance state`」の入力を開始します。文字を入力すると、[**Instance state (インスタンスの状態)**] には[**API filters (API フィルター)**] と [**Client filters (クライアントフィルター)**] の 2 種類のフィルターが表示されます 。

1. サーバー側で検索するには[**API filters (API フィルター)**] で [**Instance state (インスタンスの状態)**] を選択してください。クライアント側で検索するには[**Client filters (クライアントフィルター)**] で [**Instance state (client) (インスタンスの状態 (クライアント))**] を選択してください。

   選択した属性に使用可能な演算子のリストが表示されます。

1. **[=]** (等しい) 演算子をクリックしてください。

   選択された属性と演算子に適合する可能性のある、値のリストが表示されます。

1. リストから [**停止**] を選択してください。

**タグによる検索**  
タグによる検索では現在表示されているテーブル内のリソースを、タグキーまたはタグ値でフィルタリングできます。  
タグ検索では[Preferences] (設定) ウィンドウの設定に応じて、*API フィルタリング*または*クライアントフィルタリング*のどちらかが使用されます。  

**タグに対し API フィルタリングが使用されるようにするには**

1. **[Preferences]** (設定) ウインドウを開きます。

1. **[正規表現一致を使用]** チェックボックスをオフにします。このチェックボックスがオンの場合、クライアントのフィルタリングが実行されます。

1. **[大文字と小文字を区別する一致を使用]** チェックボックスをオンにします。このチェックボックスがオフの場合、クライアントのフィルタリングが実行されます。

1. **[確認]** を選択してください。
タグに関する検索では以下の値を使用できます。  
+ **[(empty)]** ((空)) – 指定したタグキーを持ち、かつタグ値を持たないすべてのリソースを検索します。
+ **[All values]** (すべての値) – 指定したタグキーと任意のタグ値を持つすべてのリソースを検索します。
+ **[Not tagged]** (タグ付けなし) – 指定したタグキーを持たないすべてのリソースを検索します。
+ [The displayed value] (表示された値) – 指定したタグキーと指定したタグ値を持つすべてのリソースを検索します。

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

**逆順検索**  
逆検索では指定した値に一致**しない**リソースを検索できます。**[インスタンス]** 画面および **[AMI]** 画面での逆検索は、**\$1=** (等しくない) または **\$1:** (含まない) 演算子を選択してから、値を選択することで実行されます。他の場面では検索キーワードのプレフィックスに感嘆符 (\$1) を付けることによって逆検索が実行されます。  
逆検索は*クライアント*フィルタのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。
例えば、すべてのインスタンスの [**インスタンスの状態**] 属性を検索して、`terminated` 状態にあるインスタンスをすべて除外することができます。目的:  

1. **インスタンス**画面の検索フィールドで、「`Instance state`」の入力を開始します。文字を入力すると、[**Instance state (インスタンスの状態)**] には[**API filters (API フィルター)**] と [**Client filters (クライアントフィルター)**] の 2 種類のフィルターが表示されます 。

1. **[Client filters]** (クライアントフィルター) で、**[Instance state (client)]** (インスタンスの状態 (クライアント)) を選択してください。逆検索は*クライアント*フィルタでのみサポートされます。

   選択した属性に使用可能な演算子のリストが表示されます。

1. **[\$1 =]** (等しくない) を選択した上で、**[terminated]** (終了) をクリックしてください。
インスタンス状態の属性に基づいてインスタンスをフィルタリングするには[**Instance state (インスタンスの状態)**] 列の検索アイコン (![\[\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/search.png)) を使用することもできます。プラス記号 (**\$1**) が付いた検索アイコンはその属性に*一致する*すべてのインスタンスを表示します。マイナス記号 (**-**) が付いた検索アイコンはその属性に一致するすべてのインスタンスを*除外*します。  
もう 1 つ逆検索の例を挙げます。`launch-wizard-1` という名前のセキュリティグループが割り当てられて**いない**すべてのインスタンスを一覧表示するには**[Client filters]** (クライアントフィルター) で、**[\$1=]** を選択した上で検索バーに `launch-wizard-1` と入力し、**[Security group name]** (セキュリティグループ名) 属性による検索を行います。

**部分検索**  
部分検索では部分文字列値を検索できます。部分検索を実行するには検索するキーワードの一部だけを入力してください。**[Instances]** (インスタンス) 画面、および **[AMI]** 画面では**[:]** (含む) 演算子を使用する場合のみ部分検索ができます。他の画面ではクライアントフィルター属性を選択して、キーワードの一部だけを直接入力して検索できます。例えば、**[Instance type]** (インスタンスタイプ) 画面で `t2.micro`、`t2.small`、`t2.medium` のすべてのインスタンスを検索するにはキーワードに `t2` を入力し、**[Instance Type]** (インスタンスタイプ) 属性で検索します。

**正規表現検索**  
正規表現検索を使用するには**[設定]** ウィンドウの **[正規表現一致を使用]** チェックボックスをオンにする必要があります。  
フィールド内の値を特定のパターンと一致させる場合、正規表現が役立ちます。例えば、`s` で始まる値を検索するには`^s` を検索します。`xyz` で終わる値を検索するには`xyz$` を検索します。または1 つ以上の文字が続く数字で始まる値を検索するには`[0-9]+.*` を検索します。  
正規表現検索はクライアントフィルタでのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。

**大文字と小文字を区別する検索**  
大文字と小文字を区別する検索を使用するには**[設定]** ウィンドウの **[大文字と小文字を区別する一致を使用]** チェックボックスをオンにする必要があります。大文字と小文字を区別する設定はクライアントフィルタとタグフィルタにのみ適用されます。  
API フィルターでは常に大文字と小文字が区別されます。

**ワイルドカード検索**  
0 文字以上の文字に一致させるには`*` ワイルドカードを使用します。0 文字または 1 文字に一致させるには`?` ワイルドカードを使用します。例えば、`prod`、`prods`、および `production` の値を含むデータセットの場合、`prod*` での検索はすべての値と一致しますが、`prod?` での検索は `prod` と `prods` にのみ一致します。リテラル値を使用するにはバックスラッシュ (\$1) でエスケープします。例えば、「`prod\*`」 は「`prod*`」と一致します。  
ワイルドカード検索はAPI フィルタの属性およびタグ検索でのみサポートされます。これはキーワード検索、ならびに、クライアントフィルタでの属性とタグによる検索では使用できません。

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

### コンソールを使用してフィルターセットの保存
<a name="saved-filter-sets-in-the-ec2-console"></a>

*保存されたフィルターセット*はAmazon EC2 リソースを効率的に表示するために作成して再利用できるカスタマイズされたフィルターのグループです。この機能によってワークフローが合理化され、特定のリソースビューにすばやくアクセスできるようになります。

保存されたフィルターセットは Amazon EC2 コンソールでのみサポートされており、現在は **[ボリューム]** ページにのみ利用できます。

#### 主な特徴
<a name="saved-filter-sets-key-features"></a>
+ **カスタマイズ:** ニーズに合わせてフィルターセットを作成します。例えば、フィルターセットを作成し、指定した日付以降に作成された `gp3` ボリュームのみを表示できます。
+ **デフォルトフィルター:** ページにデフォルトのフィルターセットを設定すると、ページに移動するとデフォルトフィルターが自動的に適用されます。デフォルトが設定されていない場合、フィルターは適用されません。
+ **適用が簡単:** 保存したフィルターセットを選択し、すぐに適用します。次に Amazon EC2 は関連するリソースを表示し、アクティブなフィルターは青いトークンで示されます。
+ **柔軟性:** 必要に応じてフィルターセットを作成、変更、削除します。

#### フィルターセットを作成
<a name="create-saved-filter-sets"></a>

**新規のフィルターセットを作成する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインの [**ボリューム**] を選択します。
**注記**  
現在、保存されたフィルターセットは **[ボリューム]** でのみ利用可能です。

1. 検索フィールドでフィルターセットのフィルターを選択してください。

1. **[フィルターをクリア]** ボタンの横にある矢印を選択し、**[新規のフィルターセットを保存]** を選択してください。

1. **[フィルターセットの保存]** ウィンドウで次の操作を行います。

   1. **[フィルターセット名]** にはフィルターセットの名前を入力してください。

   1. (オプション) **[フィルターセットの説明]** にはフィルターセットの説明を入力してください。

   1. (オプション) フィルターセットをデフォルトフィルターとして設定するには**[デフォルトとして設定]** チェックボックスをオンにします。
**注記**  
コンソールページを開くたびに、デフォルトフィルターが自動的に適用されます。

   1. [**Save**] を選択してください。

#### フィルターセットを変更
<a name="modify-saved-filter-sets"></a>

**フィルターを変更する方法**

1. **[保存されたフィルターセット]** リストから変更するフィルターを選択してください。

1. フィルターを追加するには検索フィールドでフィルターセットに追加するフィルターを選択してください。セットのフィルターを削除するにはフィルタートークンの **[X]** を選択してください。

1. **[フィルターをクリア]** ボタンの横にある矢印を選択し、**[フィルターセットの変更]** を選択してください。

1. **[フィルターセットの変更]** ウィンドウで次の操作を行います。

   1. (オプション) フィルターセットをデフォルトフィルターとして設定するには**[デフォルトとして設定]** チェックボックスをオンにします。
**注記**  
コンソールページを開くたびに、デフォルトフィルターが自動的に適用されます。

   1. **Modify** を選択してください。

#### フィルターセットを削除
<a name="delete-saved-filter-sets"></a>

**フィルターを削除する方法**

1. **[保存されたフィルターセット]** リストから削除するフィルターを選択してください。

1. **[フィルターをクリア]** ボタンの横にある矢印を選択し、**[フィルターセットの削除]** を選択してください。

1. **[フィルターセットの削除]** ウィンドウでフィルターを確認して削除するフィルターを確定したら、**[削除]** を選択してください。

## コマンドラインを使用した一覧表示およびフィルタリング
<a name="Filtering_Resources_CLI"></a>

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

**フィルタリングの考慮事項**
+ 1 回のリクエストで、フィルターごとに最大 50 種類のフィルターと最大 200 個の値を指定できます。
+ フィルターでは最大 255 文字を使用できます。
+ フィルタの値にはワイルドカードを使用することもできます。アスタリスク (\$1) は 0 個以上の文字、クエスチョンマーク (?) は 0 文字または 1 文字にマッチングします。
+ フィルタの値は大文字と小文字が区別されます。
+ 検索にはワイルドカード文字のリテラル値を含めることができます。ただ、文字の前にバックスラッシュを使用してエスケープする必要があります。例えば、`\*amazon\?\\` という値ではリテラル文字列 `*amazon?\` が検索されます。
+ フィルター値として を指定することはできませんnull。代わりに、クライアント側のフィルタリングを使用します。例えば、次のコマンドは **--query**オプションを使用して、キーペアなしで起動されたインスタンスの IDs を返します。

  ```
  aws ec2 describe-instances \
      --query 'Reservations[*].Instances[?!not_null(KeyName)].InstanceId' \
      --output text
  ```

------
#### [ AWS CLI ]

**Example 例: 単一のフィルタを指定する**  
[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) を使用して Amazon EC2 インスタンスを一覧表示できます。フィルタを使用しないと、レスポンスにはすべてのリソースに関する情報が含まれます。次のコマンドを使用することで、実行中のインスタンスのみを出力に含めることができます。  

```
--filters Name=instance-state-name,Values=running
```
実行中のインスタンスのインスタンス ID のみを一覧表示するには次のように `--query` オプションを追加します。  

```
--query "Reservations[*].Instances[*].InstanceId"
```

**Example 例: 複数のフィルタまたはフィルタ値の指定**  
複数のフィルタまたは複数のフィルタ値を指定する場合は、リソースが、出力に追加されるすべてのフィルタと一致しなくてはなりません。  
次のオプションを使用すると、タイプが `m5.large` または `m5d.large` のいずれかであるすべてのインスタンスを一覧表示できます。  

```
--filters Name=instance-type,Values=m5.large,m5d.large
```
次のオプションを使用して、タイプが `t2.micro` であるすべての停止したインスタンスを一覧表示できます。  

```
--filters Name=instance-state-name,Values=stopped Name=instance-type,Values=t2.micro
```

**Example 例: フィルタ値でのワイルドカードの使用**  
次のオプションを [describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) と共に使用すると、説明が「データベース」であるスナップショットのみを返すことができます。  

```
--filters Name=description,Values=database
```
ワイルドカード \$1 はゼロ文字以上と一致します。次のオプションを使用すると、説明に database という単語が含まれるスナップショットのみを返すことができます。  

```
--filters Name=description,Values=*database*
```
ワイルドカード ? は厳密に 1 文字に一致します。次のオプションを使用すると、説明が「database」または「database」とその後に 1 文字が続くスナップショットのみを返すことができます。  

```
--filters Name=description,Values=database?
```
次のオプションを使用すると、説明が「データベース」とその後に最大 4 文字が続くスナップショットのみを返すことができます。「database」の後に 5 文字以上続く記述は除外されます。  

```
--filters Name=description,Values=database????
```

**Example 例: 日付に基づくフィルタリング**  
AWS CLI では JMESPath を使用して、式を使用した結果をフィルタリングできます。例えば、次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) コマンドを実行すると、指定した AWS アカウントが指定した日より前に作成したすべてのスナップショットの ID が表示されます。所有者を指定しない場合、結果にはすべてのパブリックスナップショットが含まれます。  

```
aws ec2 describe-snapshots \
    --filters Name=owner-id,Values=123456789012 \
    --query "Snapshots[?(StartTime<='2024-03-31')].[SnapshotId]" \
    --output text
```
次の例は、指定した日付の範囲内に作成された、すべてのスナップショットの ID を表示します。  

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

**例: タグに基づくフィルタリング**  
タグに従ってリソースのリストをフィルタリングする方法の例については「[タグによる Amazon EC2 リソースのフィルタリング](filtering-the-list-by-tag.md)」を参照してください。

------
#### [ PowerShell ]

**Example 例: 単一のフィルタを指定する**  
[https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) を使用して Amazon EC2 インスタンスを一覧表示できます。フィルタを使用しないと、レスポンスにはすべてのリソースに関する情報が含まれます。次のパラメータを使用すると、出力に実行中のインスタンスのみを含めることができます。  

```
-Filter @{Name="instance-state-name"; Values="running"}
```

次の例は、実行中のインスタンスのインスタンス ID のみを一覧表示します。

```
(Get-EC2Instance -Filter @{Name="instance-state-name"; Values="stopped"}).Instances | Select InstanceId
```

**Example 例: 複数のフィルタまたはフィルタ値の指定**  
複数のフィルタまたは複数のフィルタ値を指定する場合、リソースはすべてのフィルタに一致して結果に含める必要があります。  
次のオプションを使用すると、タイプが `m5.large` または `m5d.large` のいずれかであるすべてのインスタンスを一覧表示できます。  

```
-Filter @{Name="instance-type"; Values="m5.large", "m5d.large"}
```
次のオプションを使用して、タイプが `t2.micro` であるすべての停止したインスタンスを一覧表示できます。  

```
-Filter @{Name="instance-state-name"; Values="stopped"}, @{Name="instance-type"; Values="t2.micro"}
```

------

## Amazon EC2 Global View を使用して、リージョン間のリソースを表示する
<a name="global-view-intro"></a>

Amazon EC2 Global View では単一の AWS リージョン、または単一のコンソールで同時に複数のリージョンの Amazon EC2 リソースおよび Amazon VPC リソースを表示および検索できます。詳細については「[AWS Global View を使用して複数のリージョンにわたるリソースを表示する](global-view.md)」を参照してください。