AWS ハンズオンを実施するために必要なツールのインストールと初期設定
各ハンズオン手順書の「前提条件」で必要なツールへのリンク先として、このページにセットアップ手順を集約しています。実施するハンズオンに応じて必要なセクションだけをご確認ください。
AWS マネジメントコンソールから起動できる AWS CloudShell には、AWS CLI・Git・Python・Node.js などが最初からインストールされています。ローカル環境を用意したくない場合に最も手軽な選択肢です。
| ハンズオン種別(代表例) | AWS CLI | Git | Docker | Node.js | Python | kubectl | eksctl | Helm | Terraform | istioctl |
|---|---|---|---|---|---|---|---|---|---|---|
| インフラ系 (EC2 / VPC / RDS) | ✅ | |||||||||
| コンテナ (ECS Fargate) | ✅ | ✅ | ||||||||
| EKS / GitOps | ✅ | ✅ | ✅ | ✅ | ||||||
| Kubernetes Observability | ✅ | ✅ | ✅ | ✅ | ||||||
| Service Mesh (Istio) | ✅ | ✅ | ✅ | ✅ | ||||||
| IaC — Terraform | ✅ | ✅ | ✅ | |||||||
| IaC — CDK | ✅ | ✅ | ✅ | ✅ | ||||||
| CI/CD (CodePipeline / GitHub Actions) | ✅ | ✅ | ||||||||
| サーバーレス (Lambda / API GW) | ✅ | ✅ | ||||||||
| マネコン操作のみ(監視・セキュリティ等) |
ブラウザ内で動作するターミナルで、インストール作業が一切不要です。AWS CLI・Git・Python・Node.js・kubectl・helm などが最初からインストールされています。
aws --version # AWS CLI が使える git --version # Git が使える python3 --version
~)に最大 1 GB の永続ストレージがあります(セッション間で保持)| OS | 推奨ターミナル | メモ |
|---|---|---|
| Windows | PowerShell 7+ または WSL2 (Ubuntu) | WSL2 は Linux コマンドがそのまま使えて便利 |
| macOS | ターミナル.app または iTerm2 | Homebrew(brew)でほとんどのツールをインストール可能 |
| Linux | お好みのターミナルエミュレータ | apt / yum / dnf でパッケージ管理 |
PowerShell(管理者)で以下を実行して WSL2 + Ubuntu をインストールできます。インストール後は WSL2 の Ubuntu ターミナルを使うと Linux 向けコマンドがそのまま動作します。
wsl --install
多くのハンズオンで必要です。AWS CLI v2 を使用してください。
# ブラウザから以下の URL にアクセスしてインストーラーをダウンロード・実行 # https://awscli.amazonaws.com/AWSCLIV2.msi # または PowerShell から直接インストール msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /quiet
# Homebrew を使う場合 brew install awscli # pkg インストーラーを使う場合(ブラウザで DL して実行) # https://awscli.amazonaws.com/AWSCLIV2.pkg
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install rm -rf awscliv2.zip aws/
AWS CLI でローカル PC から操作するには、IAM ユーザーのアクセスキー(アクセスキー ID とシークレットアクセスキーのペア)が必要です。以下の手順で発行します。
マネジメントコンソール上の AWS CloudShell や、EC2/CloudShell 上での実行では、ログイン中ユーザーの一時認証情報が自動設定されるため aws configure もアクセスキー発行も不要です。各ハンズオンが CloudShell 前提の場合はこの手順をスキップできます。
作成画面を閉じるとシークレットアクセスキーは二度と表示できません。控え忘れた場合は古いキーを削除して作り直してください。また、ルートユーザーのアクセスキーは作成しないでください(IAM ユーザーまたは IAM ロールを使用します)。
上で発行した IAM ユーザーのアクセスキーを使って以下を実行します。
aws configure
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
Organizations や IAM Identity Center を使っている場合は aws configure sso で設定します。詳細は各ハンズオンの前提条件を参照してください。
aws --version
# aws-cli/2.x.x Python/3.x.x ...
aws sts get-caller-identity
# {
# "UserId": "...",
# "Account": "123456789012",
# "Arn": "arn:aws:iam::123456789012:user/..."
# }
長期のアクセスキーは漏洩リスクがあるため、可能なら以下のキーレス(一時認証)方式を推奨します。最も簡単なのは方法 A の aws login です。
aws login(最も簡単・推奨)aws login は、マネジメントコンソールへのサインインと同じブラウザ認証で一時認証情報を取得する新しいコマンドです。アクセスキーの発行も IAM Identity Center の設定も不要で、root / IAM ユーザーのどちらでも使えます(要 AWS CLI v2.32.0 以降)。
aws login
実行すると次のように進みます。
ap-northeast-1)# プロファイルを指定する場合 aws login --profile my-profile # 動作確認 aws sts get-caller-identity
aws sso login組織で IAM Identity Center を運用している場合は、こちらでアカウント/権限セットを切り替えながら利用します。
IAM Identity Center が有効な組織では、アクセスキー不要でブラウザログインにより一時認証情報を取得できます。まずプロファイルを作成します。
aws configure sso
SSO session name (Recommended): my-sso SSO start URL [None]: https://<your-portal>.awsapps.com/start SSO region [None]: ap-northeast-1 SSO registration scopes [None]: sso:account:access
ブラウザが開いてサインインを求められます。承認後、利用するアカウントと権限セット(ロール)を選び、CLI のデフォルトリージョン・出力形式・プロファイル名を設定します。
AWS アクセスポータルで利用中の権限セットの「アクセスキー」リンク →「IAM Identity Center 認証情報」から SSO Start URL と SSO Region を確認できます。
# 一時認証情報を取得(期限切れになったら再実行するだけ) aws sso login --profile my-profile # プロファイルを指定してコマンド実行 aws sts get-caller-identity --profile my-profile # 既定プロファイルとして使う場合(Linux/macOS) export AWS_PROFILE=my-profile # Windows PowerShell の場合: $env:AWS_PROFILE="my-profile" # 使い終わったらサインアウト aws sso logout
SSO 方式では恒久的なシークレットがローカルに保存されず、短期間で失効する一時認証情報がキャッシュされます。漏洩時のリスクを大きく下げられます。CDK・Terraform などもこのプロファイルをそのまま利用できます。
マネジメントコンソール右上の CloudShell を開くと、ログイン中ユーザーの一時認証情報が自動設定済みの状態でターミナルが起動します。AWS CLI もインストール済みのため、aws configure もアクセスキーも不要です。多くのハンズオンはこの CloudShell を推奨環境としています。
EC2 や ECS 上でアプリ・スクリプトを動かす場合は、IAM ロールをリソースにアタッチします(EC2 インスタンスプロファイル・ECS タスクロール)。SDK / CLI が自動でロールの一時認証情報を取得するため、アクセスキーをコードや設定に置く必要がありません。本番環境ではこの方式が原則です。
アクセスキーはソースコードや Git にコミットしないでください。本番環境では IAM ロール(EC2 インスタンスプロファイル・ECS タスクロール等)を使用してください。ハンズオン終了後は不要なアクセスキーを削除することを推奨します。
CI/CD・GitOps・CDK など、リポジトリを扱うハンズオンで必要です。
# winget を使う場合(Windows 10 1709 以降) winget install --id Git.Git -e --source winget # または https://git-scm.com/download/win からインストーラーをダウンロード・実行
# Xcode CLT に含まれる(ターミナルで git を打つと自動インストールを促される) xcode-select --install # または Homebrew brew install git
sudo apt install -y git # Ubuntu / Debian sudo dnf install -y git # Amazon Linux 2023 / RHEL / Rocky
git --version # git version 2.x.x # コミット時に必要なユーザー情報を設定(初回のみ) git config --global user.name "Your Name" git config --global user.email "your@email.com"
ECS・コンテナビルドが必要なハンズオンで使用します。
Docker Desktop(GUI アプリ)をインストールします。Docker Engine・Docker CLI・Docker Compose が一式含まれます。
# https://www.docker.com/products/docker-desktop/ からインストーラーをダウンロード・実行 # macOS (Homebrew) brew install --cask docker
インストール後、Docker Desktop を起動してタスクトレイ(Windows)/ メニューバー(macOS)のクジラアイコンが動いていれば OK です。
# Ubuntu の場合 sudo apt update sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo usermod -aG docker $USER # sudo なしで使えるように
docker --version docker run --rm hello-world
AWS CDK ハンズオンで必要です。nvm(Node Version Manager)を使うとバージョン管理が楽です。
# 公式インストーラー(LTS 版を選択) # https://nodejs.org/ja/download/ からダウンロード・実行 # または winget winget install OpenJS.NodeJS.LTS
# nvm のインストール curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash source ~/.bashrc # または source ~/.zshrc # Node.js LTS をインストール nvm install --lts nvm use --lts
node --version # v22.x.x npm --version # 10.x.x # CDK ハンズオンに必要な場合のみ npm install -g aws-cdk cdk --version
Lambda(Python ランタイム)・AWS CDK(Python 版)のハンズオンで使用します。
# 公式インストーラー(Python 3.12 推奨) # https://www.python.org/downloads/ からダウンロード・実行(「Add to PATH」にチェック) # または Microsoft Store winget install Python.Python.3.12
brew install python@3.12 echo 'export PATH="/opt/homebrew/opt/python@3.12/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
sudo apt install -y python3 python3-pip python3-venv # Ubuntu sudo dnf install -y python3 python3-pip # Amazon Linux / RHEL
python3 --version # Python 3.12.x pip3 --version
EKS・Kubernetes 系ハンズオンで必要です。クラスターのバージョンと近いバージョンを使ってください。
# chocolatey を使う場合 choco install kubernetes-cli # または curl で直接ダウンロード(PowerShell) curl.exe -LO "https://dl.k8s.io/release/$(curl.exe -L -s https://dl.k8s.io/release/stable.txt)/bin/windows/amd64/kubectl.exe" # ダウンロードした kubectl.exe を PATH の通ったフォルダ(例: C:\Windows\System32)に移動
brew install kubectl
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
kubectl version --client # Client Version: v1.33.x
EKS クラスターの作成・管理に使う CLI ツールです。EKS 系ハンズオンで必要です。
choco install eksctl # または GitHub Releases から直接ダウンロード # https://github.com/eksctl-io/eksctl/releases
brew tap weaveworks/tap brew install weaveworks/tap/eksctl
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_${PLATFORM}.tar.gz"
tar -xzf eksctl_${PLATFORM}.tar.gz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
rm eksctl_${PLATFORM}.tar.gz
eksctl version # 0.x.x
Kubernetes のパッケージマネージャーです。kube-prometheus-stack など Helm Chart を使うハンズオンで必要です。
choco install kubernetes-helm
brew install helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version
# version.BuildInfo{Version:"v3.x.x", ...}
Terraform ハンズオンで必要です。tfenv を使うとバージョン管理が容易です。
# chocolatey choco install terraform # または winget winget install Hashicorp.Terraform
brew tap hashicorp/tap brew install hashicorp/tap/terraform
wget -O - https://apt.releases.hashicorp.com/gpg | \ sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \ https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/hashicorp.list sudo apt update && sudo apt install terraform
# Amazon Linux 2023 / RHEL sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo sudo dnf install terraform
terraform -version # Terraform v1.x.x
EKS Service Mesh(Istio)ハンズオンで必要です。
curl -L https://istio.io/downloadIstio | sh - # インストール先ディレクトリ(例: istio-1.26.x/bin)を PATH に追加 cd istio-1.* export PATH=$PWD/bin:$PATH echo "export PATH=$PWD/bin:\$PATH" >> ~/.bashrc
# https://github.com/istio/istio/releases から istio-X.X.X-win.zip をダウンロード・展開 # 展開先の bin\ フォルダを PATH に追加(システムの環境変数)
istioctl version --remote=false # client version: 1.x.x
セットアップ完了後、以下のコマンドをまとめて実行して各ツールが正常に動作しているか確認できます。
echo "=== AWS CLI ===" && aws --version echo "=== Git ===" && git --version echo "=== Docker ===" && docker --version 2>/dev/null || echo "Not installed" echo "=== Node.js ===" && node --version 2>/dev/null || echo "Not installed" echo "=== npm ===" && npm --version 2>/dev/null || echo "Not installed" echo "=== Python ===" && python3 --version 2>/dev/null || echo "Not installed" echo "=== kubectl ===" && kubectl version --client 2>/dev/null || echo "Not installed" echo "=== eksctl ===" && eksctl version 2>/dev/null || echo "Not installed" echo "=== Helm ===" && helm version --short 2>/dev/null || echo "Not installed" echo "=== Terraform ===" && terraform -version 2>/dev/null | head -1 || echo "Not installed" echo "=== istioctl ===" && istioctl version --remote=false 2>/dev/null || echo "Not installed" echo "" echo "=== AWS Identity ===" && aws sts get-caller-identity
@("aws --version","git --version","docker --version",
"node --version","python --version","kubectl version --client",
"eksctl version","helm version --short","terraform -version"
) | ForEach-Object {
Write-Host "[$_]" -ForegroundColor Cyan
try { Invoke-Expression $_ } catch { Write-Host "Not installed" -ForegroundColor Yellow }
Write-Host ""
}
aws sts get-caller-identity
必要なツールのバージョンが表示され、aws sts get-caller-identity がアカウント情報を返せば準備完了です。各ハンズオン手順書に戻って作業を開始してください。