0Pricing
Cloud & IT Cert Prep · 강의

EKS 컨트롤 플레인 및 워커 노드

EKS 컨트롤 플레인에서 AWS가 관리하는 항목을 이해하고, 관리형 노드 그룹을 프로비저닝하며, kubectl을 클러스터에 연결합니다.

EKS 컨트롤 플레인 및 워커 노드은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

Amazon EKS란 무엇인가요

Amazon Elastic Kubernetes Service (EKS)는 Kubernetes 컨트롤 플레인을 설치, 운영, 유지 관리해야 하는 부담을 없애 주는 완전 관리형 Kubernetes 서비스입니다. AWS는 여러 가용 영역에서 컨트롤 플레인을 실행하고 확장하며 업그레이드하여 가용성이 높은 클러스터 엔드포인트를 제공합니다. 학습자는 애플리케이션 워크로드의 배포와 관리에만 집중하면 됩니다.

EKS 컨트롤 플레인

EKS 컨트롤 플레인은 API 서버, etcd, 컨트롤러 관리자, 스케줄러로 구성되며 모두 AWS가 관리합니다. 이러한 구성 요소는 AWS 소유 계정에서 실행되므로 학습자가 해당 구성 요소에 SSH로 접속할 일은 없습니다. AWS는 EKS API 엔드포인트에 대해 99.95% SLA를 보장하고 비정상 컨트롤 플레인 노드를 자동으로 교체합니다. 컨트롤 플레인에는 클러스터별 시간당 고정 요금이 부과됩니다.

EKS 클러스터 생성하기

AWS 콘솔, eksctl 또는 CloudFormation을 사용하여 EKS 클러스터를 생성할 수 있습니다. 클러스터에는 최소 2개의 AZ에 걸친 서브넷이 있는 VPC와 Kubernetes 컨트롤 플레인이 AWS API를 호출할 수 있도록 권한을 부여하는 IAM 역할이 필요합니다. 클러스터가 생성되면 클러스터 엔드포인트는 kubeconfig에 구성하는 HTTPS URL이 됩니다.

# Create a cluster with eksctl (recommended for getting started)
eksctl create cluster \
  --name my-cluster \
  --region us-east-1 \
  --version 1.29 \
  --nodegroup-name standard-nodes \
  --node-type m5.large \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 5

kubectl을 EKS에 연결하기

클러스터를 생성한 후 로컬 kubeconfig를 업데이트하여 kubectl이 EKS API 서버에 연결하는 방법을 알도록 해야 합니다. AWS CLI가 필요한 항목을 자동으로 생성합니다. EKS API 서버는 인증에 AWS IAM을 사용하며, aws-auth ConfigMap을 통해 IAM 사용자 또는 역할이 Kubernetes RBAC ID에 매핑됩니다.

# Update kubeconfig for your EKS cluster
aws eks update-kubeconfig \
  --region us-east-1 \
  --name my-cluster

# Verify connectivity
kubectl get nodes
kubectl get pods --all-namespaces

관리형 노드 그룹

관리형 노드 그룹을 사용하면 AWS가 학습자를 대신하여 EC2 작업자 노드를 프로비저닝하고 등록하며 수명 주기를 관리합니다. 업데이트나 교체를 요청하면 EKS가 수동 개입 없이 파드를 자동으로 드레이닝하고 인스턴스를 교체한 뒤 다시 등록합니다. 관리형 노드 그룹은 내부적으로 Auto Scaling Groups를 사용하므로 최소/최대/희망 용량을 제어하고 Cluster Autoscaler와 통합할 수 있습니다.

# Add a managed node group to an existing cluster
eksctl create nodegroup \
  --cluster my-cluster \
  --region us-east-1 \
  --name high-mem-nodes \
  --node-type r6i.large \
  --nodes 2 \
  --nodes-min 1 \
  --nodes-max 10 \
  --managed

자체 관리형 노드 그룹

자체 관리형 노드 그룹에서는 학습자가 직접 EC2 인스턴스를 시작하고(CloudFormation 또는 Terraform 사용) 부트스트랩 스크립트를 실행하여 EKS 클러스터에 등록합니다. 이 방식은 사용자 지정 AMI, GPU 인스턴스 유형 또는 고도로 사용자 지정된 커널 구성을 사용할 수 있어 유연성이 가장 높지만, 노드의 패치 적용, 드레이닝 및 교체를 전적으로 직접 책임져야 합니다.

# Bootstrap script baked into the launch template
/etc/eks/bootstrap.sh my-cluster \
  --apiserver-endpoint 'https://EXAMPLE.gr7.us-east-1.eks.amazonaws.com' \
  --b64-cluster-ca 'BASE64_ENCODED_CA' \
  --kubelet-extra-args '--node-labels=role=custom'

노드 IAM 역할 및 인스턴스 프로필

모든 작업자 노드는 다음 세 가지 AWS 관리형 정책이 있는 EC2 인스턴스 프로필로 실행되어야 합니다. AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy, AmazonEC2ContainerRegistryReadOnly입니다. 이 정책을 통해 노드가 클러스터에 참여하고 VPC CNI 플러그인으로 파드 네트워킹을 관리하며 ECR에서 이미지를 가져올 수 있습니다. 이러한 정책이 없으면 노드 등록에 실패합니다.

# Attach required policies to the node role
aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

aws-auth ConfigMap: IAM에서 RBAC로 매핑

EKS는 kube-system 네임스페이스의 aws-auth ConfigMap을 사용하여 IAM 사용자와 역할을 Kubernetes 사용자 이름 및 그룹에 매핑합니다. 클러스터를 생성하면 생성자의 IAM ID에만 관리자 액세스 권한이 자동으로 부여됩니다. 다른 사용자나 CI/CD 역할이 클러스터에 액세스하도록 허용하려면 올바른 mapRoles 또는 mapUsers 키를 사용하여 이 ConfigMap에 항목을 추가해야 합니다.

# View and edit the aws-auth ConfigMap
kubectl describe configmap aws-auth -n kube-system

# Add a role mapping (example YAML fragment)
# mapRoles:
# - rolearn: arn:aws:iam::111122223333:role/EKSNodeRole
#   username: system:node:{{EC2PrivateDNSName}}
#   groups:
#     - system:bootstrappers
#     - system:nodes

EKS 추가 기능 및 클러스터 업그레이드

EKS 추가 기능은 VPC CNI, CoreDNS, kube-proxy와 같이 AWS가 검증하고 선별한 소프트웨어 구성 요소로, EKS가 학습자를 대신하여 설치하고 최신 상태로 유지할 수 있습니다. 클러스터의 Kubernetes 버전을 업그레이드할 때는 먼저 컨트롤 플레인을 업데이트한 다음 각 관리형 노드 그룹을 일치하는 버전으로 업데이트합니다. EKS는 업데이트 진행 기간 동안 컨트롤 플레인과 노드 사이에 N-1 마이너 버전 차이를 지원합니다.

# List available add-ons and their versions
aws eks describe-addon-versions \
  --kubernetes-version 1.29 \
  --query 'addons[].{Name:addonName,Versions:addonVersions[0].addonVersion}' \
  --output table

# Update the VPC CNI add-on
aws eks update-addon \
  --cluster-name my-cluster \
  --addon-name vpc-cni \
  --addon-version v1.16.0-eksbuild.1

EKS 보안: 엔드포인트 액세스 및 암호화

EKS API 서버 엔드포인트는 퍼블릭 전용, 프라이빗 전용 또는 두 가지 모두로 구성할 수 있습니다. 퍼블릭 엔드포인트는 IAM 인증으로 보호되고, 프라이빗 전용 엔드포인트에 액세스하려면 kubeconfig가 VPN 또는 Direct Connect를 통해 VPC에 연결되어야 합니다. 또한 AWS KMS 키를 사용하여 저장된 Kubernetes 보안 정보에 봉투 암호화를 활성화함으로써 민감한 구성 데이터를 한층 더 보호할 수 있습니다.

# Enable private endpoint and envelope encryption at cluster creation
aws eks create-cluster \
  --name secure-cluster \
  --kubernetes-version 1.29 \
  --role-arn arn:aws:iam::111122223333:role/EKSClusterRole \
  --resources-vpc-config subnetIds=subnet-xxx,securityGroupIds=sg-xxx,endpointPublicAccess=false,endpointPrivateAccess=true \
  --encryption-config '[{"provider":{"keyArn":"arn:aws:kms:us-east-1:111122223333:key/KEY_ID"},"resources":["secrets"]}]'

EKS에서 Cluster Autoscaler 사용하기

Cluster Autoscaler는 예약할 수 없는 파드를 감시하고 관리형 노드 그룹 Auto Scaling Groups의 크기를 자동으로 조정하는 Kubernetes 파드입니다. 리소스 부족으로 파드를 예약할 수 없으면 Cluster Autoscaler가 확장하고, 노드의 사용률이 낮으며 해당 파드를 다른 곳에서 다시 예약할 수 있으면 축소합니다. 이 기능을 사용하려면 IRSA를 통해 EC2 Auto Scaling API를 호출할 IAM 권한이 필요합니다.

# Deploy Cluster Autoscaler (abbreviated)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml

# Add required annotation so it discovers your cluster ASGs
kubectl annotate serviceaccount cluster-autoscaler \
  -n kube-system \
  eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/ClusterAutoscalerRole

빠른 확인

이 단원에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 이해했는지 확인하십시오.

레슨 요약

이 레슨에서 다음을 배웠습니다. AWS manages the EKS control plane는 99.95% SLA를 제공하고, 관리형 노드 그룹을 사용하면 AWS가 노드 수명 주기를 관리하는 반면 자체 관리형 그룹은 최대한의 사용자 지정을 제공합니다. 또한 the aws-auth ConfigMap은 IAM 자격 증명을 Kubernetes RBAC에 매핑하여 클러스터 액세스를 제어합니다. 다음으로 서버리스 pod 실행을 위한 Fargate 프로필을 살펴보겠습니다.

자주 묻는 질문

“EKS 컨트롤 플레인 및 워커 노드” 강의는 무료인가요?

네 — “EKS 컨트롤 플레인 및 워커 노드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“EKS 컨트롤 플레인 및 워커 노드”에서 뭘 배우나요?

EKS 컨트롤 플레인에서 AWS가 관리하는 항목을 이해하고, 관리형 노드 그룹을 프로비저닝하며, kubectl을 클러스터에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“EKS 컨트롤 플레인 및 워커 노드” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. EKS 컨트롤 플레인 및 워커 노드
  2. 서버리스 파드를 위한 Fargate 프로필
  3. EKS 네트워킹: VPC CNI 및 로드 밸런싱
  4. 서비스 계정을 위한 IAM 역할(IRSA)
← Cloud & IT Cert Prep(으)로 돌아가기