본문 바로가기

AWS/Docker

[AWS/Docker] EC2, Fargate 그리고 ECS, EKS의 차이점

Amazon EC2와 AWS Fargate 차이점

Amazon Elastic Compute Clod(EC2)는 AWS를 대표하는 클라우드 가상 서버 서비스입니다. EC2는 가상 머신-컴퓨터(VM)로써 실제 컴퓨터 시스템을 사용하듯 컴퓨터 시스템에서 동작하는 어떤 것이라도 처리 할 수 있습니다.

반면 AWS Fargate는 오로지 애플리케이션의 배포와 관리에만 집중된 서비스입니다. 가상 머신의 클러스터링을 프로비저닝, 구성 및 관리하는 인프라를 완전히 배제합니다. Fargate는 EC2보다 더 추상화된 서버리스(Serverless) 서비스이며, 서버리스라는 점에서 코드만으로 서비스를 실행하는 AWS Lambda와 유사합니다. Fargate는 Containerized 애플리케이션의 실행을 위해 Amazon ECS와 Amazon EKS 모두에서 호환됩니다.

출처 : https://aws.amazon.com/ko/fargate/

Amazon ECS와 Amazon EKS 차이점

Amazon Elastic Kubernetes Service(EKS)는 쿠버네티스(Kubernetes, k8s)를 손쉽게 사용하기 위한 컨테이너 오케스트레이션 서비스입니다. EKS는 k8s 인증 서비스로써 k8s에서 실행되는 기존 애플리케이션과 호환됩니다.

출처 : https://aws.amazon.com/ko/eks/

Amazon Elastic Container Service(ECS)는 AWS에서만 제공되는 컨테이너 오케스트레이션 서비스입니다. ECS는 AWS 고유 서비스로써 타 플랫폼과의 호환이 되지 않으나 EKS보다 사용 요금이 저렴합니다.

출처 : https://aws.amazon.com/ko/ecs/

ECS와 EKS 모두 Fargate 또는 EC2 위에서 동작합니다. 다시말해 Fargate와 EC2는 ECS 또는 EKS와 같은 컨테이너 오케스트레이션 환경에서 동작한다고 할 수 있습니다.

AWS의 컨테이너 서비스

AWS에서 컨테이너를 실행하는 가장 단순한 쉬운 방법은 EC2 인스턴스에 도커를 설치하고, 로컬 호스트에서처럼 도커를 사용하는 것입니다. 하지만 각 개발 환경에 맞는 AWS의 다양한 컨테이너 서비스를 사용하면 Containerized 앱의 배포 및 관리, 인프라 구축까지 전반적인 업무를 지원 받을 수 있습니다.