본문 바로가기
빅데이터,클라우드

AWS 기반 컨테이너: ECR, ECS, EKS의 기능 및 차이점

by 데이널 2024. 7. 15.

 

오늘은 AWS 기반 컨테이너 서비스를 알아보겠습니다. DevOps에 관심이 있다면, 도커와 쿠버네티스를 들어보셨을 건데요. AWS에서 대응되는 서비스는 바로 ECR, ECS, EKS 세 가지입니다. 이러한 서비스는 클라우드에서 애플리케이션을 관리하고 실행하는 데 도움이 됩니다. 각각에 대해 살펴보기 전에 컨테이너, 가상머신, 도커, 쿠버네티스 개념부터 확실히 하고 가시죠. 

 

AWS 컨테이너 기반 서비스
AWS 컨테이너 기반 서비스

 

컨터이너 vs 가상 머신

1. 컨테이너(Container)

하나의 Host OS 위에 Docker를 설치하여 그 위에 각각의 서비스(Application) 환경을 설치, 운영하는 형태입니다. 

  • Virtual Machine에 비해 상대적으로 가벼움
  • 컨테이너 서비스 중 가장 유명한 것이 도커임
  • Docker 설치된 환경을 이미지로 사용 가능하다는 장점이 있음
  • 독립된 환경(안)의 가상공간 제공

 

2. 가상 머신

하이퍼바이저(Hypervisor) 기법을 통해 단일 시스템에서 여려 VM을 실행하는 형태입니다. 보통 클라우드는 이 기법을 통해 논리적인 서버를 제공합니다. EC2 인스턴스도 가상 머신입니다. 

  • 운영체계(OS), 어플리케이션, Binary 및 Libray를 모두 포함하고 있어서 부팅속도 느림
  • 하나의 독립된 커널 공간을 가진 완전한 컴퓨터 환경
  • 다른 GuestOS와 분리 독립된 공간과 자원을 사용하기 때문에 보안성 측면에서 효율적

가상머신(VM) vs 컨테이너 비교, 어떤 차이가 있는가?

 

가상머신(VM) vs 컨테이너 비교, 어떤 차이가 있는가?

가성 머신(VM)과 컨테이너 설명을 접하고 드는 생각이 있습니다. 두 개가 비슷한 개념인가 하는 생각이죠. 하지만 두 기술의 차이점은 확연이 다릅니다. 우선 비교 설명을 하기 전에 베어메탈(Bare

bommbom.tistory.com

 

 

도커 vs 쿠버네티스

1. 도커

컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 소프트웨어의 실행에 필요한 모든 것을 포함해서 패키징 하는 개념입니다. 

  • 컨테이너는, ‘애플리케이션’과 ‘애플리케이션을 구동하는 환경’을, ‘Host OS’로부터 격리한 공간을 의미
  • 컨터이너로 하나의 큰 어플을 서비스 단위로 잘라 빠르게 배포할 수 있기 때문에 마이크로서비스라고 함

 

2. 쿠버네티스

여러 개의 컨테이너를 관리하는데 최적화합니다. 도커의 숫자가 몇개 안 될 때는 개별 관리하지만, 그 숫자가 많아지면 관리해 주는 기능이 필요한데요. 쿠버네티스가 컨테이너를 관리하는 서비스입니다. 도커와 쿠버네티스의 만남으로써 제대로 된 컨테이너 환경을 제공했다고 볼 수 있습니다. 

  • 오케스트레이션 엔진을 통해, 컨테이너의 생성과 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등 
  • 컨테이너로 어플리케이션을 구성하는 모든 과정을 관리할 수 있음

 

ECR(Elastic Container Registry)

ECR을 컨테이너를 저장하기 위한 라이브러리입니다. 도커와 대응되는 서비스인데요. 컨테이너는 어디서나 실행할 수 있는 작은 패키지 버전의 애플리케이션과 같습니다.

 

ECR은 이러한 컨테이너를 체계적으로 유지하고 관리하는 데 도움이 됩니다. 사용자가 컨테이너가 필요할 때마다 항상 준비되어 있습니다. 활용하기 위한 애플리케이션 서비스를  보관하는 잘 정리된 디렉터리 같은 서비스입니다. 

 

ECR, ECS, EKS
ECR, ECS, EKS, Fargate, E22

 

ECS vs EKS

1. ECS(Elastic Container Service)

ECS는 컨테이너를 실행하고 관리하는 서비스입니다. 쿠버네티스와 대응되는 서비스인데요. Amazon에서 만든 서비스가 바로 ECS입니다. ECR에서 컨테이너를 가져와 AWS 서버에서 실행합니다. ECS는 모든 것이 잘 작동하는지 확인하므로 세부 사항에 대해 관리해 줍니다. 

 

2. EKS(Elastic Kubernetes Service)

EKS는 AWS에서 제공하는 쿠버네티스 서비스입니다. ECS와 비슷하지만 쿠버네티스 기반이라는 것이 다릅니다. 쿠버네티스가 워낙 많이 사용하고 있기 때문에 AWS에서도 AWS 내에서 사용할 수 있게 제공하고 있습니다.

 

EKS는 복잡한 설정에 대해 걱정하지 않고 Kubernetes를 실행할 수 있도록 도와줍니다. 많은 제어와 유연성이 필요한 대규모 프로젝트에 적합합니다. 

 

마무리

많은 사이트에서 AWS EKS로 구성해서 사용하고 있는 것을 봅니다. 요즘은 이러한 아키텍처가 애플리케이션을 쉽고 효율적으로 구축, 저장 및 실행할 수 있기 때문입니다.

 

실제로 EKS 구성하는 프로젝트를 해 봤는데, 기술이 쉽지는 않습니다. 하지만 이 영역도 소수의 기술자들이 각광받는 분야입니다. 만약, 프로젝트를 ECR, EKS 담당자를 구한다면 한번 도전해 보실 것을 권합니다.