Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

6,581 views

Published on

11월20일에 있었던 Partner Techshift에서 IGAWorks의 백 정상 팀장님께서 발표하신 'DevOps on AWS ' 강연 발표자료입니다.

Published in: Technology
  • Be the first to comment

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

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

×