Upload
amazon-web-services-korea
View
2.219
Download
0
Embed Size (px)
Citation preview
월간 웨비나 2015년 8월 26일 금요일 | 오전 11시
http://aws.amazon.com/ko
Amazon EC2 Container Service 자세히 보기
김상필, Solutions Architect [email protected]
v
Amazon EC2 Container Service 자세히 보기
컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
컨테이너란?
• 운영체제 가상화 • 프로세스 격리 • 자동화 • 이미지 기반
Server
Guest OS
Bins/Libs Bins/Libs
App2 App1
v
손쉬운 사용, 표준화, 상호운용성을 갖춘 컨테이너 • 컨테이너 기술은 이전부터 존재 (예 :
LXC, Solaris Zones, BSD Jails)
• 컨테이너는 단지 철제 상자가 아님 • Docker를 사용하면, 로우-레벨 컨테이
너가 다음 장점을 갖게 됨 : -‐ 손쉬운 사용, 툴 -‐ 재사용 가능 컴포넌트 -‐ 현존하는 대부분 Linux 서버에서 구
동 : 물리, 가상, 클라우드, …
컨테이너 기술의 장점
Portable • 이식성 장점 • 이미지 기반 배포, 버전 관리 • 어느 곳에서 운영하던 동일한 환경
• 개발/테스트/운영 환경 동일 Server
Guest OS
Bins/Libs Bins/Libs
App2 App1
컨테이너 기술의 장점
Flexible • 유연성 • 이미지 기반으로 배포되는 컨테이너는 클린하고, 재사용 가능한 모듈화 환경
• 마이크로서비스를 통해 어플리케이션을 작은 단위로 분할하고, 복잡성 줄이고, 신속하게 개발하는 것을 가능하게 함
Server
Guest OS
Bins/Libs Bins/Libs
App2 App1
컨테이너 기술의 장점
Fast • 도커 이미지는 가볍다. • 개발, 빌드, 배포하는 과정이 빠르게 이루어진다.
Server
Guest OS
Bins/Libs Bins/Libs
App2 App1
컨테이너 기술의 장점
Efficient • 필요한 리소스만을 배포 • OS kernel & libs 를 공유하여 사용하기 때문에 어플리케이션이 배포하는 것만을 배포
Server
Guest OS
Bins/Libs Bins/Libs
App2 App1
컨테이너 배포 형태
기본 이미지
Ruby
Redis
Logger
App
개발자 IT 운영
패치 유틸리티
+
• 손쉬운 배포
• 환경의 신뢰성
• 대규모 환경 관리의 용이성
• 자동화
• 분산 애플리케이션
많은 고객이 Docker를 AWS에서 구동하는 이유
v
컨테이너 사용 사례
• 손쉬운 애플리케이션 배포
• 애플리케이션 라이프 사이클
• 지속적 통합 (Continuous Integration)
• 지속적 배포 (Continuous Delivery)
• 플랫폼 서비스 (PaaS)
• 분산 애플리케이션 구성
• 분산 애플리케이션 확장
v
Amazon EC2 Container Service 자세히 보기
컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
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 인스턴스 비용만 발생
v
모든 규모의 클러스터를 손쉽게 관리
• 별도 실행 없음
• 전체 상태 관리
• 컨트롤 및 모니터링
• 대규모 확장
v
유연한 컨테이너 배치
• 어플리케이션
• 배치 작업
• 복수 스케줄러
v
AWS 서비스와 함께 사용되도록 설계
• Elastic Load Balancing
• Elastic Block Store
• Virtual Private Cloud
• IAM
• CloudTrail
v
확장 가능
• 전체 API 제공
• 오픈소스 에이전트
• 커스텀 스케줄러
v
Amazon EC2 Container Service 자세히 보기
컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
v
주요 구성 요소
• Container Instance
• Cluster
• Task Definitions
• Tasks
• Service
Container Instance
Container Instance
…
Container Instance
Cluster
Task defini3on
Task
Service
v
Amazon EC2 인스턴스
Docker 데몬
Amazon ECS 에이전트
AMI 제공
주요 구성 요소: Container Instance
v
지역 단위
자원 풀
Container 인스턴스들의 그룹
최소에서 시작, 동적 확장
주요 구성 요소: Clusters
주요 구성 요소: Task Definitions
Container Instance
Schedule
Shared data volume
PHP App Time of day App
!!!!!!!{! "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
주요 구성 요소: 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
[! {! "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! }!
v
작업의 단위
연관된 컨테이너들의 그룹
컨테이너 인스턴스에서 실행
주요 구성 요소: Tasks
주요 구성 요소: Tasks
Good for short-lived containers, e.g. batch jobs
주요 구성 요소: Services
Good for long-running applications and services
v
Long running 애플리케이션
• 로드 밸런싱
• 상태 관리
• 스케일-업 및 스케일-다운
• 업데이트 관리
v
• 컨테이너 간 트래픽을 로드 밸런싱 • 건강하지 않은 컨테이너의 자동 회복 • 서비스의 탐지
ElasHc Load Balancing
주요 구성 요소: Services
v
스케일-업 및 스케일-다운
ElasHc Load Balancing
주요 구성 요소: Services
v
신규 버전 배포
ElasHc Load Balancing
주요 구성 요소: Services
v
Amazon EC2 Container Service 자세히 보기
컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
v
Amazon EC2 Container Service 자세히 보기
컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
서비스를 기동하고 싶어요.
전형적인 사용 패턴
Run Instances
Amazon EC2
Docker 및 ECS 에이전트를 지원하는 커스
텀 AMI 사용. Default 클러스터에 인스턴스를 등록
전형적인 사용 패턴
Create Task DefiniHon Containers를 위한 자원 요구사항을 선언
전형적인 사용 패턴
Create Service Services를 위한 자원
요구사항을 선언
X 5
ElasHc Load Balancing
전형적인 사용 패턴
Describe Service
전형적인 사용 패턴
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
여러분의 피드백을 기다립니다!
• 공식 블로그: http://aws.amazon.com/ko/blogs/korea
• 한국어 공식 소셜 미디어 @AWSKorea
AmazonWebServices.ko
AWSKorea
AWSKorea