반응형

AWS의 EKS(Elastic Kubernetes Service)와 ECS(Elastic Container Service)의  개념과 차이점을 이해하고 먼저 EKS와 ECS를 알아보기 전에 쿠버네티스와 도커에 대해서도 간략하게 알아보겠다.

 

쿠버네티스(Kubernetes)

1. 쿠버네티스
오픈 소스 컨테이너 관리 플랫폼으로 컨테이너 배포 및 확장에 용이하고 최신 응용 프로그램 구축을 위한 기본 요소를 제공해준다.

*컨테이너 장점 : VM은 APP를 동작하기 위해 APP 리소스 뿐 아니라 VM운영체제가 동작하기 위한 리소스가 추가로 필요하지만, 컨테이너는 APP만 동작하기 위한 리소스만 필요하기 때문에 훨씬 가볍고 빠르다.

 

2. Kubeadm, Kubelet, Kubectl

모든 머신에 설치 되야 하는 패키지

  • Kubeadm : 클러스터를 부트스트랩하는 명령어
  • Kubelet : 클러스터의 모든 머신에서 실행되는 Pod, Container 시작과 같은 작업을 수행하는 컴포넌트
  • Kubectl : 클러스터와 통신하기 위한 커맨드라인 유틸

3. 쿠버네티스 노드

쿠버네티스 클러스터를 구성하는 머신으로 마스터노드와 컨테이너 이미지들을 작동시키는 워커 노드로 구성

 

4. 쿠버네티스 오브젝트

클러스터의 상태를 나타내는 단위로 어느 컨테이너가 어느 노드에서 동장 중인지 알 수 있다.

  • Pod : 관련성 있는 하나 이상의 컨테이너를 둘러싼 가장 작은 단위
  • DeamonSet : 워커 노드에 파드의 단일 인스턴스를 실행 (성능수집, 로그수집이나 스토리지 서비스가 필요할 때 사용하며, ReplicaSet 과 다른점은 노드에 하나씩의 Pod를 배치하기 때문에 복제본 지정이 안됨)
  • Deployment : 어플리케이션 버전의 롤아웃, 롤백 방법에 대한 내용
  • ReplicaSet : 계속 동작할 파드의 개수. 정해진 수의 동일한 노드가 항상 실행되도록 하기 떄문에 노드 장애등의 이유로 Pod를 사용할 수 없을 경우 다른 노드에서 Pod를 다시 생성함.
  • Job : 파드가 완성되어 동작할 수 있게 함.
  • Job Controller : Pod의 App의 실행되고 완료하면 종료하는 배치와 임시작업에 유용한 컨트롤러. ReplicaSet, DeamonSet은 계속적 동작, Job Controller는 실행과 종료
  • Cron Job Controller : 주기적으로 배치 실행을 하기 위한 컨트롤러
  • Service : 고정 IP 주소를 파드의 논리 그룹과 매핑
  • Lable : 연결과 필터링에 사용되는 Key/Value

 

도커 (Docker)

1. Docker

리눅스 컨테이너 기반으로 한 오픈소스 가상화 플랫폼이라고 한다.

컨테이너란 격리된 공간에서 프로세스가 동작하게 하는 기술로 프로그램과 실행환경을 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포와 관리를 단순하게 해준다. 

 

2. 장점

  • 도커 컨테이너로 개발환경을 배포하는데 쉽고 빠르게 할 수 있다.
  • 도커 컨테이너는 CPU와 메모리를 프로세스가 필요한 만큼 사용하기 때문에 가볍고 빠르다.
  • 크기가 작고 하나의 서버에 다수의 컨테이너를 구동할 수 있어 하드웨어 자원을 절감할 수 있다.
  • 쉬운배포와 공유환경을 제공한다.

 

EKS와 ECS의 장점과 차이점
EKS와 ECS의 장점과 차이점

 

EKS (Elastic Kubernetes Service)

쿠버네티스를 쉽게 사용할 수 있도록 제공되는 서비스로 VPC, ELB, IAM 등의 기능을 활용할 때 유용함.

 

1. EKS특징

  • VPC(Virtual Private Cloud)

쿠버네티스 클러스터는 클러스터 자체 네트워크를 사용하기 때문에 외부에서 클러스터 내 Pod에 통신이 불가능하지만, EKS는 Pod에서 VPC 내부 주소 대역을 사용할 수 있어 클러스터 외부와의 통신이 가능함

  • ELB와 연계

쿠버네티스의 서비스 타입 중 하나인 로그밸랜서를 설정하면 ELB가 자동으로 생성 됨.

  • IAM을 통한 인증 및 인가

AWS 리소스에 대한 Access를 안전하게 제어하는 서비스

구성 : 유저, 그룹, 정책, 롤

 

2. AWS Workflow

EKS 클러스터 생성 > 쿠버네티브 서버 구성 > Etcd구성 > IAM구성 > 인증설정 >

오토스케일링설정 > 로드밸런서 구성

*ETCD는 Key-value 형태의 데이터를 저장하는 저장소로 Replicated state machine

 

ECS(Elastic Container Service)

ECS(Elastic Container Service)는 AWS에서 제공하는 컨테이너 오케스트레이션 서비스로 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확장 & 축소 할 수 있도록 도와주는 서비스

*Docker 에 대한 사전 지식 필요

 

1. ECS 특징

클러스터를 관리하기 위한 별도의 인스턴스를 구성 & 관리 하지 않아도 되며, 클러스터 관리에 대한 추가적인 비용도 전혀 없음. Fargate 를 지원함.

*Fargate 란 : AWS에서 제공하는 Managed Container Operation Service 로 ECS를 기반으로 별도의 컴퓨팅 자원에 의존하지 않고 컨테이너를 독립적으로 실행하고 관리한다.

ECS는 소규모 애플리케이션을 실행하기위한 단순성, 가용성 및 원활한 배포를 제공함.

 

2. ECS 용어

  • 컨테이너 인스턴스 : EC2 인스턴스로 오토스케일링이 가능함
  • 클러스터 : 컨테이너 인스턴스의 묶음
  • Task (작업) : 도커 컨테이너로 ECS의 최소 실행 단위로 컨테이너의 묶음
  • Task Definition (작업정의) : 도커 컨테이너를 위한 설정 템플릿
  • Service : Task를 지속적으로 관리하는 단위
  • Image : Docker 에 대한 설정을 받아와 서비스 단위로 묶은 것

 

ECS, EKS 차이점

EKS 는 엔터프라이즈 애플리케이션을위한 클라우드와 온 프레미스 시스템 간의 이식성이 향상된 고급 오케스트레이션 솔루션을 제공
ECS 는 소규모 애플리케이션을 실행하기위한 단순성, 가용성 및 원활한 배포를 제공

 

1. 배포

ECS는 AWS 네이티브 솔루션으로 간단한 플랫폼이지만, EKS는 Kubernetes를 기반으로 한 관리형으로 복잡한 구성임.

 

2. 보안

ECS, EKS 둘다 IAM 역할을 지원한다.

 

3. 호관성

ECS는 AWS 자체 독점 기술이지만 EKS는 오픈 소스인 Kubernetes 기반이기 때문에 향후 기술 및 지식 측면에서 클라우드 서비스에 구애받지 않고 활용이 가능하다.

 

4. 가격

기본적으로 각 서비스의 필수적인 Cluster는 ECS는 무료이지만 EKS는 시간 당 0.20 USD이다. (한 달이면 144 USD 달러)

 

5. 선택

ECS와 EKS는 모두 컨테이너를 대규모로 관리하는 데 도움이되는 솔루션으로 프로젝트의 규모와 특성, 확장성에 따라 결정이 되야 한다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기