Transcript
Page 1: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Amazon EC2 Container Service 자세히 보기 (고객사 Vingle과 함께)

김상필 솔루션즈 아키텍트, 한국아마존웹서비스 조휘철 소프트웨어 엔지니어, VINGLE.NET

Page 2: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

•  운영체제 가상화

•  프로세스 격리

•  자동화

•  이미지 기반 Server

Guest OS

Bins/Libs Bins/Libs

App2 App1

컨테이너란?

Page 3: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Page 4: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Portable

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

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

Server

Guest OS

Bins/Libs Bins/Libs

App2 App1

컨테이너 기술의 장점

Page 5: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Flexible •  유연성 •  이미지 기반으로 배포되는 컨테

이너는 클린하고, 재사용 가능한 모듈화 환경

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

Server

Guest OS

Bins/Libs Bins/Libs

App2 App1

컨테이너 기술의 장점

Page 6: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

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

Server

Guest OS

Bins/Libs Bins/Libs

App2 App1

컨테이너 기술의 장점

Page 7: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

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

Guest OS

Bins/Libs Bins/Libs

App2 App1

컨테이너 기술의 장점

Page 8: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

+

•  손쉬운 배포

•  환경의 신뢰성

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

•  자동화

•  분산 애플리케이션

Docker를 AWS에서 구동하는 이유

Page 9: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  손쉬운 애플리케이션 배포

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

  지속적 통합 (Continuous Integration)

  지속적 배포 (Continuous Delivery)

  플랫폼 서비스 (PaaS)

  분산 애플리케이션 구성

  분산 애플리케이션 확장

컨테이너 사용 사례

Page 10: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  서비스 스케줄러   로드 밸런싱   관리 콘솔   사설 저장소 (Private Repositories) 지원   데이터 볼륨   AWS CloudTrail 통합   비용 - $0, EC2 인스턴스 비용만 발생

Amazon EC2 Container Service

Page 11: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  Container Instance

  Cluster

  Task Definitions

  Tasks

  Service Container Instance

Container Instance

Container Instance

Cluster

Task definition

Task

Service

주요 구성 요소

Page 12: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  별도 실행 없음

  전체 상태 관리

  컨트롤 및 모니터링

  대규모 확장

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

Page 13: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  어플리케이션

  배치 작업

  복수 스케줄러

유연한 컨테이너 배치

Page 14: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  Elastic Load Balancing

  Elastic Block Store

  Virtual Private Cloud

  IAM

CloudTrail

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

Page 15: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  전체 API 제공

  오픈소스 에이전트

  커스텀 스케줄러

확장 가능

Page 16: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

ECS + Vingle

Page 17: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Vingle 소개

“사람들은 자발적으로 좋아하는 것을 위해 모인다”

  3000개가 넘는 관심 기반 커뮤니티 기반 플랫폼 앱스토어, 안드로이드 마켓 소셜 분야 10위권

  MAU 900만

Page 18: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

AWS 스케치

EC2 Container Service

(Background)

Route 53 OpsWorks (Service)

CloudWatch S3 SNS

RDS

ElastiCache DynamoDB

RedShift

Elastic Load Balancing Users

Page 19: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

주로 사용하는 솔루션

Page 20: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Docker를 사용하기 까지..

Page 21: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

당시 AWS 스케치

Opsworks (Background)

Route 53 OpsWorks (Service)

CloudWatch S3 SNS

RDS

ElastiCache DynamoDB

RedShift

Elastic Load Balancing Users

문제의 구간

Page 22: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

당시 겪던 문제점

  느린 배포 속도

피크를 대비한 대응이 필요

  개발/프로덕션 환경 차이

필요 라이브러리 설치 및 코드 배포 (소요시간 20분)

Page 23: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

과거 배포 방식

로컬 개발 테스트 (5분)

스테이징 (20분)

테스트

프로덕션 (20분)

배포

Page 24: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Opsworks 배포 과정

배포

OpsWorks EC2

Provisioning (10분)

소스카피 assets빌드 (10분)

Opsworks에 정의된 Ruby On Rails App

On service (20분)

피크 대응 불가

Page 25: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

시도1. 빌드 후 배포

Page 26: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Opsworks 배포 과정

배포

OpsWorks EC2

Provisioning (10분)

소스카피 assets빌드 (0분)

Opsworks에 정의된 Ruby On Rails App

On service (10분)

부족함

Page 27: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

시도2. AMI를 사용한 Provisioning 스킵

Page 28: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Opsworks 배포 과정

배포

OpsWorks EC2

Provisioning (3분)

소스카피 assets빌드 (0분)

Opsworks에 정의된 Ruby On Rails App

On service (3분)

꾸준한 AMI 관리 필요

Page 29: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

시도3. Docker 도입

Page 30: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

새로운 배포 방식

로컬 개발 Docker빌드 스테이징

테스트

프로덕션

배포

Page 31: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Opsworks 배포 과정

배포

OpsWorks EC2

Booting (1분)

Container Deliver (1분)

Opsworks에 정의된 Ruby On Rails App

On service (2분)

Good

Page 32: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

퍼포먼스 벤치마킹

Page 33: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

퍼포먼스 벤치마킹

서비스에 적용하기로 결정

Page 34: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Opsworks 장단점 파악

장점

인스턴스 Role을 파악하기 쉬움

  Chef를 통한 세밀한 조정이 가능

  한눈에 모니터링 하기 쉽다

단점   Scale-out 할 때 불필요하지만 같이 Scale-out 되는 부분이 생김

인스턴스의 리소스가 효율적이지 않음

Page 35: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Background Docker화 진행

Page 36: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

당시 AWS 스케치

Opsworks (Background)

Route 53 OpsWorks (Service)

CloudWatch S3 SNS

RDS

ElastiCache DynamoDB

RedShift

Elastic Load Balancing Users

실험 대상

Page 37: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Vingle의 백그라운드는..

Page 38: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  배포/Scale-out 하기 쉬운 UI 인스턴스에 효율적으로 컨테이너 배치   모니터링 용이

새로운 실험의 GOAL

Page 39: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

당시 검토한 것들

CoreOS

  컨테이너 전용 경량 리눅스   안전한 업데이트

AWS에서 쓰기 위해서는 CloudFormation을 이용한 방법이 있었으나, 관리가 불편해 보임

Kubernetes

구글   컨테이너 오케스트레이션

쉬운 설치를 위해 Cookbook을 기다리기로..

Page 40: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

때마침 ECS의 등장

Page 41: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  서비스 관리를 위한 구성을 제공한다   효율적으로 컨테이너들을 배치/관리 해준다   쉬운 UI   무료로 제공된다   별도의 비용 없이 AWS Support를 받을 수 있다

ECS

Page 42: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  개발팀 모두가 구조를 이해하는데 어려움이 없었음   Task별로 리소스를 다르게 할당이 가능   한눈에 모니터링이 가능   타 솔루션 검토에 비해 시간을 적게 투자 할 수 있음   Pioneer 정신

ECS 도입 배경

Page 43: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

현재는 완전히 ECS로 변경

m3.large instance 이용

Page 44: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Demo

Page 45: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

  사전 공개 : EC2 Container Registry (ECR)

  S3와 연계된 관리형 서비스

Docker CLI, ECS, IAM 과 연계

  Shippable, CloudBees, CodeShip, Wercker 파트너 솔루션들과 연동

EC2 Container Registry

Page 46: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

CLI를 통해 Docker Compose 지원   새로운 Docker Container 구성 옵션 지원

  working directory,   privileged execution,   read-only root filesystem,   DNS servers,

ulimits,   log configuration

  가용존 (AZ) 인지 스케쥴링

EC2 Container 업데이트

Page 47: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

Next Steps

  제품 웹사이트 - 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 48: Cloud Taekwon 2015 - Amazon EC2 Container Service 자세히 보기

스타트업과 개발자들을 위한 AWS 클라우드 태권

THANK YOU

Amazon EC2 Container Service 자세히 보기 (고객사 Vingle과 함께)