AWS CLI インストール手順 Windows と Ubuntu|S3 と EC2 接続

  • URLをコピーしました!
目次

はじめに

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/off

awsコマンドが見つからない場合は、コマンドプロンプトを開き直すと 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 のインストーラーをダウンロード・解凍するために、curlunzipが必要です。

# 存在確認(パスが表示されれば導入済み)
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/install

ARM アーキテクチャ(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/ ./backup

Windows のコマンドプロンプト・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 table

Windows のコマンドプロンプトでは行末の \^に、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 を開けずに接続できる方式

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次