Amazon EKS

최세연·2024년 11월 10일
2
post-thumbnail

Kubernetes의 컨트롤 플레인 또는 노드를 제공하는 AWS의 관리형 K8S 서비스

그럼 EKS를 알아가기 전에 Kubernetes를 정말 간단하게만 알아가봅시다.

Kubernetes

컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 플랫폼

왜 필요할까요?

컨테이너 기술을 활용하면 애플리케이션과 그 종속성을 독립적으로 패키징하고 실행할 수 있어 개발과 배포가 용이해집니다. 하지만 애플리케이션이 성장함에 따라 수백 개, 수천 개의 컨테이너를 관리해야 하는 상황이 발생할 수 있습니다. 그러면서 다양한 문제를 마주할 수 있습니다.

컨테이너를 어디에 배포할지 결정하고 트래픽 변화에 따라 적절히 수를 조정해야 하는 배포와 스케일링의 어려움, 컨테이너가 실패했을 때 이를 자동으로 복구해야 하는 장애 복구의 필요성, 여러 컨테이너로 요청을 효율적으로 분배해야 하는 로드 밸런싱, 그리고 각 컨테이너의 상태를 지속적으로 확인하고 문제를 진단할 수 있는 모니터링과 로깅 등이 있습니다.

따라서, Kubernetes는 이러한 문제를 해결하기 위해 설계된 컨테이너 오케스트레이션 플랫폼입니다.

주요 기능

컨테이너 배포 및 복구

애플리케이션을 정의하면 쿠버네티스가 필요한 컨테이너를 자동으로 배포하고, 문제가 발생하면 즉시 복구 작업을 수행합니다.

자동 확장 & 축소

시스템 부하에 따라 컨테이너를 수평으로 확장(스케일 아웃)하거나 축소(스케일 인)합니다.

로드밸런싱

클러스터 내에서 트래픽을 각 컨테이너로 분배하여 애플리케이션의 성능을 최적화합니다.

서비스 디스커버리 및 네트워킹

DNS 이름 또는 IP를 통해 컨테이너 간 통신을 지원하며, 네트워크 설정을 간소화합니다.

롤링 업데이트 & 롤백

애플리케이션을 중단 없이 업데이트하고, 문제가 발생하면 이전 버전으로 되돌릴 수 있습니다.

이러한 기능들 덕분에, 대규모 애플리케이션을 안정적이고 효율적으로 운영하고자한다면 Kubernetes는 최적의 선택이 될 수 있습니다.

Amazon EKS 특징

Amazon EKS는 결국 AWS에서 제공하는 매니지드 Kubernetes 서비스이기 때문에 AWS 인프라와 호환성이 좋습니다. EKS는 쿠버네티스의 컨트롤 플레인과 노드 관리를 자동화하여 운영 복잡성을 대폭 줄여주기 때문에 사용자가 쿠버네티스 워크로드를 더 쉽게 배포하고 관리할 수 있습니다.

운영 부담 감소

쿠버네티스 컨트롤 플레인을 AWS가 완전히 관리하여 운영 부담을 줄이고, 사용자는 워커 노드와 애플리케이션 배포에만 집중할 수 있습니다. 컨트롤 플레인은 다중 AZ(가용 영역)에 걸쳐 배포되어 고가용성과 안정성을 제공하며, 자동 업그레이드 및 패치로 항상 최신 상태를 유지합니다.

AWS 서비스 통합 관리

IAM, CloudWatch, VPC, ELB 등 AWS 서비스와 통합되어 보안, 네트워킹, 모니터링 작업을 간소화합니다. ELB(Elastic Load Balancing)으로 로드 밸런싱을 자동 설정하고, ECR을 통해 컨테이너 이미지를 효율적으로 관리할 수 있습니다.

효율적인 리소스 관리

Amazon Auto Scaling 및 Managed Node Groups를 지원하여 워커 노드의 수를 자동으로 확장하거나 축소할 수 있습니다. 또한, HPA(Horizontal Pod Autoscaler)와 Karpenter와 같은 도구를 통해 Pod 단위의 확장도 자동화하여 효율적으로 리소스 관리를 할 수 있습니다.

멀티 AZ 지원

다중 AZ에 걸쳐 클러스터를 배포하여 장애 발생 시에도 애플리케이션의 중단 없는 운영을 보장합니다. 이러한 아키텍처는 서비스 연속성을 유지하며, 안정적인 애플리케이션 운영이 ㅅ가능합니다.

보안과 인증 기능 강화

AWS IAM을 활용하여 사용자와 리소스의 인증 및 권한 관리를 강화할 수 있습니다.

서버리스 워크로드 실행

AWS Fargate와 통합되어 서버리스 방식으로 쿠버네티스 워크로드를 실행할 수 있습니다. 이를 통해 워커 노드와 관련된 인프라를 관리할 필요 없이 매니지드된 환경에서 애플리케이션을 손쉽게 운영할 수 있습니다.

Amazon EKS 한계

AWS가 관리형 서비스로 제공하는 만큼, 자체적으로 쿠버네티스를 운영하는 것보다 비용이 더 들 수 있습니다. 특히 대규모 클러스터를 운영할 때는 비용 관리가 중요한 문제로 부각될 수 있습니다.

또한, EKS는 AWS 클라우드 환경에 종속적이기 때문에 멀티클라우드 전략이나 온프레미스 환경에서는 활용할 수 없는 제약이 있습니다. 더불어, 컨트롤 플레인을 AWS가 관리하다 보니 일부 설정은 사용자 마음대로 변경할 수 없어서, 세부적인 커스터마이징이 필요한 상황에서는 한계를 느낄 수도 있습니다.

Amazon EKS, 언제 사용하면 좋을까요?

AWS 기반 서비스를 운영 중인 곳에서 적합합니다.

이미 AWS 서비스를 활용하고 있다면, EKS를 통해 쿠버네티스를 손쉽게 통합할 수 있습니다. 또한, 쿠버네티스 운영에 대한 경험이 부족한 경우에도 운영 부담을 크게 줄이고 빠르게 컨테이너 환경을 구축할 수 있어 유리합니다.

만약 대규모 애플리케이션을 안정적으로 운영해야 하거나 고가용성과 확장성이 중요한 상황에서도 EKS는 좋은 선택지가 될 수 있습니다. 특히 서버 관리에 들이는 노력을 줄이고 AWS의 네트워킹 및 보안 기능을 최대한 활용하려는 경우라면, EKS는 이상적인 클라우드 서비스입니다. 하지만 수제로 만드는 것보단 비싼건 어쩔 수 없는 부분입니다.

profile
오물쪼물 코딩생활 ๑•‿•๑

0개의 댓글

관련 채용 정보