4. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Portable
• 이식성 장점
• 이미지 기반, 버전 관리
• 어느 곳에서 운영하던 동일
한 환경
• 개발/테스트/운영 환경 동
일
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
컨테이너 기술의 장점
5. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Flexible
• 유연성
• 이미지 기반으로 배포되는 컨테
이너는 클린하고, 재사용 가능한
모듈화 환경
• 마이크로서비스를 통해 어플리
케이션을 작은 단위로 분할하고,
복잡성 줄이고, 신속하게 개발하
는 것을 가능하게 함
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
컨테이너 기술의 장점
6. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Fast
• 도커 이미지는 가볍다.
• 개발, 빌드, 배포하는 과정
이 빠르게 이루어진다.
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
컨테이너 기술의 장점
7. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Efficient
• 필요한 리소스만을 배포
• OS kernel & libs 를 공유하
여 사용하기 때문에 어플리
케이션이 배포하는 것만을
배포Server
Guest OS
Bins/Libs Bins/Libs
App2App1
컨테이너 기술의 장점
8. 스타트업과 개발자들을 위한 AWS 클라우드 태권
+
• 손쉬운 배포
• 환경의 신뢰성
• 대규모 환경 관리의 용이성
• 자동화
• 분산 애플리케이션
Docker를 AWS에서 구동하는 이유
9. 스타트업과 개발자들을 위한 AWS 클라우드 태권
손쉬운 애플리케이션 배포
애플리케이션 라이프 사이클
지속적 통합 (Continuous Integration)
지속적 배포 (Continuous Delivery)
플랫폼 서비스 (PaaS)
분산 애플리케이션 구성
분산 애플리케이션 확장
컨테이너 사용 사례
10. 스타트업과 개발자들을 위한 AWS 클라우드 태권
서비스 스케줄러
로드 밸런싱
관리 콘솔
사설 저장소 (Private Repositories) 지원
데이터 볼륨
AWS CloudTrail 통합
비용 - $0, EC2 인스턴스 비용만 발생
Amazon EC2 Container Service
11. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Container Instance
Cluster
Task Definitions
Tasks
Service
Container
Instance
Container
Instance
…
Container
Instance
Cluster
Task
definition
Task
Service
주요 구성 요소
12. 스타트업과 개발자들을 위한 AWS 클라우드 태권
별도 실행 없음
전체 상태 관리
컨트롤 및 모니터링
대규모 확장
모든 규모의 클러스터를 손쉽게 관리
13. 스타트업과 개발자들을 위한 AWS 클라우드 태권
어플리케이션
배치 작업
복수 스케줄러
유연한 컨테이너 배치
14. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Elastic Load Balancing
Elastic Block Store
Virtual Private Cloud
IAM
CloudTrail
AWS 서비스와 함께 사용되도록 설계
15. 스타트업과 개발자들을 위한 AWS 클라우드 태권
전체 API 제공
오픈소스 에이전트
커스텀 스케줄러
확장 가능
21. 스타트업과 개발자들을 위한 AWS 클라우드 태권
당시 AWS 스케치
Opsworks
(Background)
Route 53
OpsWorks
(Service)
CloudWatch S3SNS
RDS
ElastiCache DynamoDB
RedShift
Elastic Load
BalancingUsers
문제의 구간
22. 스타트업과 개발자들을 위한 AWS 클라우드 태권
당시 겪던 문제점
느린 배포 속도
피크를 대비한 대응이 필요
개발/프로덕션 환경 차이
필요 라이브러리 설치 및 코드 배포
(소요시간 20분)
23. 스타트업과 개발자들을 위한 AWS 클라우드 태권
과거 배포 방식
로컬 개발
테스트
(5분)
스테이징
(20분)
테스트
프로덕션
(20분)
배포
24. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning
(10분)
소스카피 assets빌드
(10분)
Opsworks에 정의된 Ruby On Rails App
On service
(20분)
피크 대응 불가
26. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning
(10분)
소스카피 assets빌드
(0분)
Opsworks에 정의된 Ruby On Rails App
On service
(10분)
부족함
27. 스타트업과 개발자들을 위한 AWS 클라우드 태권
시도2. AMI를 사용한 Provisioning 스킵
28. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning
(3분)
소스카피 assets빌드
(0분)
Opsworks에 정의된 Ruby On Rails App
On service
(3분)
꾸준한 AMI 관리 필요
34. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Opsworks 장단점 파악
장점
인스턴스 Role을 파악하기 쉬움
Chef를 통한 세밀한 조정이 가능
한눈에 모니터링 하기 쉽다
단점
Scale-out 할 때 불필요하지만 같
이 Scale-out 되는 부분이 생김
인스턴스의 리소스가 효율적이지
않음
38. 스타트업과 개발자들을 위한 AWS 클라우드 태권
배포/Scale-out 하기 쉬운 UI
인스턴스에 효율적으로 컨테이너 배치
모니터링 용이
새로운 실험의 GOAL
39. 스타트업과 개발자들을 위한 AWS 클라우드 태권
당시 검토한 것들
CoreOS
컨테이너 전용 경량 리눅스
안전한 업데이트
AWS에서 쓰기 위해서는
CloudFormation을 이용한 방법이 있
었으나, 관리가 불편해 보임
Kubernetes
구글
컨테이너 오케스트레이션
쉬운 설치를 위해 Cookbook을 기다
리기로..
45. 스타트업과 개발자들을 위한 AWS 클라우드 태권
사전 공개 : EC2 Container
Registry (ECR)
S3와 연계된 관리형 서비스
Docker CLI, ECS, IAM 과 연계
Shippable, CloudBees,
CodeShip, Wercker 파트너 솔
루션들과 연동
EC2 Container Registry
46. 스타트업과 개발자들을 위한 AWS 클라우드 태권
CLI를 통해 Docker Compose 지원
새로운 Docker Container 구성 옵션 지원
working directory,
privileged execution,
read-only root filesystem,
DNS servers,
ulimits,
log configuration
가용존 (AZ) 인지 스케쥴링
EC2 Container 업데이트
47. 스타트업과 개발자들을 위한 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
48. 스타트업과 개발자들을 위한 AWS 클라우드 태권
THANK YOU
Amazon EC2 Container Service 자세히 보기
(고객사 Vingle과 함께)