1 서울리전 2 # ec2 키페어 1개 만들어야 한다.. ec2 > 네트워크 보안 및 보안 > 키 페어 키페어 생성 aws-agame-01-07 3 # ec2 1개 만드는 CloudFomation 실행 CloudFomation 4 ec2에 적용을 위한 iam role 하나 만듬. seo-admin role 생성 admin 권한 제공 보안 > IAM 역할 수정 > seo-admin-role 적용 5 ec2에 로그인 aws s3 ls 권한 확인 [root@kops-ec2 ~]# aws s3 ls 2026-01-16 19:56:51 agame-bk12 2026-01-16 19:12:25 ai-002-bk11 2026-01-16 15:33:05 ai-0021 2026-01-16 15:26:09 cf-templates-4h3zklo71j7k-ap-northeast-2 [root@kops-ec2 ~]# 6 mkdir -p ~/environment/ cd ~/environment/ export AWS_REGION=ap-northeast-2 echo ${AWS_REGION} 7 # eks 생성하기 cat << EOF > eks-demo-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: eks-demo # 생성할 EKS 클러스터명 region: ${AWS_REGION} # 클러스터를 생성할 리젼 version: "1.34" vpc: cidr: "192.168.0.0/16" # 클러스터에서 사용할 VPC의 CIDR managedNodeGroups: - name: node-group # 클러스터의 노드 그룹명 instanceType: m5.large # 클러스터 워커 노드의 인스턴스 타입 desiredCapacity: 3 # 클러스터 워커 노드의 갯수 volumeSize: 20 # 클러스터 워커 노드의 EBS 용량 (단위: GiB) iam: withAddonPolicies: imageBuilder: true # AWS ECR에 대한 권한 추가 albIngress: true # albIngress에 대한 권한 추가 cloudWatch: true # cloudWatch에 대한 권한 추가 autoScaler: true # auto scaling에 대한 권한 추가 cloudWatch: clusterLogging: enableTypes: ["*"] EOF eksctl create cluster -f eks-demo-cluster.yaml (20분 소요 됨) 8 CloudFormation 확인 mykos 는 ec2 생성된 CloudFormation eksctl-eks 는 쿠버네티스 9 타이머 20분 지정 https://vclock.kr/timer/#countdown=00:10:00&enabled=0&seconds=0&sound=xylophone&loop=1 10 (i-0343e26104cfd2180@eks-demo:N/A) [root@kops-ec2 environment]# k get no NAME STATUS ROLES AGE VERSION ip-192-168-20-86.ap-northeast-2.compute.internal Ready 2m32s v1.34.2-eks-ecaa3a6 ip-192-168-33-16.ap-northeast-2.compute.internal Ready 2m32s v1.34.2-eks-ecaa3a6 ip-192-168-92-134.ap-northeast-2.compute.internal Ready 2m32s v1.34.2-eks-ecaa3a6 (i-0343e26104cfd2180@eks-demo:N/A) [root@kops-ec2 environment]# 11 kubectl create deployment websrv --image=nginx --port=80 --replicas=4 kubectl expose deployment websrv --port=80 --type=LoadBalancer kubectl get deploy,rs,pod,svc,ep 12 다른 터미널에서 확인 watch -d kubectl get deploy,rs,pod,svc,ep 13 다른 터미널 마리오 cat < type: LoadBalancer 로 수정. 17 kubectl scale deployment.apps/mario --replicas=10 kubectl scale deployment.apps/mario --replicas=30 kubectl scale deployment.apps/mario --replicas=100 kubectl scale deployment.apps/mario --replicas=10 18 work node 수 늘리기 오토스케일링 그룹 이름을 알아야 한다 # eks-demo aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='eks-demo']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" --output table echo ${ASG_NAME} # 콘솔에서 확인 , EC2 > 오토스케일링 그룹 ASG_NAME=eks-node-group-02cde5e9-a1c8-96f0-8d35-21e2db10985c echo ${ASG_NAME} # node를 5로 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 5 --max-size 6 (i-0343e26104cfd2180@eks-demo:N/A) [root@kops-ec2 kube-ops-view]# k get no NAME STATUS ROLES AGE VERSION ip-192-168-20-86.ap-northeast-2.compute.internal Ready 43m v1.34.2-eks-ecaa3a6 ip-192-168-28-28.ap-northeast-2.compute.internal NotReady 5s v1.34.2-eks-ecaa3a6 ip-192-168-33-16.ap-northeast-2.compute.internal Ready 43m v1.34.2-eks-ecaa3a6 ip-192-168-92-134.ap-northeast-2.compute.internal Ready 43m v1.34.2-eks-ecaa3a6 ip-192-168-92-162.ap-northeast-2.compute.internal NotReady 5s v1.34.2-eks-ecaa3a6 (i-0343e26104cfd2180@eks-demo:N/A) [root@kops-ec2 kube-ops-view]# #node 1로 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 1 --desired-capacity 1 --max-size 6 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 1 --desired-capacity 3 --max-size 6