고가용성 2

대규모 트래픽에 대비한 아키텍처 확장 전략

이 글에서는 기본적인 Application 서비스 환경에서 대규모 서비스로의 전환을 시간 순으로 나열해보겠습니다. 현재  시스템 구성현재 서비스는 1개의 Nginx 웹 서버와 2개의 Tomcat 애플리케이션 서버로 구성되어 있습니다.기존요청의 흐름사용자는 로컬 또는 DNS 서버를 통해 IP를 받아와 HTTPS(443 포트)로 요청을 보냅니다.요청은 웹 서버를 거쳐 애플리케이션 서버로 전달되고, 필요한 경우 데이터베이스(DB)에서 데이터를 가져와 사용자에게 응답을 전송합니다.HTTP 요청과 응답 구조를 따릅니다.대규모 서비스 전환 단계이제 각 컴포넌트의 성능을 높이고 트래픽을 효과적으로 분산하기 위해 시스템을 확장하는 단계를 살펴보겠습니다. 1. Database 의 Scale Up현재 DB 성능이 충분하지..

Architecture 2024.11.02

DB 성능 저하 해결 전략: 스케일링, 리플리케이션, 샤딩 그리고 클러스터링

시스템이 성장함에 따라 단일 DB에서는 성능에 저하 또는 장애가 발생할 수 있습니다.이때 DB 구성 방식으로써 해결할 수 있는 방법을 순서대로 설명하겠습니다. * Scale Up첫 번째로 고려할 방법은 "스케일 업"입니다. 이는 기존의 컴퓨터 하드웨어(CPU, RAM, Disk 등)를 더 강력한 것으로 교체하는 방식으로, 기존의 애플리케이션 코드나 데이터베이스 구조를 크게 변경하지 않아도 됩니다.스케일 업은 초기 단계에 고려되는 이유는 기존 DB를 그대로 사용할 수 있으므로 하드웨어 리소스를 제외한 추가 비용이 들지 않기 때문입니다.그러나 Scale Up에는 한계가 있고, 시스템이 더 커진다면 다음 방법을 고려해야 합니다.* Scale Out다음으로 고려할 방법은 "스케일 아웃"입니다. 이는 데이터베이스..

Architecture 2023.08.04