AWS ECS란?
- 클러스터에서 도커 컨테이너를 쉽게관리할 수 있게 해주는 컨테이너 관리 서비스
- 아마존에서 제공하는 '완전관리형 컨테이너 오케스트레이션 툴'
- 도커 컨테이너를 이용하여 인프라 환경을 좀 더 편리하게 운영, 관리할 수 있게 해주는 서비스
- 비슷한 툴 => 쿠버네티스, 도커 스웜
- 간단한 API 호출을 사용하여 컨테이커 기반 애플
- 개념이 간단하고 다른 AWS 서비스와 통합이 간편하고 전용 CLI가 존재한다.
AWS ECS 호스트 유형
ECS는 컨테이너를 운영하는 호스트 형태에 따라 EC2, Fargate, EXternal로 나뉘어진다.
즉, 어디에서 컨테이너를 띄울 건지에 대한 정의이다.
ECS 호스트 유형 - EC2
- 컨테이너가 운영되는 컴퓨터가 AWS EC2이다.
- 용량 공급자를 통해 EC2 오토 스케일링 그룹을 연결한다.
- 컨테이너 숫자의 증가/축소에 따라 EC2도 함께 증가/축소된다.
ECS 호스트 유형 - Fargate
- 서버리스 유형으로 EC2를 배포하거나 관리할 필요 없이 그냥 서비스만 운영하면 되는 유형
- 컨테이너가 어디서 운영되는지 고민/관리할 필요 없는 타입
- 하지만 EC2 유형보다 비싸다.
ECS 호스트 유형 - External (ECS AnyWhere)
- AWS 인프라가 아닌 곳에 위치한 호스트 컴퓨터에서 ECS에서 정의한 서비스를 실행할 수 있도록 한다.
- 호스트와 컨테이너 들 실제 서비스는 물리적으로 AWS밖에서 동작 하지만, 관리는 AWS 콘솔에서 할 수 있는 타입
- 단 호스트에 ECS Agent, SSM Agent가 설치되어야하며, 인터넷이 안정되어 있어야한다.
AWS ECS 4가지 구성요소
Task definition
- 원하는 도커 컨테이너를 생성할 때, 어떤 설정으로 몇 개 이상 생성할 지를 정의한 Set이다.
- 컨테이너의 이미지, CPU/메모리 리소스 할당 설정, 포트 매핑, 볼륨 설정 같은 것들이 포함되며, 기존 도커 런 명령에서 가능했던 대부분 옵션이 설정 가능하다.
- 컨테이터 오케스트레이션에서 컨테이너가 자동으로 실행되거나 종료될 수 있다.
- 미리 설정들의 집합을 하나의 단위로 정의하여 쓰는 것이다.
- 이 단위를 Task definition이라고 부른다.
- Task definition을 생성하면 추후 이를 기반으로 특정 설정을 변경할 수 있다.
- Task definition에서 한 개 이상의 컨테이너 정의가 가능하며, 내부에서 정의된 컨테이너 사이에 링크 설정으로 연결할 수 있다.
- Task definition에서 정의 된 설정으로 실제 생성된 Container Set을 Task라고 부른다.
Task
- Task definition에서 정의 된 설정으로 실제 생성된 Container Set을 Task라고 부른다.
- 즉, Task 안에는 한 개 이상의 컨테이너들이 포함되어 있으며 ECS에서 컨테이너를 실행하는 최소단위는 Task이다.
- Task는 Cluster에 속한 EC2 인스턴스에 배포된다.
- 또한, Task는 여러 EC2 인스턴스에 배포 가능하다.
Service
- Task들의 생명 주기를 관리하는 부분을 Service라고 한다.
- 각 Task들은 각자 다른 서비스다.
- Task를 Cluster에 몇 개나 배포할 것인지 결정하고 실제 Task들을 외부에 서비스 하기 위해 ELB에 연동되는 부분을 관리하게 된다.
- 만햑 실행 중인 Task가 어떤 이유로 작동이 중지되면 이것을 자동으로 감지하여 새로운 Task를 Cluster에 배포하는 고가용성에 대한 정책도 Service에서 관리한다.
- 즉, 오토스케일링과 로드 밸런싱을 관리하는 역할이다.
Contatiner Instance(EC2 instance)
- ECS는 Contatiner 배포(Task 배포)를 EC2 인스턴스 기반에 올리도록 설계되어 있다.
- Task를 올리기 위해 등록된 EC2 인스턴스를 컨테이너 인스턴스라고 부른다.
- ECS를 처음 시작하면 생성되는 Deafault Cluster에는 컨테이너 인스턴스를 자동으로 할당 시켜 준다.
- 새로운 Cluster를 생성하면 직접 컨테이너 인스턴스를 만들어야 한다
- 컨테이너 인스턴스용 AMI 이미지는 AWS에서 제공해준다.
- 하나의 컨테이너 인스턴스 내부에서는 여러 개의 Task가 존재할 수 있다.
Cluster
- Task가 배포되는 Container Instance들은 논리적인 그룹으로 묶이게 되는데 이 단위를 Cluster라고 부른다.
- Task를 배포하기 위한 인스턴스는 반드시 클러스터에 등록되어야한다.
자료 출처:
https://wooono.tistory.com/133
[AWS ECS] ECS(Elastic Container Service) 란?
ECS란? Docker는 최근 각광 받고 있는 컨테이너 기술이다. 하지만 Docker를 이용해 서비스를 구축 하려면 여러가지 고려 해야할 사항이 많다. 따라서 필연적으로 컨테이너를 적절하게 배치하고 관리
wooono.tistory.com
https://tech.cloud.nongshim.co.kr/2021/08/30/%EC%86%8C%EA%B0%9C-amazon-ecs%EB%9E%80/
[소개] Amazon ECS란?
Amazon ECS(Elastic Container Service) 란? 클러스터에서 컨테이너를 쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스 입니다.간단한 API 호출을 사용하여 컨테이너 기반 애플리케이션을
tech.cloud.nongshim.co.kr
https://1mini2.tistory.com/123
ECS 기초, 개념잡기 👍🏻👍🏻👍🏻
안녕하세요 😊😊😊😊 이번 포스팅에서는 ECS에 대해 조금 다뤄보려고 합니다. 정말 다양한 컨테이너 오케이스트레이션 툴이 존재하고, 최근에는 Kubernetes(k8s)가 거의 메인 스트림인데요, AWS에
1mini2.tistory.com
'Cloud 관련 지식' 카테고리의 다른 글
AWS VPC 및 SubNet 구축 실습 (0) | 2023.06.26 |
---|---|
AWS Shield & WAF(Web Application Firewall) (0) | 2023.06.23 |
Dockerfile, Docker-compose (0) | 2023.04.13 |