AWS ECS EC2에서 Replica와 Daemon 전략 비교
목차
소개
AWS의 Elastic Container Service(ECS)는 컨테이너화된 애플리케이션을 관리하고 배포하기에 아주 좋은 서비스입니다. ECS는 효율적인 컨테이너 관리를 위해 다양한 배치 전략을 제공합니다. 이 글에서는 Replica와 Daemon, 두 가지 주요 배치 전략의 차이점과 적절한 사용 시나리오에 대해 알아보고자 합니다. ECS에 처음 배포해볼 때 서비스 유형에서 Replica, Daemon을 보고 이게 뭐지 했던 것에서 시작하게 되었습니다. 궁금한건 못참기 때문이죠. Fargate가 아닌 EC2에 배포하는 걸 예시로 설명하겠습니다. Fargate는 Daemon을 지원하지 않기 때문입니다.
Replica 전략이란?
Replica 배치 전략은 ECS 서비스에서 가장 흔히 사용되는 전략 중 하나입니다. Replica의 핵심은 지정된 수의 태스크를 클러스터의 여러 EC2 인스턴스에 걸쳐 균등하게 배포하는 것입니다.(Replica가 복제본이라는 뜻이죠) 이를 통해 서비스의 가용성과 확장성을 높일 수 있습니다. Auto Scaling을 적용한다면 동일한 task가 sacle out된 인스턴스에서도 실행됩니다. 온라인 쇼핑몰이라면 트래픽이 많은 시간대에도 원활한 서비스를 제공하기 위해 여러 인스턴스에 태스크를 분산 배치할 수 있습니다. 또한, 하나의 인스턴스에 문제가 발생해도 다른 인스턴스에서 태스크가 계속 실행되어 서비스 중단을 방지할 수 있습니다. 보통 API서버를 배포할 때 많이 쓰는 전략입니다.
Daemon 전략이란?
Daemon 배치 전략은 각 EC2 인스턴스마다 정확히 하나의 태스크를 실행합니다. 클러스터의 모든 인스턴스에서 특정 태스크를 균일하게 실행해야 할 때 적합합니다. 모든 서버 인스턴스에서 로그를 수집하거나 시스템을 모니터링하는 에이전트를 실행하는 경우에 유용합니다. 또한, 각 인스턴스에 보안 에이전트를 배치하여 전체 클러스터의 보안을 강화하는 데에도 적합합니다. Daemon 전략은 자원의 효율적인 사용에 초점을 맞추고 있으며, 필요한 서비스가 각 인스턴스에 균등하게 배포되어야 하는 경우에 이상적입니다. 각 인스턴스에 Fluentd 또는 Logstash와 같은 로깅 에이전트를 실행하여 모든 인스턴스에서 로그를 수집하고 Amazon CloudWatch 또는 ELK 스택 같은 서비스로 전송할 수 있습니다.
Replica vs Daemon: 상황에 따른 선택
Replica와 Daemon 전략 사이의 선택은 배포하려는 애플리케이션의 요구사항과 클러스터 환경에 따라 달라집니다. 위에서 언급했듯이 Replica 전략은 고가용성과 확장성이 중요한 경우, 사용자 트래픽이 변동이 큰 웹 애플리케이션에 적합합니다. Daemon 전략은 모든 인스턴스에서 일정한 작업을 실행해야 할 때, 로깅이나 모니터링 같은 백그라운드 작업에 적합합니다. 따라서, 어떤 전략을 선택할지는 서비스의 특성과 목표에 따라 결정해야 합니다.
AWS ECS에서 Replica와 Daemon 배치 전략을 이해하고 적절하게 사용하는 것은 애플리케이션의 성능과 안정성을 크게 향상시킬 수 있습니다. 각 전략의 특성을 파악하고, 상황에 맞게 적용하는 것이 중요합니다.
오늘은 Replica와 Daemon 배치 전략에 대해서 알아봤습니다.