Amazon EC2 リソースの検索
Amazon EC2 コンソールを使用して、一部のタイプのリソースのリストを取得できます。対応するコマンドまたは API アクションを使用して、各タイプのリソースのリストを取得できます。リソースが多い場合は、所定の条件に一致するリソースのみを表示、または非表示にするように結果をフィルタリングすることができます。
コンソールを使用したリソースの一覧表示およびフィルタリング
コンソールを使用したリソースの一覧表示
コンソールを使用して、最も一般的に使用される Amazon EC2 リソースタイプを表示できます。その他のリソースを表示するには、コマンドラインインターフェイスまたは API アクションを使用します。
コンソールを使用して EC2 リソースをリスト表示するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
Amazon EC2 リソースは AWS リージョンに固有です。ナビゲーションバーで、[リージョン] セレクタからリージョンを選択します。
-
ナビゲーションペインで、リソースタイプに対応するオプションを選択します。例えば、すべてのインスタンスを一覧表示するには、[インスタンス] を選択します。
コンソールを使用したリソースのフィルタリング
リソースリストをフィルタリングするには
-
ナビゲーションペインで、リソースタイプを選択します ([Instances] など)。
-
検索フィールドを選択します。
-
リストからフィルターを選択します。
-
= (等しい))、などの演算子を選択します。一部の属性では、他の演算子を選択することもできます。すべての画面で演算子が選択できるわけではないことに注意してください。
-
フィルター値を選択します。
-
選択したフィルタを編集するには、フィルタートークン (青いボックス) を選択し、必要な編集を行った上で [Apply] (適用) をクリックします。すべての画面で、選択したフィルターの編集がサポートされているわけではないことに注意してください。
-
完了したら、フィルターを削除します。
サポートされているフィルタ
Amazon EC2 コンソールでは、2 種類のフィルタリングがサポートされています。
-
API フィルタリングはサーバー側で行われます。このフィルタリングは API コールに適用され、サーバーから返されるリソースの数が減少します。これにより、大量のリソースにわたる迅速なフィルタリングが可能になり、サーバーとブラウザ間のデータ転送時間とコストを削減できます。API に関するフィルタリングでは、[=] (等しい) および [:] (含む) の演算子が使用できます。また、常に大文字と小文字が区別されます。
-
クライアントのフィルタリング は、クライアント側で行われます。これにより、ブラウザで既に使用可能なデータ (つまり、APIによって既に返されたデータ) をフィルタリングできます。クライアントフィルタリングは、ブラウザ内の小さなデータセットまでフィルタリングするために、API フィルタと併用してうまく機能します。[=] (等しい) および [:] (含む) の演算子に加え、クライアントフィルタリングでは、[>=] (以上) のような範囲演算子や、[! =] (等しくない) などの否定 (反転) 演算子も使用することができます。
Amazon EC2 コンソールでは、次のタイプの検索がサポートされます。
- キーワードによる検索
-
キーワードによる検索は、検索する属性やタグキーを指定せずに、リソースの属性とタグの全体から値を検索できる、フリーテキスト検索です。
注記
すべてのキーワード検索では、クライアントフィルタリングが使用されます。
キーワードで検索するには、検索フィールドに検索したいキーワードを入力するか貼り付けて、Enter を選択します。例えば
123
を検索すると、IP アドレス、インスタンス ID、VPC ID、AMI ID などの属性の中、あるいは Name などのタグの中に 123 が含まれる、すべてのインスタンスが一致します。フリーテキスト検索で予期しない一致が返された場合は、追加のフィルタを適用します。 - 属性による検索
-
属性による検索では、すべてのリソースで特定の属性を検索できます。
注記
属性検索では、選択した属性に応じて、API フィルタリングまたはクライアントフィルタリングが使用されます。属性検索を実行すると、属性はそれに応じてグループ化されます。
例えば、すべてのインスタンスの [インスタンスの状態] 属性を検索して、
stopped
状態にあるインスタンスのみを取得することができます。目的:-
インスタンス画面の検索フィールドで、「
Instance state
」の入力を開始します。文字を入力すると、[Instance state (インスタンスの状態)] には、[API filters (API フィルター)] と [Client filters (クライアントフィルター)] の 2 種類のフィルターが表示されます 。 -
サーバー側で検索するには、[API filters (API フィルター)] で [Instance state (インスタンスの状態)] を選択します。クライアント側で検索するには、[Client filters (クライアントフィルター)] で [Instance state (client) (インスタンスの状態 (クライアント))] を選択します。
選択した属性に使用可能な演算子のリストが表示されます。
-
[=] (等しい) 演算子をクリックします。
選択された属性と演算子に適合する可能性のある、値のリストが表示されます。
-
リストから [停止] を選択します。
-
- タグによる検索
-
タグによる検索では、現在表示されているテーブル内のリソースを、タグキーまたはタグ値でフィルタリングできます。
タグ検索では、[Preferences] (設定) ウィンドウの設定に応じて、API フィルタリングまたはクライアントフィルタリングのどちらかが使用されます。
タグに対し API フィルタリングが使用されるようにするには
-
[Preferences] (設定) ウインドウを開きます。
-
[Use regular expression matching] (正規表現で検索する) チェックボックスをオフにします。このチェックボックスがオンの場合、クライアントのフィルタリングが実行されます。
-
[Use case sensitive matching] (大文字と小文字を区別する) チェックボックスをオンにします。このチェックボックスがオフの場合、クライアントのフィルタリングが実行されます。
-
[確認] を選択します。
タグに関する検索では以下の値を使用できます。
-
[(empty)] ((空)) – 指定したタグキーを持ち、かつタグ値を持たないすべてのリソースを検索します。
-
[All values] (すべての値) – 指定したタグキーと任意のタグ値を持つすべてのリソースを検索します。
-
[Not tagged] (タグ付けなし) – 指定したタグキーを持たないすべてのリソースを検索します。
-
[The displayed value] (表示された値) – 指定したタグキーと指定したタグ値を持つすべてのリソースを検索します。
-
次のテクニックを使用して、検索の精度を高めたり、絞り込んだりできます。
- 逆順検索
-
逆検索では、指定した値に一致しないリソースを検索できます。[Instances] (インスタンス) 画面および [AMIs] 画面で逆検索を実行するには、[!=] (等しくない) または [!:] (含まない) 演算子を選択した上で、値を選択します。他の場面では、検索キーワードのプレフィックスに感嘆符 (!) を付けることによって逆検索が実行されます。
注記
逆検索は、クライアントフィルタのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。
例えば、すべてのインスタンスの [インスタンスの状態] 属性を検索して、
terminated
状態にあるインスタンスをすべて除外することができます。目的:-
インスタンス画面の検索フィールドで、「
Instance state
」の入力を開始します。文字を入力すると、[Instance state (インスタンスの状態)] には、[API filters (API フィルター)] と [Client filters (クライアントフィルター)] の 2 種類のフィルターが表示されます 。 -
[Client filters] (クライアントフィルター) で、[Instance state (client)] (インスタンスの状態 (クライアント)) を選択します。逆検索は、クライアントフィルタでのみサポートされます。
選択した属性に使用可能な演算子のリストが表示されます。
-
[! =] (等しくない) を選択した上で、[terminated] (終了) をクリックします。
インスタンス状態の属性に基づいてインスタンスをフィルタリングするには、[Instance state (インスタンスの状態)] 列の検索アイコン ( ) を使用することもできます。プラス記号 (+) が付いた検索アイコンは、その属性に一致するすべてのインスタンスを表示します。マイナス記号 (-) が付いた検索アイコンは、その属性に一致するすべてのインスタンスを除外します。
もう 1 つ逆検索の例を挙げます。
launch-wizard-1
という名前のセキュリティグループが割り当てられていないすべてのインスタンスを一覧表示するには、[Client filters] (クライアントフィルター) で、[!=] を選択した上で検索バーにlaunch-wizard-1
と入力し、[Security group name] (セキュリティグループ名) 属性による検索を行います。 -
- 部分検索
-
部分検索では、部分文字列値を検索できます。部分検索を実行するには、検索するキーワードの一部だけを入力します。[Instances] (インスタンス) 画面、および [AMIs] 画面では、[:] (含む) 演算子を使用する場合のみ部分検索ができます。他の画面では、クライアントフィルター属性を選択して、キーワードの一部だけを直接入力して検索できます。例えば、[Instance type] (インスタンスタイプ) 画面で
t2.micro
、t2.small
、t2.medium
のすべてのインスタンスを検索するには、キーワードにt2
を入力し、[Instance Type] (インスタンスタイプ) 属性で検索します。 - 正規表現検索
-
正規表現検索を使用するには、[Preferences ] (設定) ウィンドウで、 [Use regular expression matching] (正規表現で検索する) をオンにする必要があります。
フィールド内の値を特定のパターンと一致させる場合、正規表現が役立ちます。例えば、
s
で始まる値を検索するには、^s
を検索します。xyz
で終わる値を検索するには、xyz$
を検索します。または、1 つ以上の文字が続く数字で始まる値を検索するには、[0-9]+.*
を検索します。注記
正規表現検索は、クライアントフィルタでのキーワード検索および属性検索でのみサポートされます。API フィルタの属性検索ではサポートされていません。
- 大文字と小文字を区別する検索
-
大文字と小文字を区別する検索を使用するには、[Preferences] (設定) ウィンドウで、[Use case sensitive matching] (大文字と小文字を区別する) のチェックボックスをオンにする必要があります。大文字と小文字を区別する設定は、クライアントフィルタとタグフィルタにのみ適用されます。
注記
API フィルターでは、常に大文字と小文字が区別されます。
- ワイルドカード検索
-
0 文字以上の文字に一致させるには、
*
ワイルドカードを使用します。0 文字または 1 文字に一致させるには、?
ワイルドカードを使用します。例えば、prod
、prods
、およびproduction
の値を含むデータセットの場合、prod*
での検索はすべての値と一致しますが、prod?
での検索はprod
とprods
にのみ一致します。リテラル値を使用するには、バックスラッシュ (\) でエスケープします。例えば、「prod\*
」 は「prod*
」と一致します。注記
ワイルドカード検索は、API フィルタの属性およびタグ検索でのみサポートされます。これは、キーワード検索、ならびに、クライアントフィルタでの属性とタグによる検索では使用できません。
- 検索を組み合わせる
一般に、同じ属性を持つ複数のフィルタは、
OR
で自動的に結合されます。例えば、Instance State : Running
およびInstance State : Stopped
を検索すると、実行中または停止中のすべてのインスタンスが返されます。AND
で検索を結合するには、さまざまな属性を検索します。例えば、Instance State : Running
およびInstance Type : c4.large
を検索すると、タイプがc4.large
で、かつ実行状態のインスタンスだけが返されます。
CLI と API を使用した一覧表示およびフィルタリング
リソースタイプごとに、そのタイプのリソースの一覧表示に使用する CLI コマンドまたは API アクションが用意されています。結果として得られるリソースのリストは長くなる場合があるため、特定の条件に一致するリソースのみを含めるように結果をフィルタリングする方がより速く、より便利です。
フィルタリングの考慮事項
-
1 回のリクエストで、フィルターごとに最大 50 種類のフィルターと最大 200 個の値を指定できます。
-
フィルターでは、最大 255 文字を使用できます。
-
フィルタの値には、ワイルドカードを使用することもできます。アスタリスク (*) は 0 個以上の文字、クエスチョンマーク (?) は 0 文字または 1 文字にマッチングします。
-
フィルタの値は大文字と小文字が区別されます。
-
検索には、ワイルドカード文字のリテラル値を含めることができます。ただ、文字の前にバックスラッシュを使用してエスケープする必要があります。例えば、
\*amazon\?\\
という値では、リテラル文字列*amazon?\
が検索されます。
サポートされているフィルタ
各 Amazon EC2 リソースでサポートされているフィルタを確認するには、次のドキュメントを参照してください。
-
AWS CLI: AWS CLI Command Reference-Amazon EC2 の
describe
コマンド。 -
Tools for Windows PowerShell: AWS Tools for PowerShell Cmdlet Reference-Amazon EC2 の
Get
コマンド。 -
Query API: Amazon EC2 API Reference の
Describe
API アクション。
例: 単一のフィルタを指定する
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 スナップショットを記述するときに、database
フィルタのフィルタ値として 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
タグに基づくフィルタリング
タグに従ってリソースのリストをフィルタリングする方法の例については、「タグによる Amazon EC2 リソースのフィルタリング」を参照してください。
Amazon EC2 Global View を使用して、リージョン間のリソースを表示する
Amazon EC2 Global View では、単一の AWS リージョン、または単一のコンソールで同時に複数のリージョンの Amazon EC2 リソースおよび Amazon VPC リソースを表示および検索できます。詳細については、「Amazon EC2 Global View を使用して、リージョン間のリソースを表示する」を参照してください。