TL

Cloud Service

AWS Command Line Interface (CLI)

AWS の各サービスをターミナルから操作・自動化できる公式コマンドラインツール。スクリプト化で繰り返し作業を再現でき、コンソール操作を自動化する CLI(Azure CLI や gcloud に相当)。

基礎SAA-C03DVA-C02SOA-C02DOP-C02運用上の優秀性セキュリティ
最終更新: 2026-06-28公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.1つのコマンド体系で AWS のほぼ全サービスを操作でき、シェルスクリプトで自動化できる
  • 2.認証はプロファイルや IAM ロール・SSO で行い、出力は JSON などから選べて --query で絞り込める
  • 3.v2 が現行版で、SSO 連携やページネーション・自動補完など運用に便利な機能を備える

AWS Command Line Interface(AWS CLI)は、AWS の各サービスをコマンドラインから操作するための公式ツールです。マネジメントコンソールでの手作業を、再現可能なコマンドやスクリプトに置き換えられます。aws service command という統一された構文で、ほぼすべての AWS サービスの API を呼び出せます。

解決する課題

マネジメントコンソールでの操作は直感的ですが、同じ手順を何度も繰り返したり、多数のリソースを一括で扱ったりする場面では手間がかかり、操作ミスや手順のばらつきも生じます。AWS CLI なら:

  • 操作をコマンドやスクリプトとして保存でき、同じ作業を再現性高く繰り返せる
  • 複数リソースの一括処理やループ処理をシェルで記述でき、大量操作を効率化できる
  • CI/CD パイプラインや cron などの自動化基盤に組み込める
  • コンソールに出ていない新機能や細かなパラメータにも、API ベースで早期にアクセスできる

主要概念と用語

  • コマンド構造: aws <サービス> <操作> [オプション] の形をとる(例: aws s3 ls)。サービス名は API の名前空間に対応する
  • プロファイル: 認証情報や既定リージョンなどの設定をまとめた名前付きの設定。--profile で切り替える
  • 認証情報チェーン: CLI が認証情報を探す優先順位。環境変数、設定ファイル、IAM ロールなどの順に解決される
  • IAM Identity Center(SSO)連携: ブラウザログインで一時的な認証情報を取得する仕組み。長期キーを持たずに済む
  • 出力形式: 実行結果のフォーマット。JSON・テキスト・テーブルなどから選べる
  • --query: 出力から必要な部分だけを抽出するための式(JMESPath を使う)
  • ページネーション: 結果が多いときに分割取得する仕組み。CLI が自動でまとめて取得する
  • 名前付き設定ファイル: 認証情報を置く credentials と、設定を置く config の2ファイルに分かれる

仕様・制限・クォータ

  • 現行のメジャー版は v2 で、SSO 連携・自動補完・分割取得などの機能が標準で利用できる
  • Linux・macOS・Windows に対応し、コンテナイメージとしても配布される
  • リクエストはいずれかのリージョンを対象に発行され、既定リージョンはプロファイルや環境変数で指定する
  • CLI 自体には独自の上限はほぼなく、実際の制限は背後の各サービス API のスロットリングやサービスクォータに従う
  • 大量のリクエストを連続発行するとサービス側でスロットリングされることがあり、CLI 側に自動リトライの仕組みがある

CLI のバージョンや対応プラットフォームの細部は時期によって変わるため、最新の対応状況は公式ドキュメントで確認してください。

内部の仕組み

AWS CLI はコマンドを解析し、対応するサービス API への HTTPS リクエストに変換して送信します。リクエストには認証情報チェーンで解決した資格情報による署名(SigV4)が付与されます。

  • 認証情報は、コマンドラインオプション、環境変数、credentials ファイル、コンテナや EC2 のインスタンスメタデータから取得する IAM ロールの順で解決される
  • レスポンスは指定した出力形式に整形され、--query を指定すると JMESPath 式で必要部分だけを抽出する
  • 一覧系の操作では結果が多いと API がトークンを返すが、CLI が自動で続きを取得してまとめて表示する
  • リトライ可能なエラー(スロットリングなど)には、待ち時間を空けて再試行するリトライ機構が働く
認証情報はキーのハードコードを避ける

EC2 や ECS 上で動かすなら、アクセスキーをファイルに置かず IAM ロールに任せるのが安全です。ローカル開発では IAM Identity Center(SSO)連携を使うと、長期キーを持たずに一時認証情報で操作できます。

設計パターン / ベストプラクティス

  • プロファイルで環境を分離: 開発・本番などをプロファイルで分け、誤操作を防ぐ
  • 長期キーより一時認証情報: SSO や IAM ロールで一時認証情報を使い、漏えいリスクを下げる
  • --query と出力形式の活用: 必要な値だけを抽出し、テキスト出力をスクリプトのパイプにつなぐ
  • --dry-run で事前確認: 対応する操作では実行前に権限や効果を検証する
  • 冪等性を意識: 作成系コマンドは再実行時の重複を考慮し、存在確認やトークンを組み合わせる
  • バージョンを固定: CI などでは利用する CLI のバージョンを固定し、挙動の差を避ける

運用・監視

  • CLI から発行した API 呼び出しは CloudTrail に記録され、誰がいつ何を操作したかを監査できる
  • スクリプトでは終了コードで成否を判定し、失敗時に処理を止めるよう組む
  • --debug オプションで署名やリクエストの詳細ログを出し、認証や権限の問題を切り分ける
  • 大量操作ではスロットリングを想定し、リトライ設定や同時実行数を調整する
スクリプトでは終了コードを確認する

CLI コマンドが失敗しても、終了コードを見ずに後続処理を進めると障害が連鎖します。自動化では各コマンドの終了コードを必ず確認し、失敗時に停止または通知する作りにしてください。

コスト

AWS CLI ツール自体は無料で利用できます。費用が発生するのは、CLI を通じて操作・作成した AWS リソースや、呼び出した API がもたらすデータ転送などに対してです。

  • CLI 経由かコンソール経由かで料金は変わらない。課金されるのはあくまで背後のサービス
  • 自動化スクリプトが意図せず多数のリソースを作成・起動しないよう、作成系コマンドはレビューする
  • ポーリングなどで一覧 API を高頻度に呼ぶと、スロットリングの原因になり処理が遅延しうる

セキュリティ

  • 長期アクセスキーを避ける: SSO や IAM ロールによる一時認証情報を優先し、キーの保管・ローテーション負担を減らす
  • 最小権限: CLI を実行する主体の IAM 権限を必要な操作だけに絞る
  • 認証情報ファイルの保護: credentials ファイルの読み取り権限を制限し、リポジトリにコミットしない
  • MFA の活用: 重要な操作を行うロールには多要素認証を要求する
  • 操作の証跡は CloudTrail に残るため、異常な API 呼び出しを検知・追跡できる
アクセスキーをコミットしない

アクセスキーやシークレットをコードやドットファイルに平文で書き、リポジトリに含めるのは重大な漏えい原因です。一時認証情報(SSO・IAM ロール)に切り替え、誤ってコミットした場合は直ちにキーを無効化してください。

関連サービス・比較

ブラウザから操作する マネジメントコンソール と役割が対比されます。どちらも同じ AWS API を操作しますが、再現性と自動化の点で性格が異なります。

観点AWS CLIマネジメントコンソール
操作方法コマンド・スクリプトブラウザでの GUI 操作
再現性高い(スクリプト化できる)手作業でばらつきが出やすい
自動化CI/CD や cron に組み込める基本は手動操作
学習の入りやすさコマンドの習得が必要視覚的で直感的
向く用途繰り返し作業・大量操作探索的な確認・初期設定

ハンズオン / CLI例

# 現在の認証情報(呼び出し元の IAM 主体)を確認
aws sts get-caller-identity

# プロファイルと出力形式を指定して S3 バケット一覧を取得
aws s3 ls --profile dev

# EC2 インスタンスの ID と状態だけを --query で抽出(テキスト出力)
aws ec2 describe-instances \
  --query "Reservations[].Instances[].{Id:InstanceId,State:State.Name}" \
  --output table

# IAM Identity Center(SSO)でログインしてプロファイルを使う
aws sso login --profile my-sso-profile
aws s3 ls --profile my-sso-profile

AWS Service

AWS Command Line Interface (CLI)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

開発者ツール

比較で見る軸

クラウド: AWS / カテゴリ: 開発者ツール / 難易度: basic

導入後に効く点

認証はプロファイルや IAM ロール・SSO で行い、出力は JSON などから選べて --query で絞り込める

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
AWS
カテゴリ
開発者ツール
難易度
basic
関連資格
SAA-C03 / DVA-C02 / SOA-C02 / DOP-C02
設計柱
operational / security

判断チェックリスト

  • 自社の用途が「開発者ツール / operational」に近いか確認する。
  • 強みである「1つのコマンド体系で AWS のほぼ全サービスを操作でき、シェルスクリプトで自動化できる」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

開発者ツールoperationalsecuritySAA-C03DVA-C02