Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
But…
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
! Amazon EC2 인스턴스
! Docker 데몬
! Amazon ECS 에이전트
https://github.com/aws/
amazon-ecs-agent
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
! 리전 단위 (Multi-AZ)
! 자원 풀
! Container Instances 그룹
! 최소 시작, 동적 확장
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
Volume definitions
Container definitions
Shared data volume
PHP App
Time of day
App
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
! 서비스를 위한 단위
! 연관된 콘테이너들의 그룹
! 콘테이너 인스턴스에서 실행
Nginx Web
Server
Rails
Application
MySQL
Database
Log
Collector
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
! 지속적 애플리케이션
! 로드 밸런싱 및 상태 관리
! 스케일-아웃
! 신규 버전 배포/업데이트
Elastic Load
Balancing
CLI를 이용한 관리 가능
$"aws"ecs"list+container+instances"–c"default"
arn:aws:ecs:us*west*2:956941867282:container*instance/
01be44c0*4d45*4c1f*b2ae*1fce16c35ab6<
arn:aws:ecs:us*west*2:956941867282:container*instance/
1c81279b*4b39*4985*b76d*224e0385b219<
$"aws"ecs"create+cluster"default""
{<
<<"cluster_arn":<"arn:aws:ecs:us*west*2:956941867282:cluster/
c1a329a8*ec8a*41dc*82f6*294434861bd1",<
<<"cluster_name":<"default",<
<<"status":<"ACTIVE"<
}<
http://aws.amazon.com/solutions/case-studies/coursera-ecs/
“ Amazon ECS enabled Coursera to focus on releasing
new software rather than spending time managing
clusters.” Frank Chen Software Engineer
• Docker containers on Amazon EC2 Container Service (ECS) enabled
Coursera to easily move to a microservices -based architecture.
• Each job is created as a container and Amazon ECS schedules the
container across the Amazon EC2 instance cluster.
• Amazon ECS handles all the cluster management and container
orchestration, and containers provide the necessary resource isolation.
When to Use ECS and Lambda
ECS
Long-running jobs
Manage your event triggering
Any language, any dependency
Resources are your own - use
Spot, RIs
Lambda
Short-lived jobs
Triggered on specific events
Supports specific environments
No infrastructure to manage
Example: Batch Jobs with ECS and Lambda
.zip
s3://bucket/scene.zip
ECS Cluster
.png