Amazon Web Services 한국 블로그
EC2 Container Service 신규 측정 기능: Clusters 및 Services 용
Amazon EC2 Container Service는 Docker 기반 응용 프로그램을 실행하고 관리하는 것을 도와주는 서비스입니다. EC2 Container Service – 최신 기능, 사례 및 관련 자료 총정리에서 보여 드린 대로 손쉬운 클러스터 관리 및 높은 성능, 유연한 스케줄링, 확장성, 이동성과 아울러 안전하고 효율적인 환경에서 AWS와의 연계가 가능한 장점을 가지고 있습니다.
콘테이너 기반 응용 프로그램은 Task에서 만들어집니다. Task는 같은 EC2 인스턴스에서 함께 실행되는 한 개 이상의 Docker 콘테이너입니다.각 인스턴스는 클러스터로 그룹이 됩니다. 그래서 인스턴스는 Task를 수행하기 위해 이용되는 리소스 풀과 같은 형태를 취합니다.
이러한 모델은 모니터링 및 측정에 대한 여러가지 이슈가 발생합니다. 클러스터를 너무 크지도 작지도 않은 적절한 크기로 유지하기 위해 별도의 인스턴스 보다는 클러스터 전체의 메모리와 CPU 사용율을 봐야 하기 때문입니다. 특히, 다양한 CPU와 메모리의 크기를 가진 EC2 인스턴스가 포함 된 클러스터에서 쉽지 않은 일입니다.
신규 Cluster 측정 기능
이를 위해서 클러스터의 자원을 제대로 측정하고 이를 기반으로 확장할 수 있도록 각 인스턴스의 크기 및 콘테이너의 설정을 기준으로 만들어진 Amazon CloudWatch 측정 기준과 모니터링을 시작합니다. AWS ECS 관리 콘솔에서 측정치를 볼 수 있으며 이를 기반으로 Auto Scaling을 할 수 있습니다.
각 인스턴스에는 ECS Container Agent가 실행되고 있습니다. 이를 통해 인스턴스 및 Task의 CPU 및 메모리 측정값을 수집하고 정규화를 위해 데이터를 보냅니다. 정규화 작업은 클러스터 전체의 CPU 및 메모리 사용을 표현하기 위한 통계가 생성됩니다. 이러한 통계치에 따라 전체 클러스터의 활용 상황을 파악할 수 있습니다.
간단하게 살펴보겠습니다. default라는 이름의 클러스터 아래 하나의 t2.medium 인스턴스를 가지고 있습니다.
이 시점에서 Task가 실행되지 않고 클러스터는 유휴(idle) 상태입니다.
전체 CPU를 소비하게 끔 2개의 Task를 실행했습니다.:
Task가 CPU를 소비하기 까지조금 시간이 조금 걸립니다. 이제 CPU 사용율은 아래와 같이 되었습니다.
그래서 또 다른 t2.medium 인스턴스를 클러스터에 집어 넣고 활용도를 다시 확인 보았습니다. 추가된 용량에 따라 전체 이용률은 50 %로 감소했습니다.
새로운 측정치(CPUUtilization 및 MemoryUtilization)는 CloudWatch를 통해 이용 가능하며, 알림을 만드는 데 사용할 수 있습니다.
신규 Service 측정치
올해 초반에 EC2 Container Service를 부하 분산을 통한 애플리케이션 본격 사용에 대해 발표하였습니다. Service 스케줄러를 통해 우리가 원하는 수준에 맞게 확장 가능하고 높은 품질의 유지 관리가 가능합니다. CPU 및 메모리 사용률 통계가 서비스마다 수집 되어 콘솔에서 볼 수 있습니다.
오늘부터 새로운 Cluster와 Service의 통계 모니터링은 바로 활용해 보실 수 있습니다.
— Jeff;
이 글은 New Metrics for EC2 Container Service: Clusters & Services의 한국어 번역본입니다.