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

AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017

  • 1.
    © 2017, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. 장준엽, AWSKRUG AWS기반 대규모 트래픽 견디기
  • 2.
    본 강연에서 다룰내용 목차 - 대규모 이벤트 경험 - 이벤트 대응 프로세스 - 이벤트를 위한 주요 AWS 서비스들 - 사전 준비 - 어플리케이션 최적화 - 주요 모니터링 지표 - 이벤트 대응 구성도 - Lessons & Learned
  • 3.
    운영중인 AWS기반 클라우드서비스 뉴발란스 쇼핑몰 폴더 쇼핑몰 기타 브랜드 사이트 그룹 내부 시스템
  • 4.
    대규모 이벤트 경험 서비스이벤트 기간 트래픽 규모 (Request Count) 뉴발란스 쇼핑몰 (회원수 50만명) 블랙 프라이데이 7일 최대 36만 5천 /분 멤버스 위크 7일 최대 13만 /분 럭키백 이벤트 5일 최대 4만 1천 /분 FOLDER 쇼핑몰 (회원수 21만명) 클라우드 전환오픈 - 최대 4천 /분 ELAND E:AT (회원수 89만명) Mobile 푸시 이벤트 상시 최대 8천 /분
  • 5.
    트래픽 패턴 <2016년 11월블랙 프라이데이> <2017년 6월 멤버스 위크>
  • 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/응답시간>
  • 14.
    어플리케이션 최적화 -④모니터링 <부하 발생 시 Web서버, DB서버 현황>
  • 15.
    어플리케이션 최적화 -⑤성능 분석 APM 성능분석 솔루션 - Riverbed
  • 16.
    Cloud Watch 주요모니터링 지표 - ELB Request Count - ELB Healthy host count - ELB Latency (타임아웃) - Web(WAS) / DB CPU 사용율 - Credit balance / Usage (t2 계열) - HTTP Code 5XX, 4XX - Surge 큐 Length - DynamoDB R/W Provisioned/Consumed  각 지표들의 임계치를 CloudWatch 알람 설정 후 Slack과 연동하여 실시간 모니터링
  • 17.
  • 18.
    마무리 Lessons & Learned -대규모 이벤트를 위해서는 철저한 사전 준비가 있어야 클라우드가 빛을 발한다. - 오토 스케일아웃 자동화 기능이 있지만 중요한 이벤트 대응은 사전에 자원 증설 후 대비 - 무조건 클라우드만 믿으면 안된다! 부하 테스트를 통한 어플리케이션 튜닝 최적화는 필수 - 스팟 인스턴스를 활용하면 저렴한 비용으로 대규모 테스트 환경을 구축할 수 있다. - 이벤트 히스토리와 결과를 정리해 놓자. 향후 이벤트 규모산정에 도움. 이벤트 성공과 직결
  • 19.
    본 강연이 끝난후… www.nbkorea.com – 6/26(월)까지 70% 멤버스 위크 이벤트! • JMeter http://jmeter.apache.org/ http://codeigniter-kr.org/bbs/view/lecture?idx=7082
  • 20.
    @awskrug #AWSKRUG 해시태그로 소셜미디어에 여러분의 행사 소감을 올려주세요. 감사합니다!

Editor's Notes