컨퍼런스 신청 플랫폼 미션 요구사항

깃헙 저장소를 활용하여 미션을 진행할 수 있어요.

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 이하로 반환
Coding as a Hobby 와 같은 결과를 반환하세요.
설문 참여자별 강의리스트를 반환하세요.
프로그래밍이 취미인 학생 혹은 주니어(0-2년)들이 들은 수업 이름을 반환하고 survey.id 기준으로 정렬하세요.
인프라공방을 들은 30대 수강생들을 OS별로 집계하세요.