Aurora PostgreSQL 전환기
당근마켓 변규현
Introduction
- 당근마켓 Software engineer
- AWSKRUG Serverless Group Organizer
- CircleCI User Group Organizer
- Node.js, AWS, DevOps
- Golang, Typescript, Javascript, French
- https://novemberde.github.io
- https://github.com/novemberde
PostgreSQL 좋나요?
잘 몰라요
이전에는 MySQL만 사용했어요
당근마켓은 PostgreSQL이 있네요
입사하고 나서 뭘할지 살펴봤어요
RDS Master의 CPU가 높네요
여기서 무엇을 할 수 있을까요?
튜닝을 하면 되겠구나!
Slow Query / Read replica
근데 어떤걸로 Slow Query를 찾지?
PG Hero!!
Slow Query와
요청이 많은 Query를 찾았어요
근데 Query를 튜닝하려 했더니
Rails ORM으로 구현되어 있네요...
Rails를 공부해야하나...
그럼 조회 쿼리는 Read Replica로
빼보자!
결과가 잘 나왔네요!
참고! 만약 Read Replica가
더 생기면 어떻게 로드밸런싱 하지?
(5개까지 가능)
https://aws.amazon.com/ko/premiumsupport/knowledge-center/requests-rds-read-replicas/
어느정도 Read replica로 뺏는데,
다른 문제가 보이네요!
DB의 Storage가 곧 모자라요!
어떻게 Storage를 올리면 어떻게 될까요?
줄일 수가 없어요!
https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-db-storage-size/
IOPS를 증가시키면 어떻게 되지?
Provisioning해놓고 과금이 되네...
고민이 시작됩니다...
https://mblogthumb-phinf.pstatic.net/20150415_159/hakdiary_1429085269679e4c1D_JPEG/%BA%B4%B8%C0%C2%A9_%2830%29.jpg?type=w2
Aurora PostgreSQL은 어떨까?
Storage 64TB
IOPS는 CPU나 Memory가 부족할 때까지
그럼 올려볼까?
1. 백업 AMI를 통한 연습 환경 구성
2. 네트워크 설정
3. 웹서버 DB 엔드포인트 수정
4. 트래픽 차단
5. Aurora Read를 Master로 승격
Alpha Stage 테스트 완료
x 5 회 반복 연습
서버 점검 공지 (새벽 5시)
Migration Start!
Aurora를 Master로 승격!
웹서버 엔드포인트 변경
서비스 복구 후 모니터링 시작
긴장되는 시간이에요
선택의 시간
1안: 마이그레이션 중단 후 기존 DB로
복구
2안: Aurora PostgreSQL 문제 해결
개발자는 포기하지 않아요
PG Hero
RDS Performance Insight
https://aws.amazon.com/ko/rds/performance-insights/
Hanging 되는 Query 발견!
이슈 Query를 통해 API 탐색
해당 서비스가 Aurora Master 승격시점에
중단되지 않았음을 발견
의심되는 테이블 모두 Reindexing
Aurora Master 재시작!
두둔!
복구가 완료되었어요!
Aurora PostgreSQL 운영 후기
Aurora Custom Endpoint 좋아요
Read replica for production,
data analysis, and any POC service
Storage / IOPS 걱정이 없어요
Free storage space가 깨끗하죠?
비용?
기존과 다를 바 없어요(101~5%)
비용 많이 쓰면 티도 안나요
Aurora PostgreSQL 좋나요?
Aurora PostgreSQL의
기본 인스턴스가 비싸니
프로덕션에서만 사용을 권장해요!
마지막으로
감사합니다!
Email: novemberde1@gmail.com
Blog: https://novemberde.github.io
Github:https://github.com/novemberde

RDS에서 Aurora PostgreSQL 마이그레이션하기