1. 실습 환경 구성하기
VPC, Subnet, Route Table 등을 이전에 학습했던 내용을 바탕으로 직접 망 구성
Security Group 설정
•
외부망
◦
front, member
전체 대역 : 443 포트 오픈
관리망 : 22번 포트 오픈
◦
conference, analysis
외부망 : 443 포트 오픈
관리망 : 22번 포트 오픈
•
내부망
외부망 : 3306 포트 오픈
관리망 : 22번 포트 오픈
•
관리망
자신의 로컬 PC 공인 IP : 22번 포트 오픈
서버 구성하기
conference, member, analysis 등 모듈의 DB 구성 (RDS)
Launch Tempalte에서 사용할 IAM 역할 생성 (CloudWatchAgentServerPolicy, AmazonS3FullAccess 등)
각 모듈 Launch Template 작성
AutoScalingGroup 구성
DNS, TLS 구성
2. 서비스 운영하기
애플리케이션 로그 설정하기
관리자 권한이 필요한 API
회원 생성 (member)
이벤트 관련 API (conference)
컨퍼런스 참가 API (conference)
ALB Access Log 설정하기
RDS 로그 수집하기
Cloudwatch 대시보드 구성하기
Cloudwatch로 로그 수집하기
Cloudwatch로 메트릭 수집하기
알림 설정하기
Pinpoint 구성하기
3. 성능 테스트
Smoke, Load, Stress test
테스트 준비하기 (모든 시나리오)
테스트 대상 시스템 범위 정하기
목푯값 설정하기 (latency, throughput, 부하 유지기간, 부하테스트시 저장될 데이터 건수 및 크기 등)
테스트 환경 구성하기
테스트를 위한 시나리오 및 스크립트 작성하기
첫번째 시나리오
•
컨퍼런스 신청 플랫폼을 오픈했다. 사이트 접속자가 회원가입을 하는데 지연이 발생한다는 문의를 받았다.
•
VUser별 iteration time이 100ms 이하여야 한다.
Smoke Test 진행하기
Thread dump를 통해 지연이 발생하는 구간 확인하기
비동기처리하여 개선하기
두번째 시나리오
•
MBTI 이벤트를 시작했다. 회원이 이벤트를 진행하는데 지연이 발생한다는 문의를 받았다.
•
VUser별 iteration time이 100ms 이하여야 한다.
Smoke Test 진행하기
로컬 캐싱 적용하여 개선하기
세번째 시나리오
•
컨퍼런스 추첨제(lotteryBoundary = 0) 홍보로, 컨퍼런스 신청자가 갑자기 늘어나자 지연이 발생한다는 문의를 받았다.
•
VUser별 iteration time이 100ms 이하여야 한다.
목푯값(피크타임 rps) 세우기
Smoke, Load Test 진행하기
Front 서버 Scale out 진행하여 개선하기
Conference 서버 응답실패 증가시, 서킷 브레이커 구성 후 Scale out 진행하여 개선하기
네번째 시나리오
•
컨퍼런스 선착순(lotteryBoundary = xxx) 모집으로, 요청이 몰릴 것으로 예상된다. 사전에 성능테스트를 진행해보고 구조를 개선해보려 한다.
•
VUser별 iteration time이 100ms 이하여야 한다.
목푯값(피크타임 rps) 세우기
Smoke, Load, Stress Test 진행하기
EDA 구조로 변경 및 큐를 활용하여 개선하기 (뼈대 코드 작성 중.. 직접 해보셔도..? )
현재 한계점을 파악하고, xxx 서버 n대 증설시 rps가 몇까지 가능한지 확인하기
4. 조회 성능 개선하기
API 응답시간이 100ms 이하로 반환
설문 참여자별 강의리스트를 반환하세요.
인프라공방을 들은 30대 수강생들을 OS별로 집계하세요.