Search

Scenario

User App 실행되었는지 확인하기

Minimal

1.
aws configure
2.
terraform apply
3.
Image Build & Push
4.
Data Dump
5.
Python Scaler
6.
Dashboard Configure & Alarm Modify

1시간동안 해내야 하는 일 (이 시간에서 메달이 결정 된다.)

프로비저닝
aws configure
Image ECR Build & Push (CloudShell)
RDS Create Table
CloudWatch Dashboard Configure
Modify Alarm
Database Data Dump 값 넣기
RDS
DynamoDB
API 엔드포인트 상태 확인하기
클라이언트에서 처리가 잘되는지 확인하는 스크립트로 체크하기
Health Check 잘되는지 확인하기
엔드포인트 제출하기
엔드포인트 제출 전 WAF가 안 달려있는 상태로 제출 해야 한다.
후에 트래픽 분석 후 비정상 트래픽이 들어오기 전 설정 해야 한다.
만약 응답값에 requestid, uuid, checksum이 포함되어있다면 캐싱을 하는것이 의미가 없기 때문에 CloudFront가 아닌 ALB 엔드포인트를 제출해야한다.
로그 형식 확인 하기
커넥션 풀 얼마나 쓰는지 확인하기
커넥션 풀이 관리가 안되는 어플리케이션이라면 무조건 RDS Proxy를 사용해야한다.
메트릭 확인하기
이 1시간동안 어플리케이션을 모두 분석 완료 해야 한다. (제일중요)
이상한 헤더값을 요청에 포함 시켜 보낸 뒤 어떻게 동작하는지 확인하기
이상한 쿼리스트링 요청 보낸 뒤 어떻게 동작하는지 확인하기
형식에 맞지 않는 uuid 보낸 뒤 어떻게 동작하는지 확인하기
이상한 Body값 요청 보낸 뒤 어떻게 동작하는지 확인하기
username에 admin 넣어서 보내는 요청
status_message에 이상한 문자 넣어서 보내는 요청
없는 Method로 요청 보낸 뒤 어떻게 동작하는지 확인하기

트래픽 분석 및 대응

트래픽 들어오고 안들어오는거 패턴 확인 되면 수동으로 줄이는 방식을 해야한다. (비용 점수)
500 에러가 로그에 찍혔다면 그 로그에 requestid를 WAF Log에서 검색해 찾아본다.
비용도 신경을 써야하지만 트래픽을 처리하지 못한다면 비용도 아무 의미가 없기에 조금 더 트래픽에 신경을 써야 한다.
요청 처리가 되는 동안 커넥션을 얼마나 쓰는지 확인해야한다.
Product 앱 요청에서 id가 아닌 다른 값으로 GET 요청을 보낼 시 Index 구성이 필요 할 수 있다.
쿼리가 어떻게 들어오는지 확인해야한다.
Path는 어떻게 들어오는지
Method는 어떻게 들어오는지
스파이크 트래픽 시 수동으로 예상해서 미리 스케일 설정을 해야한다.
30초마다 트래픽 처리량과 인스턴스 수 채점을 진행한다.
브라우저에 배치할 사이트
AWS CloudWatch Dashboard
AWS CloudWatch Livetail
AWS EC2 Auto Scaling
AWS ECS
AWS CloudShell
Monitoring Tool
로컬에서 배치할 Tool
DynamoDB Create Data Python
DynamoDB BatchItem Python
트래픽 패턴 분석