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.

Aws se-aws 경험기

250 views

Published on

AWS-SE 소모임 3차 발표 자료

Published in: Technology
  • Be the first to comment

Aws se-aws 경험기

  1. 1. AWS 경험기 YoungJin Lee (jinlogin@gmail.com) AWS-SE 소모임 3차 2017-02-08
  2. 2. 발표자 2 Name : 이 영 진 (Lee Young Jin) Email : jinlogin@gmail.com Java, Android, .Net, CISA, CISSP
  3. 3. 발표 내용 3 서비스 소개 3만 다운로드 부터 3천만 다운로드 이 후 준비
  4. 4. 서비스 소개 4 True Balance 란? - 인도 선불 유심의 밸런스(잔량) 확인 및 충전 앱 - 선불폰의 원터치 잔액조회 기능 - 일 단위 사용량 통계정보 - 자동 잔액 알림, 충전 기능 - 향후 개인별 통신 패턴 분석기능을 기반으로 한 요금제 큐레이팅, 즉각적인 충전 플랫폼, 결제와 송금, 크라우 드 펀딩 등 핀테크 서비스로 비즈니스를 확장할 계획
  5. 5. 3만 다운로드 부터 3천만 다운로드 5 2015.06 2015.08 2016.01 2016.07 2016.10 2017.01 팀 합류 3만 유저 서비스 지역 - 델리 15만 유저 서비스 지역 - 델리 100만 유저 서비스 지역 – 델리 외 4 2천만 다운로드 서비스 지역 - 전국 1천만 다운로드 서비스 지역 - 전국 3천만 다운로드 서비스 지역 - 전국
  6. 6. 3만 다운로드
  7. 7. 3만 유저 7 • 팀 합류 • 개발자 5인 (안드로이드 2명, 서버 3명) • 서비스 시험 단계 • 인도 델리만 서비스 • 3만 유저 대상 로그 수집 및 분석을 통한 전략 구상 • AWS 계정 처음 겟! AWS 가 뭔가요? (A)아마도 (W)웹 (S)서비스?
  8. 8. 3만 유저 – 시스템 8 Available-Zone Public ELBusers Public subnet AWS CLOUD Production VPC Internet gateway API 인증 API 로그MySQL
  9. 9. 3만 유저 – 문제점 개선 9 • 로컬 빌드 후 패키지 EC2 에 복사 하고 실행하고 아… 승질나서 -> Jenkins 배포 구성 • 유저 관리는 뭘로? -> CMS 개발 • 3rd Party Service API 호출 응답이 느려…. -> 비동기 처리 Queue (RabbitMQ) • 서비스가 죽어도 몰라요 -> CloudWatch Alarm • 인증 토큰은 캐시에 넣자 -> Memcached 적용 • 프로젝트 이슈 트래킹 관리도 해야지 -> JIRA 운영 • 개발 기술문서 관리나 공유는? -> WIKI 운영 할 일이 많구만….
  10. 10. 15만 다운로드
  11. 11. 15만 유저 11 • 가입 프로모션으로 사용자 점차 증가 • 밸런스 충전 기능 제공 • 델리 이외 지역 확대 준비 사용자를 확보하자! 서비스 지역 확대
  12. 12. 15만 유저 – 시스템 12 Available-Zone Public ELBusers Public subnet AWS CLOUD Production VPC Internet gateway API API 로그 MySQL Master MySQL Slave Worker Memcached RabbitMQ JIRA, WIKI CMS Jenkins
  13. 13. 15만 유저 – 문제점 개선 13 • 지역 확대 후 사용자가 몰리면 어떻게 처리하지? -> Auto Sacaling 구성 • 가만있어봐 인스턴스가 자동으로 뜨는데 버전 관리는? -> Jenkins 빌드 시 S3 업로드 -> 인스턴스 구동 시 Bash Shell 사용, S3 최종 버전 다운 후 구동 • 로그도 많아질 테니 로그 DB는 추가 설치 AWS… 이제 EC2 는 좀 알아요.
  14. 14. 100만 다운로드
  15. 15. 100만 유저 – 상황 15 • 50만 -> 100만 까지 7일만에 돌파. 후 프로모션 중단 • 인도 플레이스토어 라이프 스타일 1위 • 일일 가입자 15만 (7일째) 델리 외 4개 지역 오픈!
  16. 16. 100만 유저 – 시스템 16 Available-Zone Public ELBusers Public subnet AWS CLOUD Production VPC Internet gateway API API 로그 MySQL Master MySQL Slave Worker Auto Scaling group Memcache JIRA CMS WIKI RabbitMQ ….. MySQL LOG
  17. 17. 100만 유저 – 문제점 개선 17 • EC2에 올린 MySQL 서버를 사양을 늘려야 겠는데 개발자만 있으니 관리가 어렵고… -> RDS 로 이관, AWS DMS 를 이용한 마이그레이션 • MySQL 에 저장된 로그를 볼 수가 없어요… 느려서 -> ELK (Elasticsearch, Logstash, Kibana) 구성 • AWS를 최대한 활용 관리 부담을 줄이자! -> RabbitMQ -> SQS 로 변경 -> Memcached -> AWS elasticache (Memcached) 사용자는 많아져서 좋지만 뭔가 불안한데….
  18. 18. 1천만 다운로드
  19. 19. 1천만 유저 19 • Payment Gateway 연동으로 신용카드 충전 서비스 시작 • CPI, 광고 적용 • 치터,어뷰저 와의 전쟁 • 치터 막고 ( IP Block , HTTP Header 검증, Signature 강화 ) • 치터 막고 (Device IMEI, Sim Serial 체크섬) • 치터 막고 (루팅 단말 API 후킹 회피) • 치터 막자 (그밖에 검증 강화) 인도 전 지역 서비스 확대
  20. 20. 1천만 유저 – 시스템 20 Available-Zone Public ELBusers Public subnet AWS CLOUD Production VPC Internet gateway API Worker Auto Scaling group JIRA CMS WIKI ….. RDS Memcached Redis RDS AWS S3 AWS SQS API Auto Scaling group 치터 막느라 바뻐서 그대로에요!!
  21. 21. 1천만 유저 – 문제점 개선 21 사용자는 많아져서 좋지만 뭔가 불안한데…. • 결제 API 는 보안이 중요하지! -> 결제/충전 API, Worker -> Private Subnet 으로, NAT Gateway 구성 • 이제 로그 데이터는 많으니 GA를 대체할 시스템이 필요해요 -> AWS EMR, Spark (DAU, MAU 3주 데이터 보정) -> 실시간 분석을 위한 Kinesis 구성 -> Zeppelin 으로 조회 -> 통계 시스템 개발 – 시각화 • DB 부하를 줄여야겠지 -> elasticache Redis 사용, 캐싱 • SSL 인증서 만료가 언제였지? -> ACM (AWS Certificate Manager) 으로 대체
  22. 22. 2천만 다운로드
  23. 23. 2천만 유저 – 상황 23 • 개발,운영,마케팅,디자인 등 다양한 포지션 인력 채용 본격화 • 매출 확보를 위한 다양한 시도 • 결제 매출 늘리기 • 광고 매출 늘리기 • 지속적인 성장을 위한 다양한 프로모션 시도 인도 시장 상황 변화로 속도전!! 인력 채용 본격화
  24. 24. 2천만 유저 – 시스템 24 Available-Zone Public ELBusers Public subnet AWS CLOUD Production VPC Internet gateway API Worker Auto Scaling group JIRA CMS WIKI ….. RDS MemcachedRedis RDS AWS S3 AWS SQS API Auto Scaling group Private subnet NAT Gateway Internet API - Payment Auto Scaling group Auto Scaling group Worker - Payment Internet gateway Public ELB AWS EMR AWS Kinesis
  25. 25. 2천만 유저 – 문제점 개선 25 시스템 구조 개선 • API 모놀리식(Monolithic Architecture) 약간의 변경에 전체 배포 부담. -> MSA(microservice architecture) 로 변경 • 치터(어뷰저)를 막을 시스템이 필요 -> 데이터 기반 FDS 시스템 개발 준비 • 통계 시스템 개발속도가 요구사항을 따라가지 못함 -> BI 시스템으로 AWS QuickSight 사용 • 금융 서비스 서버는 해당 국가에 위치 -> Mumbai Region 이관 준비 • DNS 관리 -> Route 53 사용
  26. 26. 3천만 다운로드
  27. 27. 3천만 유저 – 상황 27 • 인도 RBI 은행으로 부터 월릿 라이선스 획득 • PCI-DSS 인증 준비 • 인프라 보안 감사 준비 • 본격적인 핀테크 비즈니스 시작 핀테크 서비스로...
  28. 28. 3천만 유저 – 시스템 28 Available-Zone A/B RDS Memcached Redis Route 53 External ELB Internal ELB Internal ELB NAT NAT-PG users Internet private-subnet-1 10.1.0.0/22 RDS private-subnet-2 10.1.8.0/22 public-subnet-2 10.1.136.0/22 public-subnet-1 10.1.128.0/22 OpenVPN private-subnet-3 10.1.16.0/22 APIs Payment Worker Payment private-subnet-4 10.1.24.0/22 Worker Publish Recharge Worker Push Worker SMS DiscoveryNginx APIs router router router router router Internet gateway Mgmt VPC Internet gateway router AWS CLOUD Internet Production VPC 10.1.0.0/16 router AWS S3 AWS SQS Internet gateway VPN connection AWS Quick Sight AWS EMR AWS Kinesis
  29. 29. 3천만 유저 – 문제점 개선 29 보안, 보안, 보안 • PCI-DSS 인증, 보안 감사 의 요구사항을 맞추기 위한 인프라 변경 • Singapole Region -> Mumbai Region 이관 • VPC 구성부터 모두 다시 (Security Group, Network ACL, Route Table, …….) • Zabbix 모니터링 및 알람 • OpenVPN 을 통한 보안 연결 • AWS Inspector 을 이용한 취약점 분석 • IAM Role 활용 • VPC Flow Log, CloudTrail 감사로그 사용 • CloudFront, WAF 사용 준비
  30. 30. 이제 시작!
  31. 31. 회고 31 개발한다고 바빠 인프라에 너무 신경쓰지 못한 상황이 부채로.. 서비스가 성장하기 시작하면 인프라 변경이 어렵다. (잘 모를땐 설정 변경 조차 무섭다.) 찾아보니 AWS 설명서 문서가 정말 잘 되어 있었다. AWS를 사용한다면 우선 설명서를 보자! API 기반 서비스에서 최소 VPC (Subnet,Route,Securite Ggroup)는 이해해야 고생을 안한다. 이제는 AWS 가 뭔지는 알아요!!! .
  32. 32. 끝! 32 Q & A 감사합니다. 2017.02.08 다음엔 좀 더 구체적인 내용으로....

×