[쿠버네티스] Kubernetes(K8s) 개념
ㅇ쿠버네티스(Kubernetes, K8s): “컨테이너”화된 애플리케이션을 자동으로 배포, 관리 및 확장하는 오픈소스 오케스트레이션 플랫폼현대 애플리케이션 개발에서는 컨테이너 기술이 필수적이다.
claremont.tistory.com
Kubernetes(K8s)는 컨테이너화된 애플리케이션을 배포, 관리 및 확장하는 오픈소스 오케스트레이션 도구이며, EKS를 사용하면 AWS 환경에서 Kubernetes 클러스터를 쉽게 운영할 수 있다!
ㅁAmazon Elastic Kubernetes Service(Amazon EKS): AWS에서 완전 관리형 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스
(Amazon EKS의 핵심 역할)
- Kubernetes 클러스터를 자동으로 생성 및 관리
- AWS 인프라에서 고가용성 및 확장성 제공
- 온프레미스 및 하이브리드 환경에서도 EKS Anywhere를 통해 활용 가능
- Fargate와 연동하여 서버리스 Kubernetes 운영 가능
Amazon EKS의 주요 특징
1) 완전 관리형 Kubernetes 서비스
- Amazon EKS는 Kubernetes의 제어 플레인(Control Plane)을 자동으로 관리하며, 사용자는 워커 노드(Worker Node)만 운영하면 된다
- Kubernetes 버전 업그레이드, 보안 패치 적용, 고가용성 유지 등을 AWS가 자동으로 수행한다
2) AWS 네이티브 서비스와의 연동
- Amazon EKS는 AWS VPC, IAM, ELB, Auto Scaling 등과 통합되어 원활하게 운영된다
- AWS Load Balancer Controller, AWS Fargate, AWS App Mesh 등과 함께 사용 가능
3) 높은 확장성과 가용성
- 여러 가용 영역(AZ)에 걸쳐 클러스터를 배포하여 장애 조치를 자동화할 수 있다
- 자동 확장(Auto Scaling) 및 Spot Instance 활용으로 비용 최적화 가능
4) 보안 및 규정 준수
- IAM과 통합하여 역할 기반 액세스 제어(RBAC, Role-Based Access Control)를 지원한다
- AWS PrivateLink를 통해 인터넷을 거치지 않고 VPC 내부에서 안전하게 EKS API 호출 가능
- AWS WAF(웹 방화벽) 및 네트워크 정책(CNI Plugin) 적용 가능
5) 온프레미스 및 하이브리드 지원 (EKS Anywhere & EKS Distro)
- Amazon EKS Anywhere: 온프레미스 환경에서 Kubernetes 클러스터를 실행할 수 있도록 지원
- Amazon EKS Distro: AWS에서 제공하는 Kubernetes 배포판을 사용하여 자체적으로 클러스터 운영 가능
[Amazon EKS 아키텍처 구성요소]
📌 1) 제어 플레인 (Control Plane)
- EKS에서 관리하는 Kubernetes API 서버 및 etcd 데이터 저장소
- 클러스터 상태 관리 및 노드 간 통신을 담당
- Multi-AZ(다중 가용 영역)에 걸쳐 배포되어 고가용성 보장
📌 2) 데이터 플레인 (Data Plane)
- 애플리케이션이 실행되는 워크로드 노드(Worker Nodes)
- Amazon EC2 인스턴스 또는 AWS Fargate(서버리스 컨테이너)에서 실행됨
- kubectl을 통해 컨테이너 배포 및 관리 가능
📌 3) VPC 네트워크 (Networking)
- AWS VPC 내부에서 EKS 클러스터를 실행하고, ENI(Elastic Network Interface)를 통해 네트워크 관리
- AWS CNI(Container Network Interface)를 사용하여 Pod 간 통신 및 로드 밸런싱 수행
📌 4) IAM 인증 및 RBAC
- IAM과 Kubernetes RBAC(Role-Based Access Control) 연동으로 보안 정책 관리
- 사용자 및 서비스 계정에 대해 세분화된 권한 제어 가능
Amazon EKS 배포 방식
Amazon EKS vs ECS
EKS와 ECS(Amazon Elastic Container Service)는 AWS에서 제공하는 대표적인 컨테이너 오케스트레이션 서비스다
✅ Amazon EKS는 Kubernetes 기반 애플리케이션을 AWS에서 쉽게 실행할 수 있도록 도와주는 서비스로, 오픈소스 생태계와 연동성이 뛰어나다
✅ Amazon ECS는 AWS 환경에 최적화된 간단한 컨테이너 관리 서비스로, Kubernetes에 대한 학습 부담 없이 빠르게 컨테이너를 운영할 수 있다
Amazon EKS 시작 방법
1️⃣ EKS 클러스터 생성
aws eks create-cluster --name my-cluster --role-arn <IAM_ROLE> --resources-vpc-config subnetIds=<SUBNET_ID>,securityGroupIds=<SECURITY_GROUP_ID>
2️⃣ 클러스터 구성 확인
aws eks describe-cluster --name my-cluster --query "cluster.status"
3️⃣ 워커 노드(Worker Node) 추가
aws eks create-nodegroup --cluster-name my-cluster --nodegroup-name my-nodegroup --subnets <SUBNET_ID>
4️⃣ kubectl을 사용한 배포
kubectl get nodes
kubectl apply -f my-deployment.yaml
[결론]
- Amazon EKS는 AWS에서 Kubernetes 클러스터를 쉽게 배포하고 관리할 수 있도록 지원하는 서비스이다
- Kubernetes의 강력한 오케스트레이션 기능을 활용하면서도 AWS의 네이티브 서비스와 긴밀하게 연동 가능!
- Fargate를 사용하면 서버리스 방식으로 컨테이너를 실행할 수도 있다
- 기존 Kubernetes 환경을 AWS로 마이그레이션하고 싶은 기업들에게 최적의 솔루션이다~
Amazon EKS를 활용하면 확장성과 가용성이 뛰어난 클라우드 네이티브 애플리케이션을 손쉽게 운영할 수 있다 [:
'클라우드 > AWS' 카테고리의 다른 글
[AWS] Amazon ECR(Elastic Container Registry)이 궁금해요(feat.도커) (0) | 2025.03.07 |
---|---|
[AWS] IAM(Identity and Access Management): 롤 플레이 (0) | 2025.03.06 |
[AWS] ELB(Elastic Load Balancer)란? (1) | 2025.03.06 |
[AWS] Route 53 - DNS 서비스 (0) | 2025.03.06 |
[AWS] 라우팅 테이블 제대로 이해하기 (0) | 2025.03.05 |