본문 바로가기
Docker

[Docker] 도커를 활용하는 클라우드 서비스

by Johnny's 2023. 4. 13.

컨테이너 오케스트레이션

- 컴퓨터 자원과 애플리케이션, 서비스에 대한 자동화된 설정, 관리 및 제어 체계를 의미

- 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화

- 컨테이너는 마이크로서비스 기반 애플리케이션에 이상적인 애플리케이션 배포 유닛 및 독립적인 실행 환경을 제공

 

컨테이너 오케스트레이션 툴

GCP

- GKE (Google Kubernetes Engine)

 

AWS

- EKS (Elastic Kubernetes Service)

- ECS (Elastic Container Service)

 

컨테이너 오케스트레이션의 기능

컨테이너 클러스터링(Clustering)

- 여러 대의 노드를 하나의 클러스토 묶어, 애플리케이션에 분산하여 실행하고, 자원을 효율적으로 활용하는 기능

- 여러대의 물리적인 또는 가상의 서버를 하나의 시스템 처럼 동작하게 하는 기술

- 컨테이너를 실행하는 호스트의 자원을 효율적으로 분배, 컨테이너가 안정적으로 실행되도록 함

- 여러 대의 컨테이너를 묶어 하나의 서버처럼 사용할 수 있도록 지원

 

서비스 디스커버리(Service Discovery)

- 컨테이너를 자동으로 발견하고, 서비스 이름과 IP 주소 등을 관리하여 애플리케이션에 간의 연결을 관리하는 기능

- 클라우드 환경에서의 컨테이너 생성, 배치, 이동에 따른 IP, 포트 정보 업데이트 및 관리

 

자동 스케일링(Autoscaling)

- 애플리케이션에 트래픽 양에 따라 자동으로 컨테이너 수를 조절하여, 자원 사용량을 최적화하고, 가용성을 보장하는 기능

 

로드 밸런싱(Load Balancing)

- 여러 대의 노드에서 실행 중인 컨테이너들을 조절하여, 트래픽을 균등하게 분배하여, 애플리케이션에 성능을 최적화하는 기능

 

롤아웃과 롤백(Rollout and Rollback)

- 새로운 버전의 애플리케이션을 롤아웃하고, 이전 버전으로 롤백하는 기능

 

자동 복구(Automatic Recovery)

- 컨테이너나 노드의 장애 시 자동으로 복구하는 기능

 

모니터링과 로깅(Monitoring and Logging)

- 컨테이너나 노드의 상태를 모니터링하고 로그를 수집하여 애플리케이션의 성능과 문제점을 분석하는 기능

 

보안과 네트워크 관리(Security and Network Management)

- 컨테이너와 노드의 보안을 관리하고, 네트워크 설정을 관리하는 기능

 

대표적인 컨테이너 오케스트레이션 툴/서비스

Docker Swarm

- Docker Inc.이 개발한 도커 컨테이너 오케스트레이션 도구

- Docker Swarm은 2015년 Docker 1.12 버전에서 처음 발표됨

- 이전에는 Docker Swarm Classic 이라는 이름으로, Swarm 모드가 추가되기 전에 도커 엔진에 통합되기 전에 독립적으로 배포

- Docker Swarm은 쿠버네티스가 등장하기 전까지 가장 대중적인 컨테이너 오케스트레이션 도구중 하나

- 간단하게 작동하고 설정이 쉬움


Apache Mesos

- 오픈소스 클러스터 오케스트레이션 툴로 대규모 클러스터도 지원할 수 있도록 설계 되어 있음

- 여러 호스트의 CPU, 메모리, 디스크를 추상화하여 하나의 리소스 풀로 다룰 수 있음

- 단, Mesos를 사용하여 컨테이너 오케스트레이션을 가동시킬 경우 별도의 컨테이너 관리용 프레임워크 필요


Kubernetes
 

- 오픈소스 기반으로 구글에서 설계, 현재 리눅스 재단에 의해 관리

- 대규모에 적합

 . 스케일링 기능 강화 (Replication Controller:컨테이너 수를 동적으로 조절)

 . 서비스 디스커버리 기능 강화 (DNS 기반)

- 기능이 풍부하고 널리 사용되는 컨테이너 오케스트레이션 프레임 워크

- 베어 메탈, VM환경, 퍼블릿 크라우드 등의 다양한 환경에서 작동하도록 설계되어 있음

 

GKE(Google Kubernetes Engine)

- Google Cloud Platform(GCP)에서 제공하는 Kubernetes 기반의 관리형 컨테이너 오케스트레이션 서비스

- Kubernetes를 기반으로하고, Kubernetes의 기능을 모두 제공

 

ECS(Amazon Elastic Container Service)

- AWS에서 제공하는 관리형 컨테이너 오케스트레이션 서비스

- Docker 컨테이너를 실행하기 위한 기능을 제공

- 사용자는 ECS를 사용하여 컨테이너를 배포,관리, 스케일링

 

 

* 참고

-  레드햇 | 컨테이너 오케스트레이션이란?

- 원티드(프리온보딩 백엔드 챌린지 4월) - Docker: 나만의 도커 이미지 만들기부터, 클라우드 배포까지! - 강의자료

댓글