EKS Cluster Creation ラボガイド
難易度: 中級 所要時間: 60 分 最終更新: February 11, 2026
学習目標
- eksctl を使用して EKS cluster を作成する
- kubectl で cluster にアクセスし、ステータスを確認する
- サンプルアプリケーションをデプロイする
- cluster を安全に削除する
前提条件
- [ ] AWS account と AWS CLI が設定済み(
aws sts get-caller-identityで確認) - [ ] eksctl がインストール済み(
eksctl versionで確認) - [ ] kubectl がインストール済み
- [ ] EKS Cluster Creation の学習を完了済み
コストに関する警告: EKS cluster を運用すると AWS 利用料金が発生します。ラボ完了後は必ず cluster を削除してください。
演習 1: eksctl Configuration の確認
手順
Step 1.1: tool のバージョンを確認する
bash
aws --version
eksctl version
kubectl version --clientStep 1.2: AWS credentials を確認する
bash
aws sts get-caller-identity期待される出力:
json
{
"UserId": "AIDACKCEVSQ6C2EXAMPLE",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/your-user"
}Step 1.3: default region を設定する
bash
export AWS_DEFAULT_REGION=ap-northeast-2
echo "Region: $AWS_DEFAULT_REGION"ヒントが必要ですか?
- 現在の configuration を確認するには
aws configure listを使用します - eksctl は内部的に CloudFormation を使用します
- IAM user には EKS、EC2、CloudFormation、IAM permissions が必要です
演習 2: EKS Cluster Creation
手順
Step 2.1: cluster configuration file を作成する
bash
cat > /tmp/eks-cluster.yaml << 'EOF'
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: lab-cluster
region: ap-northeast-2
version: "1.31"
managedNodeGroups:
- name: workers
instanceType: t3.medium
desiredCapacity: 2
minSize: 1
maxSize: 3
volumeSize: 20
EOFStep 2.2: cluster を作成する
bash
eksctl create cluster -f /tmp/eks-cluster.yamlCluster の作成には 15〜20 分かかります。
Step 2.3: kubeconfig を確認する
bash
kubectl config current-context
kubectl cluster-info検証
bash
kubectl get nodes
# Should display 2 Ready nodes演習 3: Cluster Exploration
手順
Step 3.1: node 情報を確認する
bash
kubectl get nodes -o wide
kubectl describe node $(kubectl get nodes -o jsonpath='{.items[0].metadata.name}')Step 3.2: system components を確認する
bash
kubectl get pods -n kube-system
kubectl get svc -n kube-systemStep 3.3: resource usage を確認する
bash
kubectl top nodes 2>/dev/null || echo "Metrics Server is not installed"演習 4: Sample App Deployment
手順
Step 4.1: Nginx をデプロイする
bash
kubectl create deployment nginx --image=nginx:1.25 --replicas=2
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl wait --for=condition=available deployment/nginx --timeout=120sStep 4.2: access を確認する
bash
# Check LoadBalancer External IP (ELB creation takes a few minutes)
kubectl get svc nginx -w
# Press Ctrl+C once EXTERNAL-IP is assigned
# Test access
ELB_URL=$(kubectl get svc nginx -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
echo "ELB URL: $ELB_URL"
curl -s "$ELB_URL" | head -5Step 4.3: Scaling test
bash
kubectl scale deployment nginx --replicas=4
kubectl get pods -l app=nginx -o wideヒントが必要ですか?
- ELB URL が DNS に伝播するまで数分かかる場合があります
- EXTERNAL-IP の割り当てをリアルタイムで監視するには
kubectl get svc -wを使用します - AWS Console の EC2 > Load Balancers でも確認できます
検証
bash
kubectl get deployment nginx -o jsonpath='{.status.readyReplicas}'
# Output: 4クリーンアップ
重要: 継続的なコストを防ぐため、必ず cluster を削除してください。
bash
# 1. Clean up application (so LoadBalancer deletes the ELB)
kubectl delete svc nginx
kubectl delete deployment nginx
# 2. Wait for ELB deletion (about 1 minute)
sleep 60
# 3. Delete cluster
eksctl delete cluster -f /tmp/eks-cluster.yaml --wait
# 4. Clean up configuration file
rm -f /tmp/eks-cluster.yamlトラブルシューティング
Cluster の作成に失敗する
- IAM permissions を確認します(AdministratorAccess または EKS 関連 policies が必要)
- VPC/subnet limits を確認します(region ごとの default VPC count limits)
eksctl utils describe-stacks --region=ap-northeast-2 --cluster=lab-clusterで詳細を取得します
kubectl が cluster に接続できない
kubeconfig を手動で更新します:
bash
aws eks update-kubeconfig --name lab-cluster --region ap-northeast-2次のステップ
- EKS Cluster Creation Quiz
- Advanced topics: EKS Networking