Upload
amazon-web-services-korea
View
5.292
Download
6
Embed Size (px)
Citation preview
DevOps on AWSIGAWorks
백정상
IGAWorks
이야기 하고 싶은 내용
DevOps
데브옵스(DevOps, 개발(Development)과 운영(Operations)의 합성어), 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발방법론. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발및 배포하는 것을 목적으로 한다.
https://ko.wikipedia.org/wiki/데브옵스
개발자 혼자서
단기간
분석 서비스 패스트 프로토타이핑
AWS를 활용해 어떻게 해낼 수 있었는지
지난 5월
애드브릭스를 사용하고 싶은데
저희는 커머스 앱이거든요
딥링크 트래킹을 통해서
상품 광고에 대한 광고 효과를 알고 싶습니다
이런 기능을 제공해주실 수 있나요?
2주 안에
그런데 당시 우리 팀 상황
잉여 개발인력이 팀장밖에 안 남은 상황
주회야코 인생
하지만 광고주님이 원한다면바로 드려야지요
광고주님이 원하는 것
모바일 기기
광고 클릭 딥 링킹
이 모든 과정의 트래킹 솔루션
엑셀 형식의 리포트
SDK가 필요할 것 같고
이벤트 수집할 백엔드를 개발해서
수집한 이벤트를 저장하고
저장한 데이터를 어딘가에 올려서
데이터 분석을 해야겠군
그리고 데이터는 빅데이터일 가능성이 높네
나 혼자 다 구현???
더 이상의 멘붕은 그만
어떻게 개발해야 할까
AWS 매니지드 서비스를 최대한 활용한다
문서화를 꼭 진행한다
테스트 코드는 무조건 작성하며 진행한다
개발 -> 테스트 -> 배포가 자동화 되었으면 좋겠다
혼자 개발하니까 CI는 필요 없을 것 같다
서비스 모니터링을 잘 갖춰야겠다
개발 환경
Node.js 0.12.x + express + mocha
WebStorm
MSSQL
Github
Confluence
SDK와 WAS부터 만들자
SDK는 iOS / Android
앱에서 중요한 이벤트가 발생하면 서버로 전송
SQLite를 이용 오프라인 스토리지 구현
이벤트 유실 최소화
WAS는 Node.js + express.js로 일단 로컬에서 구현
배포 스크립트가 있었지만, EC2를 그냥 다 구성해서 쓰고 싶지 않았음
Tokyo
VPC
SDK DNS App Event Tracking API
AWS에서 사용한 솔루션
코드 관리는 그냥 GitHub 쓰자
MS Azure의 Cloud Service 같은 게 있음 좋겠다
AWS가 알아서 관리해주는 데이터베이스를 쓰고 싶다
데이터는 S3에 다 때려 넣어야지
Elastic Beanstalk
다 알아서 해줘요코드 배포EC2 인스턴스 설정오토 스케일링로드 밸런싱방화벽VPC롤링 업데이트스테이징모니터링로깅
Elastic Beanstalk에서 Node.js 지원
Eb-cli를 이용해서 커맨드라인으로 서비스 환경설정 및 배포
개발, 스테이징, 라이브 단계의 서비스들로 구성
쾌속으로 WAS를 구현
Tokyo
VPC
SDK DNS App Event Tracking API
DynamoDB
이전에는 MongoDB를 주로 사용
DynamoDB는 처음 써봄
써보니 read/write 모두 매우 빠름
한 자릿수 레이턴시
Throughput 조절 외엔 불편함을 느끼지 못함
딥링크의 컨버전 정보를 기기별로 read/write
Tokyo
VPC
SDK DNS
App Event Tracking API App ConversionStorage
S3
S3 throughput을 고려해
5분 동안 로그를 적재했다가 upload
Static website hosting 최고
실질적인 데이터레이크 역할
Tokyo
VPC
SDK DNS
App Event Tracking API
App ConversionStorage
App EventStorage
AWS Lambda
원래 구성안은Beanstalk -> S3 -> SQS -> Worker -> RedShift
어차피 데이터가 5분마다 적재되는데, 서버 돌리기 아깝다마침 람다가 Node.js만을 지원, 바로 적용코드 작성 후 업로드 하면 끝초단위 과금이라는 신개념!100만 요청은 공짜
마이크로 배치 워커 역할 담당
RedShift
PostgreSQL 호환 데이터 웨어하우스
SQL 형태의 쿼리가 가능
매우매우 빠름
S3에서 데이터 load/unload
다양한 데이터형식 지원
딥링크 성과 분석에 사용
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
내가한것코드 작성
테스트
AWS 솔루션 학습
AWS가한것코드 배포
EC2 인스턴스 관리
로드 밸런싱
오토 스케일링
보안
VPC
서비스 이벤트 통지
서비스 모니터링
로그수집 및 관리
스테이징
롤링 업데이트
데이터 적재
데이터 분석
헬스 체크
이 모든걸 구현하는데 든 시간
주말출근 포함해서10일
꿀팁
BeanStalk에서 사용하는 로드밸런서 쉽게 찾기
라이브중인 서비스 Tag 변경하는 방법
크로스 리전 리플리케이션이 더 싸다
Serverless가 과연 언제나 답인가
We’re [email protected]