반응형
AWS ECS로 시작하는 컨테이너 오케스트레이션와 ECS 레퍼런스 등을 보며 개인적인 공부용으로 정리한 글입니다.
컨테이너 오케스트레이션
- 컨테이너를 적절히 배치하고 관리할 수 있도록 도와주는 도구
- 쿠버네티스, Docker Swarm, AWS ECS 등
AWS ECS의 장단점
- 특별한 준비 없이 사용할 수 있다는 장점.
- 도커의 모든 기능을 사용하기에는 약간 제약이 존재하며, 세부적으로 컨트롤 하기 어려움.
- AWS 벤더에 의존적임.
AWS의 구성
클러스터와 컨테이너 인스턴스
- 클러스터는 ECS에서 가장 기본적인 단위
- 도커 컨테이너를 실행할 수 있는 가상의 공간으로, 논리적인 단위이다.
Task Definition, Task
Task
- ECS에서 컨테이너를 실행하는 최소 단위는 테스크.
- Task는 하나 이상의 컨테이너로 구성된다. (일반적으로 하나의 필수 컨테이너만으로 구성됨)
- 하나의 Task가 여러 컨테이너로 구성될 시, Task로 실행되는 컨테이너들은 모두 같은 컨테이너 인스턴스에서 실행되는 것이 보장된다.
Task Definition
- 컨테이너 오케스트레이션에서는 컨테이너가 필요에 따라 자동적으로 실행되거나 종료될 수 있다.
- Task를 실행할 때, 컨테이너 네트워크 모드, Task 역할, 도커 이미지, 실행 명령어, CPU 제한, 메모리 제한 등 다수의 설정이 필요한대, 매번 이런 설정들을 지정하기보다는, 미리 설정들의 집합을 하나의 단위로 정의해두고 사용한다.
- 한 번 Task Definition을 만들면 이것을 기반으로 특정 설정을 변경할 수 있으며, 이렇게 변경된 내용들은 모두 리비전으로 저장된다.
Task는 클러스터에 종속적이지만, Task Definition은 클러스터에 종속적이지 않다
Service
클러스터에는 두 가지 방식으로 Task를 실행할 수 있다.
- Task Definition으로 직접 Task를 실행하는 방식
- Task가 곧바로 실행되며, 실행 된 이후에는 더 이상 관리되지 않는다.
- 일회성 명령어라면 한 번 실행된 후 종료되며, 데몬 프로세스라면 Task를 명시적으로 종료할 때 까지 컨테이너가 남아있다.
- 배치 작업 등에서 사용된다.
- 서비스를 정의하는 방법
- Replica 타입
- 실행하려는 Task의 개수를 지정해야 한다.
- 서비스는 클러스터에서 이 개수만큼 Task가 실행되도록 자동적으로 관리해준다.
- Daemon 타입
- 모든 컨테이너 인스턴스에 해당하는 테스크가 하나씩 실행된다.
- Replica 타입
- EC2와 같은 컴퓨팅 자원을 직접 사용해서 프로세스를 배치하는 경우 서버 관리자가 직접 어떤 인스턴스에 어떤 프로세스를 언제 배치할지 결정해야 한다.
- 반면에 오케스트레이션에서는 이러한 관리를 담당하는 스케줄러가 존재한다.
- ECS에서는 서비스가 이러한 스케줄링을 담당한다.
- ECS 서비스는 각 인스턴스들에 설치된 ecs-client에서 수집된 정보를 바탕으로 어디에 어떤 Task를 언제 실행할지 결정한다.
반응형
'DevOps & SRE > AWS & Cloud' 카테고리의 다른 글
[클라우드 인프라와 API의 구조] 11. 멀티 클라우드 (0) | 2021.04.21 |
---|---|
[클라우드 인프라와 API의 구조] 12. Immutable Infrastructure (0) | 2021.04.16 |
[클라우드 인프라와 API의 구조] 10. 오브젝트 스토리지 리소스를 제어하는 방법 (0) | 2021.04.13 |
AWS VPC (0) | 2021.04.13 |
Security Group? NACL? (0) | 2021.04.13 |