Logo

AWS 컨테이너 서비스 훑어보기

Happy New Year! 2023년 새해가 밝았네요. 🎊

컨테이너 관리 도구를 직접 개발하는 것은 매우 어려운 일이기 때문에, AWS에서는 다양한 완전 관리형 컨테이너 오케스트레이션 서비스를 제공하고 있습니다. 이번 포스팅에서는 AWS에서 사용할 수 있는 다양한 컨테이너(container) 서비스에 대해서 살펴보도록 하겠습니다.

ECS

Amazon Elastic Container Service, 줄여서 ECS는 AWS에서 가장 오래된 컨테이너 서비스로서 도커(Docker) 컨테이너를 사용할 수 있도록 해주는 서비스입니다.

ECS는 사용 방법이 간단한 편인데요. 기본적으로 AWS가 도커 컨테이너를 알아서 시작하고 중지해주기 때문에 손쉽게 애플리케이션 배포와 운영이 가능해집니다.

단, 고객이 직접 EC2 인스턴스 기반 클러스터를 프로비전(provision)하고 유지보수해줘야하는 불편함이 있습니다.

Docker 관련해서는 본 블로그에서 여러 포스팅을 통해서 다루고 있으니 참고 바랍니다.

EKS

오픈소스 컨네이너 운영 자동화 도구로 각광받고 있는 쿠버네티스(Kubernetes)로 컨테이너 관리를 하고 싶다면 Amazon Elastic Kubernetes Service, 줄여서 EKS를 사용할 수 있습니다.

EKS를 사용하면 온프레미스(on-premises) 환경에서 쿠버네티스를 사용하듯이 AWS 클라우드 환경에서 컨테이너 예약, 애플리케이션 가용성 관리, 클러스터 데이터 저장 등을 수행할 수 있습니다.

Fargate

ECS를 사용하든 EKS를 사용하든 기본적으로 서버를 관리해야하는 부분이 고객의 몫이기 때문에 유지보수 부담이 될 수가 있는데요. 이럴 때는 서버리스(serverless) 컨테이너 서비스인 AWS Fargate가 좋은 대안이 될 수 있습니다.

AWS Fargate는 AWS Lambda처럼 기본적으로 사용한 만큼만 비용이 청구되는 종량제 컴퓨팅 엔진인데요. 컨테이너 배포 및 운영은 AWS에 맡기고, 실행하는 데 필요한 리소스에 대해서만 비용을 지불한다고 보면 되겠습니다.

ECR

Amazon Elastic Container Registry, 줄여서 ECR은 컨테이너 이미지를 저장하기 위한 사설 저장소(private registry)입니다.

ECR은 단독으로 사용하기 보다는 지금까지 소개해드린 다른 컨테이너 서비스와 함께 사용하는 것이 일반적인데요. 많은 회사에서 보안상의 이유로 Docker Hub와 같이 인터넷에 공개된 컨테이너 이미지 저장소를 사용할 수 없기 때문에 ECR을 많이 사용하게 됩니다.

ECR에 올려놓은 컨테이너 이미지는 외부에서 접근이 불가능하며 ECS나 EKS, Fargate와 같은 서비스에서만 접근이 가능합니다.

마치면서

지금까지 AWS에서 제공하고 있는 대표적인 컨테이너 서비스 4가지를 아무 간단하게 소개해드렸습니다. 본 포스팅이 AWS에서 컨테이너 서비스를 선택하실 때 작은 도움이 되었으면 좋겠습니다.