【AWS CLI入門】CLIの出力形式json・table・textの違いと使い分け方を徹底解説
生徒
「AWS CLIを使っていると、jsonとかtableとかtextって表示形式が変わりますよね。これって何が違うんですか?」
先生
「AWS CLIでは、コマンドの実行結果をjson、table、textという出力形式で表示できます。それぞれ用途が違います。」
生徒
「どの出力形式を使えばいいのか、いつも迷ってしまいます。」
先生
「それでは、AWS CLIの出力形式の違いと使い分け方を、初心者向けに順番に見ていきましょう。」
1. AWS CLIの出力形式とは
AWSをコマンドラインから操作できるツールが、AWS CLIです。例えば、EC2の一覧取得やS3バケットの確認などをターミナルから実行できます。
AWS CLIでは、コマンドの実行結果をさまざまな形式で表示できます。代表的な出力形式は次の三つです。
- json形式
- table形式
- text形式
これらの出力形式は、--outputオプションを使って指定します。AWS CLIの出力形式を正しく理解することで、作業効率や自動化の精度が大きく向上します。
2. json形式の特徴とメリット
json形式は、AWS CLIのデフォルト出力形式です。構造化されたデータとして結果が表示されるため、プログラムやスクリプトとの連携に向いています。
例えば、EC2インスタンス一覧をjson形式で取得する場合は、次のように実行します。
aws ec2 describe-instances --output json
{
"Reservations": [
{
"Instances": [
{
"InstanceId": "i-0123456789abcdef0",
"InstanceType": "t2.micro"
}
]
}
]
}
json形式のメリットは、データの階層構造がそのまま保持される点です。APIレスポンスに近い形で取得できるため、jqコマンドやシェルスクリプト、Pythonなどと組み合わせた自動化に最適です。
AWS CLIの出力形式をjsonにすることで、Infrastructure as CodeやDevOpsの現場でも活用しやすくなります。
3. table形式の特徴とメリット
table形式は、人間が見やすいように整形された表形式で表示されます。AWS CLIの結果を確認するだけの場合にとても便利です。
aws ec2 describe-instances --output table
-------------------------------------
| DescribeInstances |
+----------------------+------------+
| InstanceId | i-0123456789abcdef0 |
| InstanceType | t2.micro |
+----------------------+------------+
table形式は視認性が高く、初心者がAWS CLIの結果を理解するのに適しています。特に、AWS EC2やS3、IAMなどのリソース確認を行う際に便利です。
ただし、スクリプト処理には向いていません。あくまで目視確認用の出力形式として覚えておきましょう。
4. text形式の特徴とメリット
text形式は、最もシンプルなテキスト表示です。余分な装飾がなく、値だけを取り出したいときに便利です。
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" --output text
i-0123456789abcdef0
text形式は、シェルスクリプトとの相性が良く、変数への代入やループ処理に使いやすい出力形式です。
AWS CLIの出力形式をtextにすることで、必要な値だけを抽出し、自動化処理やバッチ処理に活用できます。
5. --outputオプションの使い方
AWS CLIで出力形式を指定するには、--outputオプションを使用します。
aws s3 ls --output table
2026-02-20 12:00:00 my-sample-bucket
毎回指定するのが面倒な場合は、設定ファイルでデフォルトの出力形式を変更できます。
aws configure
Default output format [None]: json
これにより、AWS CLIの出力形式を常にjsonに設定することも可能です。環境に応じて、json、table、textを使い分けましょう。
6. jsonとtextを組み合わせた実践的な使い分け
実務では、AWS CLIの出力形式と--queryオプションを組み合わせることが重要です。例えば、特定の情報だけを抽出してtext形式で取得することで、自動化スクリプトに活用できます。
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceType" --output text
t2.micro
json形式は詳細確認用、table形式は目視確認用、text形式は自動化用という考え方が基本です。
AWS CLIの出力形式を正しく理解することで、クラウド運用やサーバー管理の効率が大きく向上します。初心者の方は、まずjsonとtableの違いを体験し、その後text形式とqueryオプションを使った絞り込みに挑戦してみてください。
まとめ
今回はAWS CLIの出力形式であるjson形式、table形式、text形式の違いと使い分けについて詳しく解説しました。AWS CLIはクラウド環境をコマンドラインから操作できる強力なツールであり、EC2やS3、IAMなどの各種サービスを効率よく管理できます。その中でも出力形式の理解は非常に重要です。なぜなら、同じコマンドであっても出力形式を変えるだけで、可読性や自動化のしやすさが大きく変わるからです。
json形式は構造化データとして出力されるため、AWSのAPIレスポンスに近い形で結果を確認できます。データの階層構造が保持されるため、jqコマンドやシェルスクリプト、プログラミング言語と連携する場合に最適です。クラウドエンジニアやインフラエンジニアが自動化処理を行う際には、json形式の理解は必須と言えるでしょう。
table形式は視認性が高く、結果を直感的に確認できる出力形式です。AWS CLI初心者がEC2インスタンス一覧やS3バケット一覧を確認する場合、まずはtable形式で全体像を把握するのがおすすめです。運用現場でも、簡易的な確認作業ではtable形式が活躍します。
text形式は余計な装飾がなく、値だけを抽出したい場合に便利です。特に--queryオプションと組み合わせることで、必要な情報だけを取得し、シェルスクリプト内で変数に代入するなどの高度な活用が可能になります。AWS CLIの出力形式とqueryオプションを正しく使い分けることが、効率的なクラウド運用の鍵になります。
例えば、EC2のインスタンスIDを取得し、その値を別のコマンドに渡すといった処理も簡単に実現できます。以下は、text形式を活用した基本的な例です。
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" --output text
i-0123456789abcdef0
このように、AWS CLIの出力形式を理解することで、単なるコマンド実行から一歩進んだ自動化処理へと発展させることができます。json形式で詳細確認、table形式で目視確認、text形式で自動化という使い分けを意識することで、クラウド管理の効率は飛躍的に向上します。
また、デフォルトの出力形式はaws configureコマンドで設定できます。日常的にjson形式を利用する場合は設定しておくと便利です。
aws configure
Default output format [None]: json
さらに理解を深めるために、JavaからAWS CLIの実行結果を扱うイメージも確認してみましょう。実務ではProcessBuilderなどを利用して外部コマンドを実行し、その出力を解析することがあります。
public class AwsCliOutputExample {
public static void main(String[] args) throws Exception {
ProcessBuilder builder = new ProcessBuilder(
"aws",
"ec2",
"describe-instances",
"--query",
"Reservations[].Instances[].InstanceId",
"--output",
"text"
);
Process process = builder.start();
java.io.BufferedReader reader =
new java.io.BufferedReader(
new java.io.InputStreamReader(process.getInputStream())
);
String line;
while ((line = reader.readLine()) != null) {
System.out.println("取得したインスタンスID: " + line);
}
}
}
実行結果の例は次の通りです。
取得したインスタンスID: i-0123456789abcdef0
このように、AWS CLIの出力形式を理解することは、クラウドエンジニアとしての基礎力を高めることにつながります。json、table、textそれぞれの特性を理解し、目的に応じて最適な出力形式を選択できるようになりましょう。
生徒
「AWS CLIの出力形式は、ただの表示の違いだと思っていましたが、用途によって大きな差があるんですね。」
先生
「その通りです。json形式は構造化データとして扱いやすく、自動化やプログラム連携に向いています。table形式は確認作業向け、text形式は値の抽出に強いという特徴があります。」
生徒
「--queryとtext形式を組み合わせると、必要な値だけ取得できるのが便利だと感じました。」
先生
「それが実務で非常によく使われるテクニックです。AWS CLIの出力形式を正しく使い分けることで、クラウド運用やサーバー管理の効率が大きく向上します。これからは目的に応じて出力形式を選びましょう。」
生徒
「はい。AWS CLIのjson形式、table形式、text形式の違いを理解できました。これからは自動化も意識してコマンドを実行してみます。」