はじめに
本資料の目的
本資料は、AWS CLI(コマンドラインインターフェース)を使ってクラウド操作を効率よく行う方法をやさしくまとめたガイドです。導入方法から基本構文、主要サービスごとの実践コマンド例やスクリプトまで幅広く扱います。
読者対象
AWSをこれから使い始める方、GUIよりコマンド操作を好む方、スクリプトで作業を自動化したい方に適しています。専門知識がなくても読み進められるよう具体例を多く載せます。
本書で学べること(一例)
- AWS CLIのインストールと初期設定
- EC2やS3など主要サービスの代表的なコマンド
- コマンドの基本構文と応用(フィルタや出力整形)
- よく使うスクリプト例とベストプラクティス
前提条件
AWSアカウントと端末(Windows, macOS, Linux)での基本的な操作ができることを想定します。必要に応じて用語や操作手順は丁寧に説明します。
AWS CLI完全ガイド2024の概要と主要コマンド
AWS CLIとは
AWS CLIは、キーボードから直接AWSを操作するためのツールです。GUIを開かずに作業できるため、自動化やスクリプト化に向きます。初心者でも基本コマンドを覚えれば効率よく作業できます。
基本の考え方
・プロファイルで認証情報を切り替えます(例: aws configure –profile myprofile)。
・コマンドは「サービス 操作」を基本形とします(例: aws s3 ls)。
S3の主要コマンド(例付き)
・一覧表示: aws s3 ls s3://my-bucket
・アップロード: aws s3 cp localfile.txt s3://my-bucket/
・ダウンロード: aws s3 cp s3://my-bucket/remote.txt ./
これらは大量のファイルを扱う時にスクリプトへ組み込みやすいです。
IAMの権限・パスワードポリシー確認
・現在のパスワードポリシー確認: aws iam get-account-password-policy
・ポリシー設定: aws iam update-account-password-policy –minimum-password-length 12 –require-symbols
細かい権限変更は、最小権限の考えを優先してください。
EC2のタグでの一括操作(例)
・タグでインスタンスIDを取得し一括停止: aws ec2 describe-instances –filters Name=tag:Env,Values=prod –query “Reservations[].Instances[].InstanceId” –output text | xargs aws ec2 stop-instances –instance-ids
・起動も同様にできます。タグ運用で環境ごとに管理するのが便利です。
ヘルプと公式ドキュメント
基本は aws help や aws help を参照ください。公式ドキュメントでオプションや最新の挙動を確認すると安全です。
初心者向けAWS CLI基本構文とクエリ機能
基本構文
AWS CLIの基本は次の形です。
aws [オプション] <サービス名> <サブコマンド> <パラメータ>
意味はシンプルです。オプションでプロファイルや出力形式を指定し、サービス名で操作対象(例:ec2、s3)、サブコマンドで実際の処理(例:describe-instances、ls)を指定します。
よく使うオプション
- –profile:複数の認証情報を使い分けるときに指定します。
- –region:操作するリージョンを指定します。
- –output:json、text、tableなど出力形式を変えられます。
–queryで必要な情報だけ抽出する
–queryは出力から必要な部分だけを取り出す機能です。形式はJMESPathという簡単な式を使います。
例1(インスタンスIDだけ表示)
aws ec2 describe-instances –query “Reservations[].Instances[].InstanceId” –output text
例2(ID・名前・状態を表形式で)
aws ec2 describe-instances –query “Reservations[].Instances[].{ID:InstanceId,Name:Tags[?Key==’Name’]|[0].Value,State:State.Name}” –output table
例3(日付で絞る)
aws ec2 describe-instances –query “Reservations[].Instances[?LaunchTime>=2024-01-01T00:00:00Z]
.{ID:InstanceId,LaunchTime:LaunchTime}” –output table
例4(名前に特定文字列を含むもの)
aws ec2 describe-instances –query “Reservations[].Instances[?contains(Tags[?Key==’Name’]|[0].Value, ‘web’)].{ID:InstanceId,Name:Tags[?Key==’Name’]|[0].Value}”
補足:サービスによっては–filtersでサーバー側で絞り込めます。サーバー側フィルタと–queryを組み合わせると効率よく必要な情報が得られます。実行前に少量のテストで意図した結果になるか確認してください。
AWS CLIの導入方法とサービス別実践コマンド例
導入と初期設定
AWS CLIは公式パッケージで入手できます。Windows/Mac/Linuxでpipやパッケージマネージャーからインストールできます(例: pip install awscli)。初期設定は対話式のaws configureが簡単です。
例:
$ aws configure
AWS Access Key ID [None]: AKIA...
AWS Secret Access Key [None]: ********
Default region name [None]: ap-northeast-1
Default output format [None]: json
環境変数(AWS_ACCESS_KEY_ID等)で設定する方法もあります。
EC2(仮想サーバ)
インスタンス一覧表示:
aws ec2 describe-instances --output table
実行中インスタンスのみ絞る:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].InstanceId" --output text
RDS(データベース)
インスタンス情報取得:
aws rds describe-db-instances --db-instance-identifier mydb
スナップショット作成:
aws rds create-db-snapshot --db-instance-identifier mydb --db-snapshot-identifier mydb-snap-20251129
Lambda(サーバーレス関数)
関数一覧:
aws lambda list-functions
実行(JSONパラメータ指定):
aws lambda invoke --function-name MyFunction --payload '{"key":"value"}' response.json --cli-binary-format raw-in-base64-out
コード更新(ZIPアップロード):
aws lambda update-function-code --function-name MyFunction --zip-file fileb://function.zip
IAM(認証・権限)
ユーザー・ロール一覧:
aws iam list-users
aws iam list-roles
ポリシーをユーザーにアタッチ:
aws iam attach-user-policy --user-name Alice --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
権限確認(シミュレーション):
aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::123456789012:user/Alice --action-names s3:ListBucket
各コマンドは–profileで別プロファイルを指定できます。実行前に対象リージョンや権限を確認してください。












