このハンズオンでは、AWS CLI を使い始めるための環境を構築します。
ローカルPCへのインストールは不要で、以下の2つの方法を紹介します。
方法 | 特徴 |
AWS CloudShell | AWSマネジメントコンソールからすぐに使えるブラウザベースのシェル。AWS CLI v2がプリインストール済み |
GitHub Codespaces | GitHubリポジトリと連携したクラウド開発環境。AWS CLIを手動インストール |
Positive : どちらの方法もブラウザだけで完結します。ローカルPCの環境を汚さずにAWS CLIを試せます。
AWS CloudShell は、AWSマネジメントコンソール内で利用できるブラウザベースのシェル環境です。
AWS CLI v2がプリインストールされており、追加のインストール作業は不要です。
>_ マーク)をクリックしますCloudShell が起動したら、AWS CLI がインストール済みであることを確認します。
aws --version
以下のような出力が表示されます。
aws-cli/2.x.x Python/3.x.x Linux/x.x.x source/x86_64.amzn.2023
Positive : CloudShell では AWS CLI v2 がプリインストールされています。ログイン中のIAMユーザー/ロールの権限で自動的に認証されるため、aws configure も不要です。
項目 | 内容 |
AWS CLI | v2 プリインストール済み |
認証 | ログイン中のIAMユーザー/ロールで自動認証 |
ストレージ | ホームディレクトリに1GBの永続ストレージ |
タイムアウト | 20〜30分間操作がないと自動切断 |
リージョン | コンソールで選択中のリージョンが適用 |
コスト | 無料 |
いくつかのコマンドを実行して、正常に動作することを確認します。
# 現在のIAMユーザー/ロールを確認 aws sts get-caller-identity # S3バケットの一覧を表示 aws s3 ls # 現在のリージョンを確認 aws configure get region
Negative : CloudShell はAWSマネジメントコンソールのセッションに依存します。コンソールからログアウトするとシェルも終了します。また、一部のリージョンではCloudShellが利用できない場合があります。
GitHub Codespaces は、GitHub上でクラウドベースの開発環境を提供するサービスです。
VS Codeベースのエディタがブラウザ上で動作し、ターミナルも利用できます。
Positive : GitHub Free プランでは、毎月120コア時間のCodespaces無料枠が提供されています。2コアマシンの場合、月60時間利用可能です。
Codespace のターミナルで以下のコマンドを実行して、AWS CLI v2 をインストールします。
# インストーラーのダウンロード curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # 解凍 unzip awscliv2.zip # インストール sudo ./aws/install # インストール確認 aws --version
以下のような出力が表示されればインストール完了です。
aws-cli/2.x.x Python/3.x.x Linux/x.x.x source/x86_64.ubuntu
インストール後、不要なファイルを削除します。
rm -rf awscliv2.zip aws/
Positive : Codespace を停止・再起動してもインストール済みの AWS CLI は保持されます。ただし、Codespace を削除した場合は再インストールが必要です。
AWS CLI で AWS リソースを操作するには、認証情報の設定が必要です。
方法 | 対象環境 | 説明 |
CloudShell 自動認証 | CloudShell | 設定不要。ログイン中の権限で自動認証 |
| Codespaces 等 | アクセスキーとシークレットキーを設定 |
環境変数 | Codespaces 等 | 環境変数にアクセスキーを設定(一時利用向き) |
GitHub Codespaces では aws configure コマンドで認証情報を設定します。
aws configure
以下の情報を入力します。
項目 | 値 |
AWS Access Key ID |
|
AWS Secret Access Key |
|
Default region name |
|
Default output format |
|
# 設定ファイルの確認 cat ~/.aws/config # 認証情報ファイルの確認(中身は表示しない) ls -la ~/.aws/credentials # 現在のIAMユーザーを確認 aws sts get-caller-identity
Negative : アクセスキーとシークレットキーは管理者から払い出されたものを設定してください。キーをGitリポジトリにコミットしないよう注意してください。
一時的に利用する場合は、環境変数で認証情報を設定することもできます。
export AWS_ACCESS_KEY_ID="AKIAXXXXXXXXXXXXXXXX" export AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" export AWS_DEFAULT_REGION="ap-northeast-1"
Positive : 環境変数による設定はターミナルを閉じると消えるため、一時的な利用に適しています。Codespace の Secrets 機能を使えば、安全に環境変数を永続化することもできます。
GitHub Codespace Secrets を使うと、AWS の認証情報を安全にCodespace に設定できます。
Secrets はCodespace 起動時に環境変数として自動的に読み込まれます。
Name | Value |
|
|
|
|
|
|
Codespace を再起動(または新規作成)した後、環境変数が設定されていることを確認します。
# 環境変数の確認(キーの先頭数文字のみ表示)
echo "Region: $AWS_DEFAULT_REGION"
echo "Key ID: ${AWS_ACCESS_KEY_ID:0:8}..."
# AWS CLI での確認
aws sts get-caller-identity
Positive : Codespace Secrets を使えば、aws configure を毎回実行する必要がなく、認証情報がGitリポジトリに漏洩するリスクもありません。
Negative : Codespace Secrets に保存したアクセスキーが漏洩した場合に備え、IAMユーザーには最小権限のポリシーを設定しましょう。また、定期的なキーローテーションも推奨されます。
どちらの環境でも以下のコマンドが正常に実行できることを確認します。
aws sts get-caller-identity
{
"UserId": "AIDAXXXXXXXXXXXXXXXXX",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/your-username"
}
# バケット一覧
aws s3 ls
# テスト用バケットの作成(任意)
aws s3 mb s3://handson-test-{あなたのアカウントID}
# ファイルのアップロード
echo "Hello AWS CLI" > test.txt
aws s3 cp test.txt s3://handson-test-{あなたのアカウントID}/
# ファイルの確認
aws s3 ls s3://handson-test-{あなたのアカウントID}/
# テスト用バケットの削除
aws s3 rm s3://handson-test-{あなたのアカウントID}/ --recursive
aws s3 rb s3://handson-test-{あなたのアカウントID}
aws ec2 describe-regions --query "Regions[].RegionName" --output table
Positive : ここまでの操作がすべて成功すれば、AWS CLI の環境構築は完了です。他のハンズオン(09〜12)を進める準備が整いました。
比較項目 | CloudShell | GitHub Codespaces |
起動方法 | AWSコンソールからワンクリック | GitHubリポジトリから作成 |
AWS CLI | プリインストール済み | 手動インストール |
認証設定 | 自動(設定不要) |
|
エディタ | なし(CLIのみ) | VS Code(フルエディタ) |
ストレージ | 1GB(永続) | 最大32GB(Codespace 単位) |
コスト | 無料 | 月120コア時間まで無料 |
向いている用途 | AWS CLI の実行のみ | コード開発 + AWS CLI |
Positive : AWS CLI はGUIと比較して、再現性の高い作業が可能です。ここで構築した環境を使って、他のハンズオンに進みましょう。
[AWS CloudShell ドキュメント](https://docs.aws.amazon.com/ja_jp/cloudshell/)
[AWS CLI v2 インストールガイド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)
[GitHub Codespaces ドキュメント](https://docs.github.com/ja/codespaces)