컨테이너 오케스트레이션 툴
GCP
- GKE (Google Kubernetes Engine)
AWS
- EKS (Elastic Kubernetes Service)
- ECS (Elastic Container Service)
✅ 컨테이너 클러스터링
- 여러 대의 노드(node)를 하나의 클러스터(cluster)로 묶어, 애플리케이션을 분산하여 실행하고, 자원을 효율적으로 활용하는 기술
- 여러 대의 물리적인 또는 가상의 서버를 하나의 시스템처럼 동작하게 하는 기술
- 컨테이너를 실행하는 호스트의 자원을 효율적으로 분배, 컨테이너가 안정적으로 실행되도록 함.
- 여러 대의 컨테이너를 묶어 하나의 서버처럼 사용할 수 있도록 지원
✅ 서비스 디스커버리(Service Discovery)
- 컨테이너를 자동으로 발견하고, 서비스 이름과 IP 주소 등을 관리하여, 애플리케이션 간의 연결을 관리하는 기능
- 클라우드 환경에서의 컨테이너 생성, 배치, 이동에 따른 IP, Port 정보 업데이트 및 관리
컨테이너 오케스트레이션의 기능
- 자동 스케일링(Autoscaling) : 애플리케이션의 트래픽 양에 따라 자동으로 컨테이너 수를 조절하여, 자원 사용량을 최적화하고, 가용성을 보장하는 기능
- 로드 밸런싱(Load Balancing) : 여러 대의 노드에서 실행 중인 컨테이너들을 조절하여, 트래픽을 균등하게 분배하여, 애플리케이션의 성능을 최적화하는 기능
- 롤아웃과 롤백(Rollout and Rollback) : 새로운 버전의 애플리케이션을 롤아웃하고, 이전 버전으로 롤백하는 기능입니다.
- 자동 복구(Automatic Recovery): : 컨테이너나 노드의 장애 시 자동으로 복구하는 기능입니다.
- 모니터링과 로깅 : 컨테이너나 노드의 상태를 모니터링하고, 로그를 수집하여, 애플리케이션의 성능과 문제점을 분석하는 기능
- 보안과 네트워크 관리 : 컨테이너와 노드의 보안을 관리하고, 네트워크 설정을 관리하는 기능
대표적인 컨테이너 오케스트레이션 툴/서비스
✅ 도커 스웜
- 도커 컨테이너 오케스트레이션 도구
- 간단하게 작동하고, 설정이 쉽다.
✅ 쿠버네티스 Kubernetes
공식 문서 : https://kubernetes.io/ko/docs/home/
- 다양한 웹 서비스와 대용량 트래픽을 감당하기 위해 등장
- 오픈 소스 기반
- 구글에서 설계, 현재 리눅스 재단에 의해 관리
- 대규모에 적합
- 스케일링 기능 강화 (Replication Controller: 컨테이너 수를 동적으로 조절)
- 서비스 디스커버리 기능 강화 (DNS 기반)
- 가장 기능이 풍부하고 널리 사용되는 컨테이너 오케스트레이션 프레임워크
- 베어 메탈, VM환경, 퍼블릿 클라우드 등의 다양한 환경에서 작동하도록 설계되어 있음
✅ GKE(Google Kubernetes Engine)
- 구글 클라우드 플랫폼 GCP에서 제공하는 쿠버네티스 기반의 관리형 컨테이너 오케스트레이션 서비스
- 따라서 GKE는 쿠버네티스를 기반으로 하고, 쿠버네티스의 기능을 모두 제공
✅ EKS(Amazon Elastic Kubernetes Service)
- AWS 제공하는 관리형 쿠버네티스 서비스
- EKS는 쿠버네이스 기반으로 구축되어 있음
- 사용자는 쿠버네이트 API를 사용하여 EKS 클러스터를 관리할 수 있다.
✅ ECS (Amazon Elastic Container Service)
공식 문서 : https://docs.aws.amazon.com/ko_kr/ecs/index.html
- AWS에서 제공하는 관리형 컨테이너 오케스트레이션 서비스
- 도커 컨테이너를 실행하기 위한 기능을 제공
- 사용자는 ECS를 사용하여 컨테이너를 배포, 관리, 스케일링
ECS 서비스 종류 (호스트 유형)
ECS (Amazon Elastic Container Service) 구성 요소
✅ Service
- 특정 작업 정의에 기반한 작업 집합을 실행하고 유지 관리하는 역할
- 특정 작업의 인스턴스를 지정된 수로 유지하거나, 부하 분산, 서비스 발견, 롤링 업데이트 등과 같은 추가 기능을 제공
✅ Desired Count:
- 사용자가 지정한 수의 작업 인스턴스를 지속적으로 실행하도록 보장
- 만약 작업인스턴스가 실패하거나 중지되면 EC는 자동으로 새 작업을 시작하여 원하는 수의 작업을 유지
✅ Load Balancing:
- Application Load Balancer, Network Load Balancer 또는 Classic Load Balancer와 통합 될 수 있음
- 트래픽이 ECS 작업에 균일하게 분산될 수 있도록 함
✅ Service Discovery:
- 동적 IP 주소를 사용하여 서비스를 검색하고 연결
✅ Rolling Updates:
- 애플리케이션 업데이트
- 작업 정의를 업데이트하면서 서비스를 지속적으로 실행 할 수 있도록 함
✅ Scaling:
- 요구사항/정책에 따라 자동으로 확장 및 축소 시킴
ECS 구성
'AWS & Docker' 카테고리의 다른 글
[Docker] 도커 image, compose, file (0) | 2023.08.03 |
---|---|
[Docker] 도커 이미지 (0) | 2023.08.03 |
[Docker] 도커는 무엇인가(1) (0) | 2023.08.01 |
[AWS & Docker] AWS, Docker 실행 하기 (0) | 2023.05.30 |