AWS Elastic Container Service(ECS)는 Amazon의 자체 개발 컨테이너 오케스트레이션 플랫폼입니다. 사용 편의성이 뛰어나지만 컨테이너 오케스트레이션의 사실상 표준으로 큰 인기를 얻고 있는 Kubernetes의 진정한 대안이 될 수 있을까요?
이 글에서는 ECS를 일반 Kubernetes와 비교하는 것이 완전히 정확하지 않다고 주장합니다. ECS는 Kubernetes가 제공할 수 없는 완전 관리형 환경을 제공하기 때문입니다. 또한, 경쟁 구도를 공정하게 만들어주는 세 번째 옵션으로 Amazon Elastic Kubernetes Service(EKS)를 살펴봅니다. 또한 NetApp Cloud Volumes ONTAP가 AWS에서 ECS, EKS 또는 일반 Kubernetes용 스토리지 프로비저닝을 어떻게 도울 수 있는지 보여줍니다.
이 문서에서는 다음을 배우게 됩니다.
Amazon Elastic Container Service(Amazon ECS)는 Docker 컨테이너를 실행하고 관리하는 컨테이너 오케스트레이션 서비스입니다. Amazon 클라우드에서 가상 머신 클러스터를 실행하고, 여러 가용 영역(AZ)에 걸쳐 이러한 머신에서 컨테이너 그룹을 관리, 확장 및 예약합니다.
ECS는 클러스터의 상태를 확인하고 수정하고, 컨테이너에 대한 작업을 수행하고, IAM, CloudWatch 및 CloudTrail과 같은 클러스터와 관련된 Amazon 서비스에 직접 액세스할 수 있는 편리한 프로그래밍 방식을 제공합니다.
이미지 출처: AWS
Amazon ECS의 장점은 다음과 같습니다.
Kubernetes는 오픈 소스 컨테이너 오케스트레이션 프레임워크입니다. Google이 세계 최대 규모의 컨테이너 시스템을 운영한 오랜 경험을 바탕으로 개발했습니다. Kubernetes는 매우 널리 채택되어 현재 컨테이너 오케스트레이션의 사실상 표준으로 자리 잡았습니다.
Kubernetes의 주요 기능으로는 서비스 검색 및 로드 밸런싱, 영구 스토리지를 포함한 스토리지 오케스트레이션, 컨테이너화된 애플리케이션의 자동 롤백, Kubernetes 클러스터의 자체 복구, 시크릿 및 구성 관리가 있습니다.
이미지 출처: Kubernetes.io
Kubernetes와 Amazon ECS를 비교하는 것은 완전히 공정하지는 않습니다. Amazon ECS는 컨테이너 오케스트레이션 플랫폼과 이를 운영하고 하드웨어 리소스를 프로비저닝하는 관리형 서비스라는 두 가지 요소를 하나의 제품으로 제공합니다. Kubernetes는 이 두 가지 요소 중 하나만 제공합니다.
점점 더 많은 조직들이 관리형 Kubernetes 서비스를 도입하고 있는데, 이는 Kubernetes의 복잡성을 줄이고 운영 환경에 더 빠르게 배포할 수 있도록 도와줍니다. 이러한 서비스의 예로는 Amazon Elastic Kubernetes Service(EKS), Azure Kubernetes Service(AKS), Google Kubernetes Engine(GKE) 등이 있습니다. 이 서비스들은 Kubernetes에 관리 계층을 추가하여 Amazon ECS와 완벽하게 유사한 환경을 구축할 수 있도록 해줍니다.
Kubernetes의 장점은 다음과 같습니다.
AWS ECS는 AWS에서 컨테이너 서비스를 관리하는 방법을 제공하지만, AWS 서비스 내에서 Kubernetes를 실행하려면 어떻게 해야 할까요? Amazon Elastic Kubernetes Service(Amazon EKS)는 AWS에서 제공하는 Kubernetes 관리 플랫폼입니다. Kubernetes 프로젝트의 인증을 받았으므로 Kubernetes 생태계에서 사용 중인 기존 애플리케이션, 도구 또는 플러그인을 문제없이 실행할 수 있습니다.
다음은 ECS와 EKS의 주요 차이점입니다.
| Amazon ECS | Amazon EKS | |
| 가격 | ECS 자체는 무료이며, 사용한 Amazon EC2 리소스에 대해서만 비용을 지불하면 됩니다. |
EKS 관리 계층에는 클러스터당 월 $144의 추가 비용이 발생합니다. |
| 구축 용이성 | AWS 관리 콘솔에서 직접 작업을 원활하게 배포할 수 있습니다. | Kops 또는 CloudFormation 템플릿을 통해 클러스터를 구성하고 배포하는 방법은 더 복잡합니다. |
| 호환성 | Amazon 전용입니다. | 멀티 클라우드 및 하이브리드 클라우드 배포를 지원합니다. |
Amazon ECS, EKS 및 자체 관리형 Kubernetes 중에서 선택하는 것은 프로젝트의 규모와 특성에 따라 달라집니다.
컨테이너화된 워크로드를 배포할 때 Kubernetes와 Amazon ECS 모두 기업 수준에서 활용을 저해하는 몇 가지 한계점을 가지고 있습니다. 예를 들어, 컨테이너에 저장된 데이터를 데이터베이스처럼 영구적으로 저장해야 하는 경우 비용이 상당한 부담이 될 수 있습니다. 만약 컨테이너의 데이터를 테스트 목적으로만 사용해야 한다면 어떨까요? 바로 이럴 때 NetApp Cloud Volumes ONTAP가 도움이 될 수 있습니다.
NetApp Cloud Volumes ONTAP는 선도적인 엔터프라이즈급 데이터 관리 솔루션으로, AWS, Azure 및 Google Cloud 클라우드 컴퓨팅 및 스토리지를 기반으로 구축된 안전하고 검증된 스토리지 관리 서비스를 제공합니다. NetApp Trident의 도움으로 Azure Disk, Amazon EBS 또는 Google Persistent Disk의 스토리지 볼륨을 사용자의 추가 작업 없이 자동으로 동적으로 프로비저닝할 수 있습니다.
Cloud Volumes ONTAP는 파일 서비스, 데이터베이스, DevOps 및 애플리케이션 워크로드와 같은 엔터프라이즈 사용 사례를 지원합니다. 쿠버네티스 저장소에 관해서는, Cloud Volumes ONTAP이 컨테이너화된 워크로드의 영구 스토리지 요구를 위한 쿠베네티스 통합 을 제공하며, Kubernetes NFS 공유, 고가용성, 비용 효율적인 영구 데이터 저장 보호, Kubernetes 클라우드 스토리지 비용 절감 등 클라우드에서는 기본적으로 제공되지 않는 강력한 기능들을 지원합니다. NetApp 스토리지 효율성 기능, 클라우드 자동화등 다양한 기능을 제공합니다.