はじめに
誰に向けた記事か
「AWSをコマンドラインで操作したい」「GUIより自動化を進めたい」と考えている方に向けた記事です。初心者の方でも理解しやすいよう、専門用語は最小限にし具体例を交えて解説します。
この記事で得られること
- AWS CLIの基礎知識が身につきます
- インストールと初期設定の手順がわかります
- サービス別の主要コマンドや実践的な使い方が把握できます
これにより、日常の運用作業を効率化し、自動化の第一歩を踏み出せます。
本記事の構成(全9章)
- はじめに(本章)
- AWS CLIとは?そのメリットと活用シーン
- AWS CLIインストール方法と初期設定
- AWS CLIコマンドの基本構文と使い方
- 主要サービスごとのコマンド一覧
- コマンドのカスタマイズ・オプション活用
- 実践的な利用例とTips
- 便利なリファレンス・チートシート
- まとめ:AWS CLIで業務効率化・自動化を実現
読み進め方のヒント
まずは第2章で全体像を把握してください。続けてインストールと設定を行うと、すぐに手を動かして学べます。各章は独立して読めるように構成しているので、必要な箇所だけ参照しても問題ありません。
AWS CLIとは?そのメリットと活用シーン
はじめに
「AWS CLIって何に役立つの?」と疑問に思っていませんか?ここでは、初心者にもわかりやすくAWS CLIの特徴と具体的な活用シーンを紹介します。
AWS CLIとは
AWS CLIは、コマンドラインからAWSのサービスを操作する公式ツールです。ブラウザのコンソールを使わずに、キーボードだけで多くの操作を実行できます。
主なメリット
- 一貫した操作:複数サービスを同じ形式のコマンドで扱えます。例:
aws s3 ls
でS3の一覧を取得。 - 自動化が容易:スクリプトに書けば繰り返し作業を自動で実行できます。定期バックアップやログ収集に便利です。
- 大量処理に強い:多数のリソースをバッチで操作できます。
- 再現性と履歴管理:コマンドはテキストなので、Gitで管理して操作手順を共有できます。
- CI/CDとの連携:パイプライン内でインフラ作成やデプロイを自動化できます。
活用シーン(具体例)
- 定期バックアップの自動化:S3へ定期的にデータを同期
- インフラの状態確認:
aws ec2 describe-instances
でインスタンスを一覧 - デプロイの一部として実行:ビルド後に環境を切り替える操作
- ローカル開発・検証:小さなスクリプトで簡単に動作検証が可能
この章を読むことで、AWS CLIが日常業務の効率化や自動化で強力なツールになることがイメージできるはずです。
AWS CLIインストール方法と初期設定
はじめに
AWS CLIはコマンドラインからAWSを操作するためのツールです。ここではWindows・macOS・Linuxごとのインストール手順と、初回に行う設定(aws configure)を分かりやすく説明します。
Windows
- AWSの公式サイトからMSIインストーラー(AWS CLI v2)をダウンロードして実行します。
- インストーラーの指示に従い完了させます。
- コマンドプロンプトやPowerShellを再起動し、
aws --version
で確認します。
macOS
- Homebrewがある場合:
brew install awscli
で簡単に入ります。 - もしくは公式の.pkgをダウンロードしてインストールします。
Linux
- curlでバンドルインストーラをダウンロードして展開、
sudo ./install
で導入できます。 - 軽く試すなら
pip install awscli
(v1)も利用できますが、推奨は公式バンドルです。
初期設定(aws configure)
- ターミナルで
aws configure
を実行します。 - 順にAccess Key ID、Secret Access Key、デフォルトリージョン、出力フォーマットを入力します。
- プロファイル名を付ける場合は
aws configure --profile プロファイル名
を使います。
設定ファイル
- 資格情報:
~/.aws/credentials
- 設定:
~/.aws/config
例:
[default]
aws_access_key_id = YOURKEY
aws_secret_access_key = YOURSECRET
動作確認とトラブル
- 確認:
aws sts get-caller-identity
で認証情報を確認します。 - よくある問題: PATH未設定、鍵の入力ミス、プロファイル指定の忘れ。ファイルのパーミッションも確認してください。
AWS CLIコマンドの基本構文と使い方
はじめに、AWS CLIは次の構文で操作します。
aws <サービス名> <コマンド> [オプション] [引数]
- サービス名: ec2、s3、iamなど。操作対象を示します。
- コマンド: describe-instances、create-bucket、put-user-policyなど。実行する処理を表します。
- オプション: –region、–profile、–output、–queryなど。動作や出力の指定に使います。
- 引数: インスタンスIDやバケット名など、コマンド固有の値を渡します。
例と説明
1) aws s3 ls
– S3のバケット一覧や指定バケットの中身を表示します。簡単な確認に使います。
2) aws ec2 describe-instances –region ap-northeast-1
– 指定リージョンのインスタンス情報を取得します。–regionで対象リージョンを明示します。
よく使うオプション
- –profile: 複数の認証情報を使い分ける際に指定します。
- –output: json、text、tableを選べます。自動処理ならjson、見やすさ重視ならtable。
- –query: JMESPathで出力を絞り込みます。例えば–query ‘Reservations[].Instances[].InstanceId’。
- –no-paginate: 大量出力を一括で取得したいときに使います。
実用的なコツ
- まずは –help を付けて詳細を確認します(例: aws ec2 describe-instances help)。
- 変更系コマンドは –dry-run(EC2など)や少量で試すことで安全に実行してください。
- JSONやクォートの扱いに注意し、シェルの解釈を避けるために適切にエスケープします。
この章で基本を押さえれば、次章でサービス別の主要コマンドにスムーズに移れます。
主要サービスごとのコマンド一覧
S3(オブジェクトストレージ)
- バケット一覧表示:
aws s3 ls
(リージョンを意識して実行) - バケット作成:
aws s3 mb s3://<bucket-name>
- ファイルアップロード:
aws s3 cp <local-file> s3://<bucket-name>/
- ディレクトリ同期:
aws s3 sync <local-dir> s3://<bucket-name>/
(差分転送で効率的) - 補足:
--recursive
や--exclude/--include
を使うと細かく制御できます。
EC2(仮想サーバ)
- インスタンス一覧表示:
aws ec2 describe-instances
(出力が長いので--query
で絞れます) - インスタンス起動:
aws ec2 start-instances --instance-ids <id>
- インスタンス停止:
aws ec2 stop-instances --instance-ids <id>
- 補足: 状態確認やタグ指定で操作対象を限定できます。
IAM(アクセス管理)
- ユーザー一覧表示:
aws iam list-users
- ユーザー作成:
aws iam create-user --user-name <name>
- 補足: ポリシーやグループ操作は
aws iam attach-user-policy
などで行います。
CloudFormation(インフラのコード化)
- スタック一覧表示:
aws cloudformation describe-stacks
- スタック作成:
aws cloudformation create-stack --stack-name <name> --template-body file://template.yaml
- 補足: テンプレートの検証は
aws cloudformation validate-template --template-body file://template.yaml
が便利です。
共通の便利コマンド
- バージョン確認:
aws --version
- ヘルプ表示:
aws help
、aws <サービス名> help
(各コマンドの書式を確認できます)
この章ではよく使う基本コマンドをまとめました。実際にはオプションやフィルターで絞り込みながら使うことが多いです。
コマンドのカスタマイズ・オプション活用
概要
AWS CLIはオプションで挙動を簡単に変えられます。リージョン指定、出力形式、プロファイル切り替えなどを使い分けると作業が速くなります。
リージョン指定(–region)
–region ap-northeast-1 のように書くと、そのコマンドだけ特定リージョンで実行できます。デフォルトは~/.aws/configや環境変数で設定できます。
例:
aws ec2 describe-instances –region ap-northeast-1
出力形式(–output)
–output json:機械可読。スクリプトで扱いやすい。
–output table:人間が見やすい表形式。
–output text:シンプルなテキスト。パイプ処理に便利。
例:
aws s3 ls –output table
プロファイル切り替え(–profile)
–profile myprofile で別の認証情報や設定を使えます。複数アカウントを操作するときに便利です。
例:
aws sts get-caller-identity –profile prod
便利なオプション
–query:結果を絞り込み(JMESPath)。例:–query “Reservations[].Instances[].InstanceId”。
–no-paginate:長い結果を一度に取得。対話で見やすくします。
実践的な組み合わせ
aws ec2 describe-instances –profile dev –region ap-northeast-1 –output json –query “Reservations[].Instances[].InstanceId”
注意点
優先順位はコマンドライン > 環境変数 > 設定ファイルです。認証情報は最小権限の原則で管理してください。
実践的な利用例とTips
シェルスクリプトでのバッチ処理例
複数のAWS CLIコマンドを組み合わせて自動化できます。たとえばEC2の停止をまとめて実行するスクリプト:
ids=$(aws ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --output text)
for id in $ids; do
aws ec2 stop-instances --instance-ids $id
done
–queryで必要項目だけ取得
–queryは出力を絞り込みます。例: --query "Reservations[*].Instances[*].InstanceId" --output text
はInstanceIdだけを取り出します。JSON構造を意識すると使いやすいです。
JSON/YAMLでのパラメータ化
タスク定義やCloudFormationではJSON/YAMLファイルを参照します。--cli-input-json file://task.json
や aws cloudformation create-stack --template-body file://stack.yaml --parameters file://params.json
のようにファイルを渡すと再利用性が高まります。
実用的なTips
- 出力は
--output text
やjq
で整形するとスクリプトに組み込みやすいです。 - ページネーションに注意。
--max-items
や--starting-token
を使います。 - エラー時は
set -e
や||
で分岐して安全に処理してください。 --profile
と--region
で明示的に指定すると意図しない環境での実行を防げます。
これらを組み合わせると日常の作業を大幅に効率化できます。
便利なリファレンス・チートシート
概要
現場で素早く確認できるリファレンスやチートシートを持つと便利です。主要コマンドのひな形やよく使うオプションを一枚にまとめると学習と作業効率が上がります。
主要コマンド早見表
- aws s3 ls:S3バケットの一覧表示。例:
aws s3 ls s3://my-bucket
。 - aws s3 cp:ファイル転送。例:
aws s3 cp file.txt s3://my-bucket/
。 - aws ec2 describe-instances:EC2の情報取得。
- aws iam list-users:IAMユーザー一覧取得。
- aws sts get-caller-identity:実行ユーザー確認。
サービス別の使い方例
- S3:アップロード・公開設定・同期(
aws s3 sync
)。 - EC2:インスタンスの一覧・起動・停止(
start-instances
/stop-instances
)。 - Lambda:関数一覧・デプロイ(
update-function-code
)。
出力フォーマットと絞り込み
--output json|table|text
で見やすさを変えます。--query
(JMESPath)で必要な項目だけ抽出。例:--query "Reservations[].Instances[].InstanceId"
。
よく使うオプションとコツ
--profile
で複数アカウント管理。--region
で地域を明示。--no-paginate
や--debug
でトラブル時の確認。- よく使うコマンドはシェルのエイリアスやスクリプトに登録しておくと便利です。
保存と参照の方法
- MarkdownやPDFで自分用のチートシートを作成し、リポジトリで管理してください。
- 公式ドキュメントの該当ページをブックマークすると、細かいオプション確認が速くなります。
まとめ:AWS CLIで業務効率化・自動化を実現
今回の記事では、AWS CLIの基本から実践的な使い方までを紹介しました。AWS CLIを使うと、手作業で行っていた繰り返し作業をスクリプトに置き換え、時間を節約できます。大量のリソース操作や定型処理はコマンドで一括実行でき、ヒューマンエラーも減ります。
実務で効果を出すためのポイントは次の通りです。
- 小さく始める:まずは日常的なバックアップやログ取得など、単純なタスクを自動化してください。
- 安全を優先する:認証情報は適切に管理し、最小権限のIAMロールやプロファイルを使ってください。
- テストと検証:本番で実行する前に–dry-run相当の確認やステージ環境での検証を行ってください。
- 再利用性を高める:スクリプトは関数化し、引数で振る舞いを変えられるようにすると便利です。
- CI/CDと連携する:パイプラインに組み込めばデプロイや運用作業を自動化できます。
AWS CLIは学べば学ぶほど業務効率を高められるツールです。まずは小さな自動化から取り組み、徐々に範囲を広げていく習慣をつけてください。そうすることで、日々の運用が確実に楽になります。