
AWS CLI コマンドの基本操作を EC2 インスタンスの情報取得で試してみた
はじめに
最近、AWS CLI で AWS 環境の設定や状態を確認する機会が増えてきました。
これまではマネジメントコンソールから確認することが多かったのですが、AWS CLI でも様々な情報を取得できるため、どのようなコマンドがあるのか、実際に操作しながら理解を深めたいと思いました。
そこで今回は、AWS CLI コマンドの操作に慣れることを目的に、EC2 インスタンスの情報取得や絞り込み、出力形式の変更などを試してみます。
検証環境
AWS CLI(aws-cli/2.38.4 Python/3.14.6 Darwin/25.6.0 exe/arm64)
リージョン:東京(ap-northeast-1)
AWS CLI の認証設定済みの検証環境
AWS CLI の実行環境を確認する
まずは AWS CLI のバージョンを確認します。
$ aws --version
aws-cli/2.38.4 Python/3.14.6 Darwin/25.6.0 exe/arm64
バージョンが表示され、AWS CLI を使用できることが確認できました。
続いて、利用可能なプロファイルを確認します。
$ aws configure list-profiles
今回の環境ではプロファイルは何も表示されませんでした。
ただし、プロファイルが表示されなくても、環境変数や IAM ロール (EC2 インスタンスプロファイルなど) 、IAM Identity Center、CloudShell の認証情報など、別の方法で認証情報が提供されている場合があります。
そこで、現在使用している認証情報の情報 (呼び出し元) を確認します。
$ aws sts get-caller-identity
{
"UserId": "AIDAXXXXXXXXXXXXXXXXX",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/example-user"
}
実行すると、以下の 3 項目を取得できました。
- UserId:実行者を識別する ID
- Account:AWS アカウント ID
- Arn:実行者の ARN
これにより、現在どの AWS アカウントの認証情報を使用しているのかを確認できました。
EC2 インスタンスの情報を取得する
続いて、EC2 インスタンスの情報を取得してみます。
$ aws ec2 describe-instances --region ap-northeast-1 --query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name]' --output table
------------------------------------------------
| DescribeInstances |
+----------------------+------------+----------+
| i-xxxxxxxxxxxxxxxx | t2.micro | stopped |
| i-xxxxxxxxxxxxxxxx | t2.micro | stopped |
| i-xxxxxxxxxxxxxxxx | t3.micro | stopped |
| i-xxxxxxxxxxxxxxxx | t3.large | running |
+----------------------+------------+----------+
今回使用したオプションは以下のとおりです。
| オプション | 内容 |
|---|---|
| --region | 対象リージョンを指定 |
| --query | 取得結果から表示する項目を抽出 |
| --output | 出力形式を指定 |
--query では、JMESPath というクエリ言語を使用します。
今回のクエリでは、各 EC2 インスタンスのインスタンス ID、インスタンスタイプ、状態を取り出しています。
なお、最初は State.Name を誤って State,Name と入力してしまい、以下のエラーが発生しました。
aws: [ERROR]: Row should have 1 elements, instead it has 2
. を , と書き間違えたことで、State と Name が別々の項目として扱われ、Stateオブフェクト全体が取得されてしまいました。その結果、表形式への変換時にエラーが発生しました。
State.Name に修正したところ、インスタンスの状態を正常に表示できました。
起動中の EC2 インスタンスだけを取得する
次は --filters を使用して、起動中の EC2 インスタンスだけを取得してみます。
$ aws ec2 describe-instances --region ap-northeast-1 --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name]' --output table
------------------------------------------------
| DescribeInstances |
+----------------------+------------+----------+
| i-xxxxxxxxxxxxxxxx | t3.large | running |
+----------------------+------------+----------+
先ほどのコマンドに以下を追加しました。
--filters "Name=instance-state-name,Values=running"
ここで気になったのは、--filters と --query の違いです。
- --filters:AWS サービス側で条件に一致するデータを絞り込む
- --query:取得したデータを AWS CLI 側で加工・抽出する
今回の場合、--filters で起動中のインスタンスに対象を絞り、--query で表示する項目を指定しています。
似た役割に見えますが、処理される場所や目的が異なることを理解できました。
出力形式を比較してみる
最後に、--output オプションを変更して出力形式の違いを確認します。
先ほどのコマンドの --output table を json と text に変更して、それぞれを実行しました。
$ aws ec2 describe-instances --region ap-northeast-1 --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name]' --output json
[
[
"i-xxxxxxxxxxxxxxxx",
"t3.large",
"running"
]
]
$ aws ec2 describe-instances --region ap-northeast-1 --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name]' --output text
i-xxxxxxxxxxxxxxxx t3.large running
| 出力形式 | 表示の特徴 |
|---|---|
| table | 罫線付きの表形式で表示される |
| json | JSON 形式でデータの構造を確認できる |
| text | タブ区切りのテキストで表示される |
JSON 形式では、配列や文字列の構造を確認できました。
一方、text 形式では、JSON のような角括弧やダブルクォーテーションがなくなり、今回指定した 3 項目がタブ区切りで並んで表示されました。
結果を目視で確認するときは table 形式、データの構造を確認するときは json 形式、シェルコマンドなどで加工するときは text 形式、といった使い分けができそうです。
また、全てのインスタンスを取得し JSON 形式で確認していた際、画面の最後に (END) と表示され、コマンドが入力できなくなりました。これはページャーが起動している状態で、q キーを押すとコマンド入力画面に戻れました。
まとめ
今回は、AWS CLI で EC2 インスタンスの情報を取得しながら、基本的なオプションを試してみました。
特に、--filters と --query の違いや、--output による表示形式の変更について、実際に操作することで理解を深められました。
また、コマンドの入力ミスによるエラーも経験し、クエリの記述方法や出力データの構造を確認することの重要性を感じました。
参考資料
- AWS CLI Command Reference - describe-instances
- Filtering output in the AWS CLI
- Setting the output format in the AWS CLI
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、 IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイトをぜひご覧ください。
※2026 年 1 月 アノテーション㈱から社名変更しました。








