Notice
Recent Posts
Recent Comments
Link
devops
시스템을 고성능으로 만드는 방법 - DB 본문
반응형
모든 프로세스에 DB를 거치기 때문에 시스템을 고성능으로 유지하기 위해선 DB의 구조와 매커니즘 또한 아주 중요한 요소 중 하나다.
- 문제상황 : 너무 많은 읽기 연산
- 해결책 : 데이터베이스 다중화
Primary를 복제해서 Secondary와 Teriary로 분할한다.
다중화(레플리케이션)의 이점
- 더 나은 성능(읽기 성능은 부 DB의 갯수와 비례한다)과 CQRS(commit command 책임 분리)
- 안정성
- 가용성
주 DB에 문제가 생기면 부 DB가 주 DB로 승격된다.
- 문제상황 : 너무 많은 데이터(~1TB)
- 해결책 : 파티셔닝(샤딩)
주 특징은 샤딩된, 나눠진 파티션은 고유한 data만 있다. 그래서 해당 DB를 가지고 하나의 노드를 만들어서 부하분산이 가능해진다.
- 문제 상황 : 낮은 검색 성능
- 해결책 : 인덱싱
인덱스가 없는 데이터베이스는 없다. 보통 행의 고유한 키를 인덱스 도구로 활용한다. 어떤 기준으로 인덱싱을 할것인가가 검색 성능을 좌우한다.
- 문제 상황 : 동일한 데이터가 너무 자주 조회됨
- 해결책 : 캐싱을 사용
redis(메모리만 사용)라는 서버가 유명함.ElastiCache가 있다.
- 문제 상황 : 배치 작업 진행에 따른 성능 저하
- 해결책 : 근 실시간으로 데이터 웨어하우스로 전달, 변경 데이터 캡처
시스템을 고성능으로 만드는 방법 - 일반적 사례
Throughput 제한 장치 -> 고가용성을 보장할 수 없는 경우
반응형
'DevOps > AWS' 카테고리의 다른 글
Kinesis Data Stream의 API Gateway 프록시 생성하기 (0) | 2022.08.11 |
---|---|
ImportError: cannot import name 'docevents' from 'botocore.docs.bcdoc' 에러 해결 (0) | 2022.08.03 |
AWS EC2, VSCODE로 접속하기 (0) | 2022.07.04 |
AWS 네트워크 구성 VPC, 서브넷 기본 및 연결 옵션 간단 정리 (0) | 2022.07.01 |
IaC(Infrastructure as Code) (0) | 2022.06.24 |
Comments