4. 대규모 이벤트 경험
서비스 이벤트 기간 트래픽 규모
(Request Count)
뉴발란스 쇼핑몰
(회원수 50만명)
블랙 프라이데이 7일 최대 36만 5천 /분
멤버스 위크 7일 최대 13만 /분
럭키백 이벤트 5일 최대 4만 1천 /분
FOLDER 쇼핑몰
(회원수 21만명)
클라우드 전환오픈 - 최대 4천 /분
ELAND E:AT
(회원수 89만명)
Mobile 푸시 이벤트 상시 최대 8천 /분
6. 이벤트 대응 프로세스
이벤트 규모 파악
(기간, 일평균 예상 유입고객수, 유입 경로)
이벤트 랜딩 페이지 점검
ELB Pre-Warmimg 신청
부하(Stress) 테스트
(테스트 시나리오, Jmeter, 연관 시스템 파악)
성능지연 원인 분석 / 수정
이벤트 당일 모니터링 / 대응
이벤트 종료 후 자원정리
7. 이벤트를 위한 주요 AWS 서비스
Auto Scaling
트래픽 증가 시
서버 자동확장
Cloud Front
엣지 로케이션을 통한
정적 컨텐츠 배포
트래픽에 빠르게 대응
서버 확장에 따른 트래픽 자동분배
Pre-Warming을 통한 ELB 증설
Elastic
Load Balancer
Amazon
DynamoDB
서버 확장/축소에 관계없이
사용자 Session 유지
(Session 클러스터링)
스팟 인스턴스
저렴한 가격으로
테스트 환경구성
CloudWatch
실시간 모니터링
/ 알람
Slack
+
8. Cloud Front (CDN) 사례
AWS Cloud Front 로 서비스 되었던 SBS 2017 대선 개표방송
*출처: 윤석찬님 Facebook
9. ELB Pre-Warming
• 초기 생성 시 기본 2대
• 기본 초당 200~300 Request 처리 가능
• 프리워밍 신청을 통해 확장 가능 (Scale Out)
• 영업일 기준 최소 3일전 AWS Case Open으로 신청
<평상시> <Pre-Warming 후>
10. 랜딩 페이지 구조파악
웹브라우저 개발자 도구(F12) 활용
① 페이지 크기
- Big Size 이미지 → 리사이징
- 메인 페이지 7MB 이하 권고
② CloudFront 캐쉬 여부 확인
- 응답헤더 ‘Hit from cloudfront’
- ELB Outbound 가격 보다 저렴
- 자주 변하는 이미지 고려
(Invalidations)
③ DB 연결로직 점검
- Index 최적화
- UI 최적화
11. 어플리케이션 최적화 - ①도구
도구
- Apache Jmeter (대용량 웹 서비스 오픈 소스 성능 테스트 도구)
특징
- TCP, HTTP(S), FTP, JDBC, LDAP, SMTP, SOAP/XML RPC 등
범용 프로토콜 대부분을 지원
- 통신 프로토콜 단계에서만 동작
(통신 규약에 맞도록 Client - Server 간 메시지만 송수신)
기타
- LoadRunner 상용 솔루션
12. 어플리케이션 최적화 - ②부하 테스트 환경구성
Load Maker
…
Jmeter
Controller
부하 발생기 테스트 환경
Web Server
13. 어플리케이션 최적화 - ③측정
<메인 랜딩 페이지 - TPS/응답시간> <상품상세 페이지 - TPS/응답시간>
18. 마무리
Lessons & Learned
- 대규모 이벤트를 위해서는 철저한 사전 준비가 있어야 클라우드가 빛을 발한다.
- 오토 스케일아웃 자동화 기능이 있지만 중요한 이벤트 대응은 사전에 자원 증설 후 대비
- 무조건 클라우드만 믿으면 안된다! 부하 테스트를 통한 어플리케이션 튜닝 최적화는 필수
- 스팟 인스턴스를 활용하면 저렴한 비용으로 대규모 테스트 환경을 구축할 수 있다.
- 이벤트 히스토리와 결과를 정리해 놓자. 향후 이벤트 규모산정에 도움. 이벤트 성공과 직결
19. 본 강연이 끝난 후…
www.nbkorea.com – 6/26(월)까지 70% 멤버스 위크 이벤트!
• JMeter
http://jmeter.apache.org/
http://codeigniter-kr.org/bbs/view/lecture?idx=7082