ECS (Elastic Cluster Service)
ECS 클러스터 생성하기
ECS 클러스터는 여러 대의 인스턴스를 그룹화하고, 그룹내의 리소스를 자동으로 조정하고 관리한다. 이를 통해 Docker 컨테이너를 쉽고 효율적으로 배포, 관리 및 확장할 수 있도록 한다.
클러스터에서는 인스턴스들이 실행될 환경을 설정한다. Fargate 인스턴스를 이용하는 경우 자동으로 구성되어 별도로 설정할 필요는 없지만, EC2 인스턴스의 경우에는 인스턴스 유형이나 서브넷, 용량 등 다양한 환경 설정이 필요하다.
Task 생성하기
실행하고자 하는 Docker 컨테이너를 정의하는 과정이다. 어느 인스턴스에서 어떤 Docker 이미지를 실행할 것이인지 정의한다. Task에서 하나의 인스턴스에 다수의 컨테이너가 순차적으로 실행될 수 있도록 정의할 수 있으며, 포트 매핑도 이곳에서 설정한다. 버전이 기록되며 새로운 버전이 서비스에 실패한다면, 이전 버전으로 사용할 수 있도록 한다. 전반적으로 Docker Compose와 비슷한 역할이라고 생각하면 된다.
Service 생성하기
마지막으로 클러스터에서 서비스를 생성한다. 여기서는 Task 종류와 수량을 설정한다. Task를 EC2 로드벨런서와 연동하거나 트리거를 설정하여 자동으로 Task의 수량을 조절하는 오토스케일 기능도 지원한다. 그외에도 다양한 설정을 할 수 있으며, 이를 통해서 ECS로 컨테이너 서비스를 효율적으로 관리할 수 있다.
끝으로
ECR기반으로 ECS로 서비스하는 과정에 대하여 간단히 살펴보았다. 개인적으로 대표적인 컨테이너 서비스인 K8S와 굉장히 유사한 부분들이 많다고 생각했다. K8S와 비교해서 ECS는 AWS를 기반으로 하고 있기 때문에, UI를 통해서 설정하고 확인할 수 있다는 부분에서 비교적 진입 장벽이 낮다는 느낌을 받았다.
'Study > MLOps' 카테고리의 다른 글
AWS Container Support Service (2/3) (0) | 2024.03.14 |
---|---|
AWS Container Support Service (1/3) (0) | 2024.03.07 |
근본의 Ansible? (0) | 2024.01.03 |
Slurm과 Kubernetes 정답은? (0) | 2023.12.06 |
도대체 MLOps는 무엇일까? (1) | 2023.11.21 |