4. • 간단한 사용법
• AWS가 클러스터 관리를 해줍니다
• 클러스터 유지에 드는 추가 비용 0
• 다른 AWS 서비스와 통합
• ECS 서비스를 ELB/ALB에 연결
• IAM task/service role
• 자유도 (vs AWS Elastic Beanstalk)
• 클러스터 구성요소는 그냥 EC2 인스턴스
• AutoScaling Group 등 기존의 EC2 관리 노하우를 활용 가능
4
괜찮은 해결책
5. • 그다지 Docker-native하지 않은 환경
• 경직된 스케쥴링 구성
• 기본 배포 타입인 service는 고정된 갯수의 task를 유지하는 정도로만 동작
• service에 task definition을 커스터마이징할 여지가 아예 없음
• StartTask API가 있긴 하지만 너무 저수준
• 자유도 부족
• AWS가 뭔가 기능을 추가해 줄 때까지 손가락 빨고 기다려야 함
5
하지만
16. • 컨테이너 인스턴스 및 태스크의 상태 변경을 CloudWatch Events로 발송
• 다양한 방법으로 클러스터 상태를 추적 가능
• AWS Lambda, Amazon SQS, Amazon Kinesis Stream 등
• 현재 클러스터 상태가 어떤지 알려면 계속해서 이벤트 스트림을 읽고 있었어야 함
• Blox의 cluster-state-service가 이 역할을 담당
16
ECS Event Stream
17. • 이런 기능들을 ECS에 직접 추가할 수도 있었겠지만
• 다양한 비지니스 요구사항을 직접 ECS에 추가하기엔 요구사항이 너무 다양함
• 필요한 기능을 ECS가 추가해주길 기다리는 건 너무 오래 걸림
• 대신 ECS를 커스터마이즈할 수 있는 충분한 API를 주고
• 구체적으로 필요한 기능 구현은 커뮤니티에 맡기려는 것으로 보임
17
의의
21. 서울 본사
서울특별시 강남구 테헤란로 420
하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7
신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사스포카
SEOUL·BUSAN·TOKYO
도쿄 지사
〒151-0053 東京都渋谷区代々木1-21-12ヤマ
ノ26ビル 3F
TEL 03-6869-3610