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-community-day 2017 5천만 모바일 앱 서비스 인프라 확장

452 views

Published on

5천만 모바일 앱 서비스 인프라 확장

Published in: Technology
  • Be the first to comment

aws-community-day 2017 5천만 모바일 앱 서비스 인프라 확장

  1. 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 이영진, 밸런스히어로 팀장 AWS 기반 5천만 모바일 앱서비스 확장하기 AWS 서비스 활용
  2. 2. 본 강연에서 다룰 내용 3만 부터 5천만 다운로드 까지 서비스 또는 비지니스 요구사항에 따라 True Balance 서비스의 AWS 클라우드 아키텍처가 변화해 나가는 과정에 대한 대한 경험을 공유하고자 합니다.
  3. 3. 소개 Jin Lee (이영진) jinlogin@gmail.com BalanceHero 팀장 - Infra & Security Java, Android, .Net, CISSP, CISA
  4. 4. 서비스 소개
  5. 5. 서비스 소개 - 인도 선불 유심의 밸런스(잔량) 확인 및 충전 - 일 단위 데이터 사용량 통계정보 - 자동 잔액 알림, 충전 기능 - 리워드 광고 (CPI, CPC, CPM) - 개인별 통신 패턴 분석기능을 기반으로 한 요금제 추천, 즉각적인 충전 플랫폼, E-Wallet (결제와 송금) 등 핀테크 서비스로 비즈니스를 확장 진행 중
  6. 6. 사용자 규모에 따른 인프라 확장
  7. 7. 3만에서 5천만 3만 15만 100만 1,000만 2,000만 3,000만 5,000만 2015.06 2015.08 2016.01 2016.07 2016.10 2017.01 2017.05 밸런스 체크 서비스 시험 단계 Wallet License PCI-DSS 인프라 보안 RBI 보안 감사 인도 전 지역 확대 데이터 분석 강화 충전 기능 제공 인력 채용 본격화 월렛 비즈니스 준비 지역 확대 델리 + 4개지역 Hybrid Cloud
  8. 8. 3만 AWS 가 뭔가요? (A)아마도 (W)웹 (S)서비스? • 개발자 5인 (안드로이드 2명, 서버 3명) • 서비스 시험 단계 • 인도 델리만 서비스 • 3만 다운로드 유저 대상 로그 수집 및 분석을 통한 전략 구상 • AWS Account 처음 겟!
  9. 9. 3만 - 인프라 ELB Public Subnet API 인증 API 로그 MySQL users Production VPC IGW Internet AWS CLOUD
  10. 10. 3만 – 문제점 개선 아무것도 없었다. • 로컬 빌드 후 war 를 tomcat 에 복사 배포…-> Jenkins 구성 • 유저 관리를 위한 CMS 개발 • 네트워크가 느리고 불안정. 3rd API call latency 이슈 -> 비동기 처리 Queue (RabbitMQ) 사용 • 어라 로그 서버가 죽어있었네… -> CloudWatch Alarm • 개발 기술 문서 관리 및 이슈 트래킹을 위한 JIRA, Confluence
  11. 11. 15만 지역 확대로 인한 가입자 증가 대비 • 일일 가입자 1,000에서 3,000 으로 점차 증가 • 밸런스 (데이터 및 통화) 충전 기능 제공 • 인도 델리 외 Tier-1 4개 지역 확대 준비
  12. 12. 15만 - 인프라 ELB Public Subnet APIs API Logs MySQL Master users Production VPC IGW Internet AWS CLOUD MySQL Slave Workers Memcached RabbitMQ Jenkins JIRA WIKI CMS CloudWatch alarm SNS Notification SQS
  13. 13. 15만 – 문제점 개선 사용자 확보를 위한 준비 • 지역 확대 후 사용자가 몰리면 어떻게 하지? -> Auto Scaling 구성 • Auto Scaling 는 인스턴스가 자동으로 뜨는데 버전 관리는? -> Jenkins Release 버전 빌드 시 S3 업로드 -> Auto Scaling Hooks, Bash Shell S3 최종 배포 본 다운 후 실행 • 로그데이터 증가로 DB 분리 • 사용자 인증 토큰 Memcached 저장
  14. 14. 100만 델리 외 4개 지역 오픈 • 50만에서 100만까지 7일 (100만 달성 후 프로모션 중단) • 인도 플레이 스토어 라이프 스타일 1위 • 일일 가입자 15만 (7일째)
  15. 15. 100 만 - 인프라 ELB Public Subnet APIs API Logs MySQL Master users Production VPC IGW Internet AWS CLOUD MySQL Slave Workers Memcached RabbitMQ Jenkins JIRA WIKI CMS t2.medium*3 t2.medium*2 t2.medium t2.medium t2.micro S3 CloudWatch alarm SNS Notification
  16. 16. 100 만 – 문제점 개선 사용자가 많아지니 알 수 없는 불안 • EC2 설치 MySQL 스케일 업 필요 -> RDS 이관 결정 ( AWS DMS 를 사용 중단시간 약 5분 ) • 사용자 로그 데이터 ELK (Elasticsearch+Logstash+Kibana)로 분리 • 개발자(5명)만 있으니 운영 부담을 줄이기 위해 AWS 최대한 활용 -> RabbitMQ 에서 SQS -> 설치형 Memcached 에서 Elasticache memcached
  17. 17. 1,000 만 인도 전 지역 서비스 확대 • Payment Gateway 연동으로 신용카드 충전 서비스 시작 • 서버 API Spring Boot 로 변경 • 광고 적용 (CPI, CPC, CPM) • 치팅과의 전쟁 -> APK 디컴파일 및 API 분석 후 다양한 방법으로 포인트 획득 시도 -> IP Block, API Signature 적용, Device 중복 검증 -> 루팅 Device 비율이 40% 이상으로 Android_ID, IMEI, Sim Serial 등 모든 정보를 조작해서 가입 시도.
  18. 18. 1,000 만 - 인프라 ELB Public Subnet APIs API Logs users Production VPC IGW Internet AWS CLOUD Workers Jenkins JIRA WIKI CMS RDS Memcached RedisRDS Workers S3 SQSCloudWatch alarm SNS Notification
  19. 19. 1,000 만 – 문제점 개선 • 다양한 치팅과 Payment Gateway 연동으로 보안의 중요성 인식 -> 결제/충전 서버를 Private Subnet 으로, NAT Gateway 사용 • 대용량 로그 분석 시작. GA(google analytics) 대체 시스템 구성 -> AWS EMR Spark , Kinesis 구성, Zeppelin 으로 분석 DAU, MAU 등 통계 등 실시간 모니터링 • Database 부하를 줄이기 위해 Cache. AWS Elasticache Redis • SSL 인증서 만료로 ACM (AWS Certificate Manager) 사용 성능, 보안, 데이터 분석
  20. 20. 2,000 만 인도 시장 상황 변화로 속도전!! 인력 채용 본격화 • 개발/운영/마케팅 등 다양한 포지션 인력 채용 본격화 • 개발팀 9인 (인프라 담당 없음) • 결제/광고 매출 늘리기 • 사용자 확보를 위한 다양한 프로모션 시도
  21. 21. 2,000 만 - 인프라 ELB Public subnet Internet gateway API Workers Auto Scaling JIRA,CMS,WIKI … ETC RDS MemcachedRedis RDS API Auto Scaling Private subnet NAT Gateway API - Payment Auto Scaling group Auto Scaling group Worker - Payment Production VPC AWS CLOUD ELB S3 SQS CloudWatch SNS Internet gateway EMR Kinesis Route53 Quick Sight
  22. 22. 2,000 만 - 문제점 • API 서버 Monolithic -> Microservice Architecture 로 변화 -> Spring Boot + Spring Cloud • 치터(어뷰저)를 차단할 시스템 필요 -> 데이터 기반 FDS 개발 준비 • 통계 시스템 개발 속도가 요구사항을 따라가지 못함 -> AWS QuickSight • DNS 관리 -> Route53 시스템 개선 (1억 유저 대비)
  23. 23. 3,000 만 E-Wallet 서비스로 • 서비스 품질 개선 • RBI Wallet License (인도중앙은행) • PCI-DSS 인증 • 인프라 및 시스템 보안 요구사항
  24. 24. 3,000 만 - 인프라 ELB Public subnet Internet gateway API Gateway Workers Auto Scaling JIRA,CMS,WIKI … ETC RDS MemcachedRedis RDSAPIs Auto Scaling Private subnet NAT Gateway API - Payment Auto Scaling group Auto Scaling group Worker - Payment Production VPC AWS CLOUD ELB S3 SQS CloudWatch SNS Internet gateway EMR Kinesis Route53 Quick Sight Discovery
  25. 25. 3,000 만 – 문제점 개선 보안 감사 • Singapole Region -> Mumbai Region 이관 • VPC 구성 부터 다시 (Security Group,Network ACL,Route Table …) • 통합 모니터링 및 알람 -> Cloud Watch, Zabbix + Grafana • 접근 제어 -> IAM Role, OpenVPN • 취약점 분석 -> AWS Inspector • 웹 방화벽 -> Cloud Front + WAF • 감사로그 -> CloudWatch Logs, VPC Flow Log, Cloud Trail, Cloud Config • 백업 -> S3
  26. 26. 3,000 만 - 인프라
  27. 27. 3,000 만 - 인프라
  28. 28. 3,000 만 - 인프라
  29. 29. 3,000 만 - 인프라 Data Infrastructure
  30. 30. 3,000 만 - 인프라 Retention (MAU, DAU) , …… RDS Monitoring Percona + Grafana
  31. 31. 5,000 만 Hybrid cloud • RBI 보안요구사항에 따라 중요 시스템 IDC 이관 이슈
  32. 32. 5,000 만 – 문제점 개선 • Hybrid Cloud 아키텍쳐 구성 중.. • AWS Cloud - Direct Connect - IDC 현재 진행 중....
  33. 33. 마무리 회고 1. 3천만 까지 큰 어려움 없이 인프라 확장 2. 서비스가 성장하기 시작하면 인프라 변경이 부담 (잘 모를 땐 설정 변경도 무섭다) 미리 인프라 아키텍처를 고민하자. 3. AWS 설명서(사용자 가이드) 부터 시작 4. AWS Cloud 에서 Wallet 서비스는 기술적 보안 요구사항은 대부분 만족 하지만 일부 규제로 인해 Hybrid 형태로 변경
  34. 34. @awskrug #AWSKRUG 해시태그로 소셜 미디어에 여러분의 행사 소감을 올려주세요. 감사합니다.

×