はじめに
AWS の運用をマネジメントコンソールのクリック操作だけで行うと、繰り返しの作業や大量のファイル操作、スクリプトによる自動化には向きません。こうした作業を効率化するために有用なのが AWS CLI(Command Line Interface)です。AWS CLI を導入すれば、S3 へのファイルアップロードや EC2 インスタンスの起動・停止、ステータス確認などをターミナルから実行できます。
本記事では、Windows と Ubuntu の両方を対象に、AWS CLI v2 のインストールから、現場でよく使う S3 操作や EC2 接続までの手順を解説します。
- 最新のインストール手順: Windows(MSI)と Ubuntu(公式インストーラー)での AWS CLI v2 の導入
- 初期設定:
aws configureによる認証情報の設定(OS による保存先の違いを含む) - S3 操作: バケット一覧表示やファイルのアップロード・同期(
s3 sync) - EC2 操作: インスタンス情報の取得と、Session Manager を使った接続
要点を先に整理すると、AWS CLI v2 は Windows では MSI インストーラー、Ubuntu では公式の zip インストーラーで導入するのが推奨される方法です。導入後は aws configureで認証情報を設定すれば、同じコマンド体系で OS を問わず操作できます。EC2 への接続は、ポート 22 を開けずに済む Session Manager 方式が選択肢になります。
AWS CLI とは
AWS CLI(Command Line Interface)は、コマンドラインシェル(ターミナル)から AWS サービスを操作するための統合ツールです。内部では AWS の API を呼び出しており、マネジメントコンソールで行う操作の多くをコマンドで実行できます。
マネジメントコンソール(GUI)との違い
| 項目 | マネジメントコンソール(GUI) | AWS CLI(CUI) |
|---|---|---|
| 操作方法 | ブラウザでのクリック操作 | ターミナルでのコマンド入力 |
| 長所 | 直感的で全体像を把握しやすい | コマンドで処理が完結し、スクリプト化による自動化(cron 実行など)が可能 |
| 短所 | 繰り返し作業や大量の操作は手間がかかる | コマンドやオプションを覚える学習コストがある |
用途に応じて使い分けるのが基本ですが、定型作業や一括処理では CLI が効率的です。
AWS CLI v2 のインストール
AWS CLI v2 は、OS ごとに公式が提供するインストーラーで導入するのが推奨されます。本章では Windows、続いて Ubuntu の手順を解説します。
Windows へのインストール
前提として、Microsoft がサポートする 64 ビット版 Windows と、インストール時の管理者権限が必要です。最も手軽なのは、公式の MSI インストーラーをダウンロードして実行する方法です。
ダウンロード URL: https://awscli.amazonaws.com/AWSCLIV2.msi
ダウンロードしたファイルを実行し、画面の指示に従ってインストールします。コマンドで完結させたい場合は、コマンドプロンプトまたは PowerShell から msiexecを利用できます。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi/qnを付けるとサイレントインストールになり、キッティングや自動化に向きます。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qnインストール後、コマンドプロンプトを開き直してからバージョンを確認します。
aws --version
# 出力例: aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/offawsコマンドが見つからない場合は、コマンドプロンプトを開き直すと PATH が更新されて認識されることがあります。
参考: AWS CLI ユーザーガイド(Installing or updating to the latest version of the AWS CLI)
“We support the AWS CLI on Microsoft-supported versions of 64-bit Windows.”
(AWS CLI は Microsoft がサポートする 64 ビット版 Windows で動作します。)
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Ubuntu へのインストール
Ubuntu は 22.04 LTS および 24.04 LTS を対象とします。20.04 LTS は 2025 年 5 月末で標準サポートが終了しているため、可能であれば新しい LTS への移行を推奨します。
前提条件(curl と unzip の確認)
AWS CLI v2 のインストーラーをダウンロード・解凍するために、curlと unzipが必要です。
# 存在確認(パスが表示されれば導入済み)
which curl unzip
# 導入されていない場合
sudo apt update && sudo apt install -y curl unzip公式インストーラーでの導入
apt 版は古い v1 が入る場合があるため、公式インストーラーで最新の v2 を導入することを推奨します。
# 1. インストーラー(zip ファイル)をダウンロード
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# 2. 解凍する
unzip awscliv2.zip
# 3. インストールスクリプトを実行
sudo ./aws/installARM アーキテクチャ(aarch64)の場合は、URL を awscli-exe-linux-aarch64.zipに置き換えます。
すでに古いバージョンが入っている場合は、既存のシンボリックリンクとインストール先を指定して --updateで上書き更新できます。
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --updateインストール後、コマンドの場所とバージョンを確認します。
# コマンドの場所を確認(通常は /usr/local/bin/aws)
which aws
# バージョンを確認
aws --version
# 出力例: aws-cli/2.27.41 Python/3.11.6 Linux/5.15.0-generic exe/x86_64.ubuntu.22ダウンロードした zip ファイルと展開先のフォルダは不要なので削除して構いません。
rm -f awscliv2.zip
rm -rf aws参考: AWS CLI ユーザーガイド(Linux のインストール手順)
公式インストーラーで AWS CLI v2 を導入する手順が記載されています。
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
コマンドがエラーになる場合
awsコマンドが認識されない、あるいは AccessDeniedなどのエラーが出る場合は、時刻ずれや権限の設定が原因のことがあります。
認証情報の設定(aws configure)
AWS CLI を使うには、操作主体を示す認証情報(アクセスキー)の設定が必要です。事前に IAM で作成したアクセスキー ID とシークレットアクセスキーを用意してください。この手順は Windows と Ubuntu で共通です。
aws configure による基本設定
aws configure対話形式で次の 4 項目を入力します。
- AWS Access Key ID: アクセスキー ID を入力
- AWS Secret Access Key: シークレットアクセスキーを入力
- Default region name: よく使うリージョン(東京なら
ap-northeast-1) - Default output format: 出力形式(
json/table/textなど。通常はjson)
実行例
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: jsonセキュリティ上の注意点
aws configureで設定した認証情報は、認証情報ファイルに平文(暗号化されていない状態)で保存されます。保存先は OS で異なります。
- Ubuntu / Linux:
~/.aws/credentials - Windows:
C:\Users\<ユーザー名>\.aws\credentials
# Ubuntu の場合
cat ~/.aws/credentials平文のまま保存されるため、本番環境や共用 PC、誤って GitHub 等に公開した場合の漏えいリスクがあります。学習用途を超える場合は、より安全な管理方法の検討を推奨します。
より安全な方法: aws login(コンソール認証)
aws loginは、長期的なアクセスキーを手元に保存せず、AWS マネジメントコンソールへのサインインと同じ方法で認証するコマンドです。ブラウザ経由の認証フローで一時的な認証情報が発行され、AWS CLI が自動的に管理・更新します(最長 12 時間)。長期キーをローカルに保存しないため、平文保存に伴う漏えいリスクを避けられます。
利用には AWS CLI 2.32.0 以降が必要です。root ユーザー、IAM ユーザー、または IAM によるフェデレーションのいずれかでコンソールにサインインできることが前提です。IAM ユーザーや IAM ロールで利用する場合は、SignInLocalDevelopmentAccess管理ポリシーをアタッチしておきます(root ユーザーの場合は追加の権限は不要です)。
aws login実行するとリージョンの指定を求められ、続いて既定のブラウザが開きます。画面の指示に従ってサインインすると、一時的な認証情報が発行され、以降の AWS CLI 操作で利用できます。


IAM Identity Center を利用している環境では、aws loginではなく aws configure ssoを使用します。SSH 接続先などブラウザを開けない環境では、aws login --remoteで認証コードを貼り付ける方式に切り替えられます。
参考: AWS CLI ユーザーガイド(Login for AWS local development using console credentials)
“This approach enhances security by eliminating the need to store long-term credentials locally.”
(この方式は、長期的な認証情報をローカルに保存する必要をなくすことでセキュリティを高めます。)
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html
S3 バケットとファイルの操作
AWS CLI の利点の一つが S3 の操作です。コマンドで大量のファイル転送や同期を行えます。以降のコマンドは Windows・Ubuntu で共通です。
バケット一覧の表示(s3 ls)
aws s3 ls特定のバケットの中身を見たい場合は、バケット名を指定します。
# 書式: aws s3 ls s3://<バケット名>
aws s3 ls s3://my-sample-bucketファイルのアップロード・ダウンロード(s3 cp)
コピーには cpコマンドを使います。Linux の cpと同様に「コピー元」→「コピー先」の順で指定します。
# ローカルのファイルを S3 へアップロード
aws s3 cp local_file.txt s3://my-sample-bucket/# S3 上のファイルをカレントディレクトリへダウンロード
aws s3 cp s3://my-sample-bucket/remote_file.txt .フォルダごとコピーする場合は --recursiveオプションを付けます。
フォルダの同期(s3 sync)
実務で便利なのが syncコマンドです。変更があったファイルだけを転送するため、Web サイトのデプロイやログのバックアップに向きます。
# ローカルの website フォルダの内容を S3 と同期(アップロード)
aws s3 sync ./website s3://my-sample-bucket/# S3 の内容をローカルの backup フォルダへ同期(ダウンロード)
aws s3 sync s3://my-sample-bucket/ ./backupWindows のコマンドプロンプト・PowerShell では、ローカルパスを .\websiteのように指定します。
EC2 インスタンスの確認と接続(Session Manager)
EC2 への接続は、以前は SSH が一般的でしたが、ポート 22 を開けずに済む Session Manager 方式が広く使われています。ここではインスタンス情報の取得から接続までを解説します。
インスタンス情報の取得
接続先のインスタンス ID を調べます。describe-instancesは情報量が多いため、--queryオプションで整形すると見やすくなります。
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query "Reservations[].Instances[].{Instance:InstanceId, Name:Tags[?Key=='Name']|[0].Value, IP:PrivateIpAddress}" \
--output tableWindows のコマンドプロンプトでは行末の \を ^に、PowerShell ではバッククォートに置き換えるか、コマンドを 1 行で記述します。
出力例
-------------------------------------------------------
| DescribeInstances |
+---------------------+----------------+--------------+
| IP | Instance | Name |
+---------------------+----------------+--------------+
| 10.0.1.123 | i-0123456789 | Web-Server |
+---------------------+----------------+--------------+Session Manager プラグインの導入
start-sessionを使うには、AWS CLI とは別に Session Manager プラグインの導入が必要です。OS ごとに手順が異なります。
Windows
管理者権限で、公式のスタンドアロンインストーラーを使います。
ダウンロード URL: https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe
ダウンロードした SessionManagerPluginSetup.exeを実行し、画面の指示に従います。既定では %PROGRAMFILES%\Amazon\SessionManagerPlugin\bin\に導入されます。セッションの操作は PowerShell(バージョン 5 以降)またはコマンドプロンプトの利用が推奨されます。
参考: AWS Systems Manager ユーザーガイド(Install the Session Manager plugin on Windows)
“The Session Manager plugin installer needs Administrator rights to install the plugin.”
(Session Manager プラグインのインストールには管理者権限が必要です。)
https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-windows.html
Ubuntu
Ubuntu 用の deb パッケージを導入します。
# 1. プラグインのダウンロード
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
# 2. インストール
sudo dpkg -i session-manager-plugin.deb
# 3. 動作確認
session-manager-plugin
# 出力: The Session Manager plugin was installed successfully...公式手順は次のページを参照してください。
参考: AWS Systems Manager ユーザーガイド(Install the Session Manager plugin for the AWS CLI)
OS 別の Session Manager プラグイン導入手順がまとめられています。
https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
start-session による接続
プラグインの導入後は、コマンドで接続できます。SSH 鍵ファイル(.pem)は不要です。
# 取得したインスタンス ID を指定して接続
aws ssm start-session --target i-0123456789以下のようにシェルが切り替われば接続成功です。
sh-4.2$
# ここはすでに EC2 インスタンスの中です接続するには、対象の EC2 インスタンスに適切な IAM ロール(AmazonSSMManagedInstanceCoreなど)がアタッチされている必要があります。


アンインストール
環境の移行などで AWS CLI を削除する場合の手順です。
Windows
「設定」→「アプリ」→「インストールされているアプリ」から AWS Command Line Interface v2 を選択して削除します。コントロールパネルの「プログラムと機能」からも削除できます。
Ubuntu
AWS CLI v2 は apt ではなく直接ファイルを配置する形式のため、フォルダとシンボリックリンクを手動で削除します。
# プログラム本体の削除
sudo rm -rf /usr/local/aws-cli
# 実行リンク(コマンド)の削除
sudo rm /usr/local/bin/aws
sudo rm /usr/local/bin/aws_completer認証情報や設定ファイルも削除する場合は、設定フォルダを削除します(Windows は %USERPROFILE%\.awsフォルダ)。これを削除すると、設定していたアクセスキー情報もすべて消える点に注意してください。
rm -rf ~/.awsまとめ
本記事では、Windows と Ubuntu の両環境を対象に、AWS CLI v2 のインストールから S3 操作、Session Manager による EC2 接続までを解説しました。OS は異なってもコマンド体系は共通のため、一度覚えれば環境を問わず活用できます。導入方法と OS ごとの注意点を押さえることが、安定した運用につながります。
- Windows は MSI インストーラー、Ubuntu は公式 zip での導入が基本
- 導入後のバージョン確認は
aws --version - 認証情報の設定は
aws configureで OS 共通 - 認証情報は平文保存のため aws-vault 等での保護を推奨します
- 日常運用では増分転送の
aws s3 syncが有用 - EC2 接続は Session Manager プラグインの導入が前提
- Session Manager はポート 22 を開けずに接続できる方式
以上、最後までお読みいただきありがとうございました。


