1 # 콘솔 로그인 오른쪽위 서울리전 사용하는지 확인 - 교육기관 계정인 경우 본인 리전 사용 2 # ec2 키페어 1개 만들어야 한다.. ec2 > 네트워크 보안 및 보안 > 키 페어 EC2 키페어 생성 (기존에 EC2 키페어 있는경우는 해당 키페어 사용) data-2026-03-28 3 # ec2 1개 만드는 CloudFomation 실행 CloudFomation eks-man-wa wa alias 추가한 파일 4 ec2에 적용을 위한 iam role 하나 만듬. IAM > 역할 seo-admin role 생성 admin 권한 제공 # 콘솔에서 EC2 클릭 > 오른 마우스 보안 > 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 6 # 리전 지정 - 교육기관 계정인 경우 본인 리전 사용 mkdir -p ~/environment/ cd ~/environment/ export AWS_REGION=ap-northeast-2 echo ${AWS_REGION} 7 # eks 생성하기1 - m7i-flex.large 무료계정 가능 타입 , 워커 노드의 인스턴스 타입 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: m7i-flex.large # 클러스터 워커 노드의 인스턴스 타입 desiredCapacity: 1 # 클러스터 워커 노드의 갯수 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 # 무료 계정으로 가능한 서버 t3.micro t3.small c7i-flex.large 2/4 m7i-flex.large 2 /8 ----------------------------------- # 유료 계정인 경우 아래 사용 # eks 생성하기2 - 무료 계정에서는 m5.large # 클러스터 워커 노드의 인스턴스 타입 생성 불가 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: 1 # 클러스터 워커 노드의 갯수 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 (15분 소요 됨) 8 k get no (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 9 # 터미널2 - 다른 터미널에서 .모니터링 wa watch -d kubectl get deploy,rs,pod,svc 10 # EKS에 서버 배포 테스트 # 오픈 레지스트리에서 nginx 이미지로 websrv 생성하기 kubectl create deployment websrv --image=nginx --port=80 --replicas=2 # 로드 밸런서 연결 - 생성후 2분 있다 연결이 됩니다. kubectl expose deployment websrv --port=80 --type=LoadBalancer # 웹브라우저로 서비스 접속해보기 Microsfot Edge 사용하세요 - HTTP 80이 기본 크롬사용시 안될수 있습니다. 기본 HTTPS 443 사용 13 # 마리오 게임 배포 테스트 - 생성후 2분 있다 연결이 됩니다. cat < type: LoadBalancer 로 수정. (3분 걸림) 17 # 파드 미리 늘려 놓자. kubectl scale deployment.apps/websrv --replicas=10 kubectl scale deployment.apps/websrv --replicas=30 18 # work node 수 늘리기 오토스케일링 그룹 이름을 알아야 한다. 콘솔에서 확인 EC2 > Autoscaling Group에서 이름 확인 # 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-72ce98d3-2648-6197-6f87-9947a586d758 echo ${ASG_NAME} # node를 4로 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 4 --max-size 10 (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-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 수고하셨습니다. #node 2로 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 1 --desired-capacity 2 --max-size 6 감사합니다.