igaworks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: aws 파트너...

59
DevOps on AWS IGAWorks 백정상

Upload: amazon-web-services-korea

Post on 14-Apr-2017

5.289 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

DevOps on AWSIGAWorks

백정상

Page 2: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

IGAWorks

Page 3: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 4: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 5: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 6: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

이야기 하고 싶은 내용

Page 7: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

DevOps

Page 8: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

데브옵스(DevOps, 개발(Development)과 운영(Operations)의 합성어), 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발방법론. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발및 배포하는 것을 목적으로 한다.

https://ko.wikipedia.org/wiki/데브옵스

Page 9: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

개발자 혼자서

단기간

분석 서비스 패스트 프로토타이핑

AWS를 활용해 어떻게 해낼 수 있었는지

Page 10: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

지난 5월

Page 11: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

애드브릭스를 사용하고 싶은데

저희는 커머스 앱이거든요

딥링크 트래킹을 통해서

상품 광고에 대한 광고 효과를 알고 싶습니다

이런 기능을 제공해주실 수 있나요?

Page 12: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

2주 안에

Page 13: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 14: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

그런데 당시 우리 팀 상황

Page 15: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 16: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

잉여 개발인력이 팀장밖에 안 남은 상황

주회야코 인생

Page 17: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 18: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

하지만 광고주님이 원한다면바로 드려야지요

Page 19: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

광고주님이 원하는 것

모바일 기기

광고 클릭 딥 링킹

이 모든 과정의 트래킹 솔루션

Page 20: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

엑셀 형식의 리포트

Page 21: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

SDK가 필요할 것 같고

이벤트 수집할 백엔드를 개발해서

수집한 이벤트를 저장하고

저장한 데이터를 어딘가에 올려서

데이터 분석을 해야겠군

그리고 데이터는 빅데이터일 가능성이 높네

Page 22: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

나 혼자 다 구현???

Page 23: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 24: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

더 이상의 멘붕은 그만

어떻게 개발해야 할까

Page 25: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

AWS 매니지드 서비스를 최대한 활용한다

문서화를 꼭 진행한다

테스트 코드는 무조건 작성하며 진행한다

개발 -> 테스트 -> 배포가 자동화 되었으면 좋겠다

혼자 개발하니까 CI는 필요 없을 것 같다

서비스 모니터링을 잘 갖춰야겠다

Page 26: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

개발 환경

Page 27: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Node.js 0.12.x + express + mocha

WebStorm

MSSQL

Github

Confluence

Page 28: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

SDK와 WAS부터 만들자

Page 29: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

SDK는 iOS / Android

앱에서 중요한 이벤트가 발생하면 서버로 전송

SQLite를 이용 오프라인 스토리지 구현

이벤트 유실 최소화

Page 30: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

WAS는 Node.js + express.js로 일단 로컬에서 구현

배포 스크립트가 있었지만, EC2를 그냥 다 구성해서 쓰고 싶지 않았음

Page 31: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Tokyo

VPC

SDK DNS App Event Tracking API

Page 32: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

AWS에서 사용한 솔루션

Page 33: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

코드 관리는 그냥 GitHub 쓰자

MS Azure의 Cloud Service 같은 게 있음 좋겠다

AWS가 알아서 관리해주는 데이터베이스를 쓰고 싶다

데이터는 S3에 다 때려 넣어야지

Page 34: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Elastic Beanstalk

Page 35: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

다 알아서 해줘요코드 배포EC2 인스턴스 설정오토 스케일링로드 밸런싱방화벽VPC롤링 업데이트스테이징모니터링로깅

Page 36: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 37: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 38: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 39: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 40: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
Page 41: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Elastic Beanstalk에서 Node.js 지원

Eb-cli를 이용해서 커맨드라인으로 서비스 환경설정 및 배포

개발, 스테이징, 라이브 단계의 서비스들로 구성

쾌속으로 WAS를 구현

Page 42: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Tokyo

VPC

SDK DNS App Event Tracking API

Page 43: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

DynamoDB

Page 44: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

이전에는 MongoDB를 주로 사용

DynamoDB는 처음 써봄

써보니 read/write 모두 매우 빠름

한 자릿수 레이턴시

Throughput 조절 외엔 불편함을 느끼지 못함

딥링크의 컨버전 정보를 기기별로 read/write

Page 45: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Tokyo

VPC

SDK DNS

App Event Tracking API App ConversionStorage

Page 46: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

S3

Page 47: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

S3 throughput을 고려해

5분 동안 로그를 적재했다가 upload

Static website hosting 최고

실질적인 데이터레이크 역할

Page 48: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Tokyo

VPC

SDK DNS

App Event Tracking API

App ConversionStorage

App EventStorage

Page 49: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

AWS Lambda

Page 50: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

원래 구성안은Beanstalk -> S3 -> SQS -> Worker -> RedShift

어차피 데이터가 5분마다 적재되는데, 서버 돌리기 아깝다마침 람다가 Node.js만을 지원, 바로 적용코드 작성 후 업로드 하면 끝초단위 과금이라는 신개념!100만 요청은 공짜

마이크로 배치 워커 역할 담당

Page 51: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

RedShift

Page 52: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

PostgreSQL 호환 데이터 웨어하우스

SQL 형태의 쿼리가 가능

매우매우 빠름

S3에서 데이터 load/unload

다양한 데이터형식 지원

딥링크 성과 분석에 사용

Page 53: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

Tokyo

vpc_adbrix_commerce

SDK DNS

App Event Tracking API

App Conversion Storage

App EventStorage

North Virginia

App Event Storage

App Event MicrobatchLoader

App Event AnalysisCross RegionReplication

Page 54: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

내가한것코드 작성

테스트

AWS 솔루션 학습

AWS가한것코드 배포

EC2 인스턴스 관리

로드 밸런싱

오토 스케일링

보안

VPC

서비스 이벤트 통지

서비스 모니터링

로그수집 및 관리

스테이징

롤링 업데이트

데이터 적재

데이터 분석

헬스 체크

Page 55: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

이 모든걸 구현하는데 든 시간

Page 56: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

주말출근 포함해서10일

Page 57: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

꿀팁

Page 58: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

BeanStalk에서 사용하는 로드밸런서 쉽게 찾기

라이브중인 서비스 Tag 변경하는 방법

크로스 리전 리플리케이션이 더 싸다

Serverless가 과연 언제나 답인가

Page 59: IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나

We’re [email protected]