Upload
amazon-web-services-korea
View
1.012
Download
1
Embed Size (px)
Citation preview
AWS ContainerDay
EC2 Container Service + Vingle
2015년 12월 14일 조휘철 Software Engineer
AWS ContainerDay
Vingle 소개
“사람들은 자발적으로 좋아하는 것을 위해 모인다”
3000개가 넘는 관심 기반 커뮤니티 기반 플랫폼 앱스토어, 안드로이드 마켓 소셜 분야 10위권
MAU 900만
AWS ContainerDay
AWS 스케치
EC2 Container Service
(Background)
Route 53 OpsWorks (Service)
CloudWatch S3 SNS
RDS
ElastiCache DynamoDB
RedShift
Elastic Load Balancing Users
AWS ContainerDay
주로 사용하는 솔루션
AWS ContainerDay
Docker를 사용하기 까지..
AWS ContainerDay
당시 AWS 스케치
Opsworks (Background)
Route 53 OpsWorks (Service)
CloudWatch S3 SNS
RDS
ElastiCache DynamoDB
RedShift
Elastic Load Balancing Users
문제의 구간
AWS ContainerDay
당시 겪던 문제점
느린 배포 속도
피크를 대비한 대응이 필요
개발/프로덕션 환경 차이
필요 라이브러리 설치 및 코드 배포 (소요시간 20분)
AWS ContainerDay
과거 배포 방식
로컬 개발 테스트 (5분)
스테이징 (20분)
테스트
프로덕션 (20분)
배포
AWS ContainerDay
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning (10분)
소스카피 assets빌드 (10분)
Opsworks에 정의된 Ruby On Rails App
On service (20분)
피크 대응 불가
AWS ContainerDay
시도1. 빌드 후 배포
AWS ContainerDay
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning (10분)
소스카피 assets빌드 (0분)
Opsworks에 정의된 Ruby On Rails App
On service (10분)
부족함
AWS ContainerDay
시도2. AMI를 사용한 Provisioning 스킵
AWS ContainerDay
Opsworks 배포 과정
배포
OpsWorks EC2
Provisioning (3분)
소스카피 assets빌드 (0분)
Opsworks에 정의된 Ruby On Rails App
On service (3분)
꾸준한 AMI 관리 필요
AWS ContainerDay
시도3. Docker 도입
AWS ContainerDay
새로운 배포 방식
로컬 개발 Docker빌드 스테이징
테스트
프로덕션
배포
AWS ContainerDay
Opsworks 배포 과정
배포
OpsWorks EC2
Booting (1분)
Container Deliver (1분)
Opsworks에 정의된 Ruby On Rails App
On service (2분)
Good
AWS ContainerDay
퍼포먼스 벤치마킹
AWS ContainerDay
퍼포먼스 벤치마킹
서비스에 적용하기로 결정
AWS ContainerDay
Opsworks 장단점 파악
장점
인스턴스 Role을 파악하기 쉬움
Chef를 통한 세밀한 조정이 가능
한눈에 모니터링 하기 쉽다
단점 Scale-out 할 때 불필요하지만 같이 Scale-out 되는 부분이 생김
인스턴스의 리소스가 효율적이지 않음
AWS ContainerDay
Background Docker화 진행
AWS ContainerDay
당시 AWS 스케치
Opsworks (Background)
Route 53 OpsWorks (Service)
CloudWatch S3 SNS
RDS
ElastiCache DynamoDB
RedShift
Elastic Load Balancing Users
실험 대상
AWS ContainerDay
Vingle의 백그라운드는..
AWS ContainerDay
배포/Scale-out 하기 쉬운 UI 인스턴스에 효율적으로 컨테이너 배치 모니터링 용이
새로운 실험의 GOAL
AWS ContainerDay
당시 검토한 것들
CoreOS
컨테이너 전용 경량 리눅스 안전한 업데이트
AWS에서 쓰기 위해서는 CloudFormation을 이용한 방법이 있었으나, 관리가 불편해 보임
Kubernetes
구글 컨테이너 오케스트레이션
쉬운 설치를 위해 Cookbook을 기다리기로..
AWS ContainerDay
때마침 ECS의 등장
AWS ContainerDay
서비스 관리를 위한 구성을 제공한다 효율적으로 컨테이너들을 배치/관리 해준다 쉬운 UI 무료로 제공된다 별도의 비용 없이 AWS Support를 받을 수 있다
ECS
AWS ContainerDay
개발팀 모두가 구조를 이해하는데 어려움이 없었음 Task별로 리소스를 다르게 할당이 가능 한눈에 모니터링이 가능 타 솔루션 검토에 비해 시간을 적게 투자 할 수 있음 Pioneer 정신
ECS 도입 배경
AWS ContainerDay
현재는 완전히 ECS로 변경
m3.large instance 이용
AWS ContainerDay
Q & A
AWS ContainerDay
Thank you