AWS ECS (Elastic Container Service)
- AWS ECS는 Fargate, Cluster, Task Definition, Task, Service등의 다양한 서비스를 제공하여, 도커 컨테이너를 편하게 배포할 수 있도록 도와준다.
- 다만, 뉴비 입장에선 어려운 용어가 많아서 조금 어려울 수 있다
- 그래서 AWS 공식문서의 내용을 기반으로 간단하게 정리해보았다.
AWS Fargate#
Cluster#
- AWS ECS 클러스터는 태스크나 서비스의 논리적인 그룹이다
- 앱들을 격리시키기 위해 클러스터를 사용할 수 있다고 한다.
- 태스크를 Fargate에서 실행하면, 클러스터의 자원들 역시 Fargate에 의해 관리된다고 한다.
Task Definitions#
- Task Definition이란, 애플리케이션 컨테이너를 묘사하는 텍스트 파일을 말한다.
- JSON 포맷이고, 이걸로 최대 10개의 컨테이너를 묘사할 수 있다.
- 우리 애플리케이션 인프라의 청사진이라고 할 수 있다
- OS, 애플리케이션 인프라 구성에 필요한 매개변수, 포트 매핑정보, 데이터 볼륨등, 컨테이너 구성에 필요한 모든 정보가 Task Definition에서 작성된다.
Tasks#
- Task Definition이 인스턴스화 된 결과물을 Task라고 한다.
- Task Definition을 만들고 나면, 클러스터에서 실행될 태스크의 개수를 명시할 수 있는데, 태스크만 가지고 실행할수도 있고, 서비스의 일부분으로서 태스크를 실행할수도 있다
Services#
- AWS ECS 서비스를 사용해서 원하는 만큼의 태스크를 ECS 클러스터에서 동시에 실행 및 유지할 수 있다
- 실행중이던 태스크가 죽거나 하면, ECS 서비스 스케줄러가 새로운 태스크를 실행시켜줘서, 죽은 태스크의 빈자리를 대신 채워줄 수 있도록 해준다.
이런 식으로 원하는 만큼의 태스크가 실행되는걸 유지시켜준다.