99
월간 웨비나 20158월 26일 금요일 | 오전 11http://aws.amazon.com/ko Amazon EC2 Container Service 자세히 보기

Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

Embed Size (px)

Citation preview

Page 1: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

월간 웨비나 2015년 8월 26일 금요일 | 오전 11시

http://aws.amazon.com/ko

Amazon EC2 Container Service 자세히 보기

Page 2: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

김상필, Solutions Architect [email protected]

Page 3: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 자세히 보기

컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴

Page 4: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너란?

• 운영체제 가상화 • 프로세스 격리 • 자동화 • 이미지 기반

Server  

Guest  OS  

Bins/Libs   Bins/Libs  

App2  App1  

Page 5: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 6: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

손쉬운 사용, 표준화, 상호운용성을 갖춘 컨테이너 •  컨테이너 기술은 이전부터 존재 (예 :

LXC, Solaris Zones, BSD Jails)

•  컨테이너는 단지 철제 상자가 아님 •  Docker를 사용하면, 로우-레벨 컨테이

너가 다음 장점을 갖게 됨 : -­‐  손쉬운 사용, 툴 -­‐  재사용 가능 컴포넌트 -­‐  현존하는 대부분 Linux 서버에서 구

동 : 물리, 가상, 클라우드, …

Page 7: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너 기술의 장점

Portable • 이식성 장점 • 이미지 기반 배포, 버전 관리 • 어느 곳에서 운영하던 동일한 환경

• 개발/테스트/운영 환경 동일 Server  

Guest  OS  

Bins/Libs   Bins/Libs  

App2  App1  

Page 8: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너 기술의 장점

Flexible • 유연성 • 이미지 기반으로 배포되는 컨테이너는 클린하고, 재사용 가능한 모듈화 환경

• 마이크로서비스를 통해 어플리케이션을 작은 단위로 분할하고, 복잡성 줄이고, 신속하게 개발하는 것을 가능하게 함

Server  

Guest  OS  

Bins/Libs   Bins/Libs  

App2  App1  

Page 9: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너 기술의 장점

Fast • 도커 이미지는 가볍다. • 개발, 빌드, 배포하는 과정이 빠르게 이루어진다.

Server  

Guest  OS  

Bins/Libs   Bins/Libs  

App2  App1  

Page 10: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너 기술의 장점

Efficient • 필요한 리소스만을 배포 • OS kernel & libs 를 공유하여 사용하기 때문에 어플리케이션이 배포하는 것만을 배포

Server  

Guest  OS  

Bins/Libs   Bins/Libs  

App2  App1  

Page 11: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

컨테이너 배포 형태

기본 이미지  

Ruby  

Redis  

Logger  

App  

개발자  IT  운영  

패치  유틸리티  

Page 12: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

+  

• 손쉬운 배포

• 환경의 신뢰성

• 대규모 환경 관리의 용이성

• 자동화

• 분산 애플리케이션

많은 고객이 Docker를 AWS에서 구동하는 이유

Page 13: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

컨테이너 사용 사례

•  손쉬운 애플리케이션 배포

•  애플리케이션 라이프 사이클

•  지속적 통합 (Continuous Integration)

•  지속적 배포 (Continuous Delivery)

•  플랫폼 서비스 (PaaS)

•  분산 애플리케이션 구성

•  분산 애플리케이션 확장

Page 14: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 자세히 보기

컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴

Page 15: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 출시

•  2015년 4월 9일 정식 출시 •  신규 기능

•  서비스 스케줄러 •  로드 밸런싱 •  관리 콘솔 •  사설 저장소 (Private Repositories) •  데이터 볼륨 •  AWS CloudTrail 통합

•  지역 -  US East (Northern Virginia), US West (Oregon), US East (California) and EU West (Ireland), Asia Pacific (Tokyo), Asia Pacific (Sydney)

•  비용 - $0, EC2 인스턴스 비용만 발생

Page 16: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

모든 규모의 클러스터를 손쉽게 관리

• 별도 실행 없음

• 전체 상태 관리

• 컨트롤 및 모니터링

• 대규모 확장

Page 17: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

유연한 컨테이너 배치

• 어플리케이션

• 배치 작업

• 복수 스케줄러

Page 18: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

AWS 서비스와 함께 사용되도록 설계

•  Elastic Load Balancing

•  Elastic Block Store

•  Virtual Private Cloud

•  IAM

•  CloudTrail

Page 19: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

확장 가능

• 전체 API 제공

• 오픈소스 에이전트

• 커스텀 스케줄러

Page 20: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 자세히 보기

컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴

Page 21: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

주요 구성 요소

•  Container Instance

•  Cluster

•  Task Definitions

•  Tasks

•  Service

Container  Instance  

Container  Instance  

…  

Container  Instance  

Cluster  

Task  defini3on  

Task  

Service  

Page 22: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 인스턴스

Docker 데몬

Amazon ECS 에이전트

AMI 제공

주요 구성 요소: Container Instance

Page 23: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

지역 단위

자원 풀

Container 인스턴스들의 그룹

최소에서 시작, 동적 확장

주요 구성 요소: Clusters

Page 24: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

주요 구성 요소: Task Definitions

Container  Instance  

Schedule  

Shared  data  volume  

PHP  App   Time  of  day  App  

Page 25: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

!!!!!!!{! "environment": [],! "name": "simple-demo",! "image": "my-demo",! "cpu": 10,! "memory": 500,! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ],! "mountPoints": [! {! "sourceVolume": "my-vol",! "containerPath": "/var/www/my-vol"! }! ],! "entryPoint": [! "/usr/sbin/apache2",! "-D",! "FOREGROUND"! ],! "essential": true! },!

! !{! "name": "busybox",! "image": "busybox",! "cpu": 10,! "memory": 500,! "volumesFrom": [! {! "sourceContainer": "simple-demo"! }! ],! "entryPoint": [! "sh",! "-c"! ],! "command": [! "/bin/sh -c \"while true; do /bin/date > /var/www/my-vol/date; sleep 1; done\""! ],! "essential": false! }!

주요 구성 요소: Task Definitions

Page 26: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

주요 구성 요소: Task Definitions !!!!!!{! "environment": [],! "name": "simple-demo",! "image": "my-demo",! "cpu": 10,! "memory": 500,! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ],! "mountPoints": [! {! "sourceVolume": "my-vol",! "containerPath": "/var/www/my-vol"! }! ],! "entryPoint": [! "/usr/sbin/apache2",! "-D",! "FOREGROUND"! ],! "essential": true! },!

[! {! "image": "mysql",! "name": "db",! "cpu": 10,! "memory": 500,! "essential": true,! "entryPoint": [! "/entrypoint.sh"! ],! "environment": [! {! "name": "MYSQL_ROOT_PASSWORD",! "value": "pass"! }! ],! "portMappings": []! }!]!

EssenHal  to  our  Task  

Create  and  mount  volumes  

Expose  port  80  in  container  to  port  80  on  host  

10  CPU  Units  (1024  is  full  CPU),  500  Megabytes  of  Memory  

Page 27: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

[! {! "image": "tutum/wordpress-stackable",! "name": "wordpress",! "cpu": 10,! "memory": 500,! "essential": true,! "links": [! "db"! ],! "entryPoint": [! "/bin/sh",! "-c"! ],! "environment": [! …! ],! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ]! },! ]!

From  Docker  Hub  

Mount  volume  from  other  container  

Command  to  exec  

주요 구성 요소: Task Definitions ! !{!

"name": "busybox",! "image": "busybox",! "cpu": 10,! "memory": 500,! "volumesFrom": [! {! "sourceContainer": "simple-demo"! }! ],! "entryPoint": [! "sh",! "-c"! ],! "command": [! "/bin/sh -c \"while true; do /bin/date > /var/www/my-vol/date; sleep 1; done\""! ],! "essential": false! }!

Page 28: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

작업의 단위

연관된 컨테이너들의 그룹

컨테이너 인스턴스에서 실행

주요 구성 요소: Tasks

Page 29: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

주요 구성 요소: Tasks

Good for short-lived containers, e.g. batch jobs

Page 30: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

주요 구성 요소: Services

Good for long-running applications and services

 

Page 31: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Long running 애플리케이션

• 로드 밸런싱

• 상태 관리

• 스케일-업 및 스케일-다운

• 업데이트 관리

Page 32: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

• 컨테이너 간 트래픽을 로드 밸런싱 • 건강하지 않은 컨테이너의 자동 회복 • 서비스의 탐지

ElasHc  Load  Balancing  

주요 구성 요소: Services

Page 33: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

스케일-업 및 스케일-다운

ElasHc  Load  Balancing  

주요 구성 요소: Services

Page 34: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

신규 버전 배포

ElasHc  Load  Balancing  

주요 구성 요소: Services

Page 35: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 자세히 보기

컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴

Page 36: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 37: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 38: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 39: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 40: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 41: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 42: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 43: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 44: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 45: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 46: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 47: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 48: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 49: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 50: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 51: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 52: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 53: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 54: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 55: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 56: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 57: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 58: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 59: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 60: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 61: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 62: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 63: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 64: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 65: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 66: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 67: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 68: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 69: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 70: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 71: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 72: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 73: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 74: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 75: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 76: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 77: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 78: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 79: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 80: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 81: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 82: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 83: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 84: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 85: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 86: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 87: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 88: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 89: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 90: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 91: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Page 92: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

Amazon EC2 Container Service 자세히 보기

컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴

Page 93: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

서비스를 기동하고 싶어요.  

전형적인 사용 패턴

Page 94: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

Run  Instances  

Amazon  EC2  

Docker  및 ECS 에이전트를 지원하는 커스

텀 AMI  사용.    Default  클러스터에 인스턴스를 등록  

전형적인 사용 패턴

Page 95: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

Create  Task  DefiniHon  Containers를 위한 자원 요구사항을 선언  

전형적인 사용 패턴

Page 96: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

Create  Service  Services를 위한 자원

요구사항을 선언  

X  5  

ElasHc  Load  Balancing  

전형적인 사용 패턴

Page 97: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

Describe  Service  

전형적인 사용 패턴

Page 98: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

v  

다음 단계

• 제품 웹사이트 http://aws.amazon.com/ecs/

• 문서 - http://docs.aws.amazon.com/AmazonECS/latest/developerguide/

• 시작하기 - http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_GetStarted.html

Page 99: Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

여러분의 피드백을 기다립니다!

•  공식 블로그: http://aws.amazon.com/ko/blogs/korea

•  한국어 공식 소셜 미디어 @AWSKorea  

AmazonWebServices.ko  

AWSKorea  

AWSKorea