Architecture
System Architecture
IT Infrastructure
🏗️[Architecture] Scale-Out(수평 확장)이란 무엇일까?
📌 Intro
- ↘︎ Scale-Out(수평 확장)은 시스템의 성능과 처리 용량을 높이기 위해 여러 대의 서버나 리소스를 추가로 배치하여 작업을 분산 처리하는 방식입니다.
1️⃣ Scale-Out의 핵심 개념.
-
리소스 추가 : 기존 시스템을 업그레이드하는 대신, 새로운 서버나 노드(node)를 추가하여 확장.
-
수평 확장 : 작업 부하를 여러 개의 노드로 나누어 처리.
-
유연성 : 필요에 따라 손쉽게 노드를 추가하거나 제거할 수 있음.
-
고가용성(High Availabillity) : 하나의 노드에 장애가 발생하더라도 나머지 노드가 계속 서비스를 제공.
2️⃣ Scale-Out vs Scale-Up.
구분 |
Scale-Out(수평 확장) |
Scale-Up(수직 확장) |
확장 방식 |
서버/노드를 추가 |
기존 서버의 CPU, RAM 등을 업그레이드 |
유연성 |
매우 유연함 |
하드웨어 한계에 도달할 수 있음 |
비용 |
초기 비용 낮음, 운영비용 증가 가능 |
초기 비용 높음 |
장애 대응 |
한 노드가 실패해도 서비스 유지 가능 |
단일 실패 지점(Single Point of Failure) 가능성 |
예시 |
클라우드 서버에 인스턴스를 추가 |
기존 서버에 CPU/RAM 증설 |
3️⃣ Scale-Out의 예시.
- 1️⃣ 웹 서비스
- ↘︎ 사용자가 많아질 때 새로운 웹 서버를 추가하여 트래픽을 분산 처리.
- 2️⃣ 데이터베이스 샤딩(Database Sharding)
- ↘︎ 데이터를 여러 데이터베이스 노드로 나누어 저장하고 처리.
- 3️⃣ 클라우드 컴퓨팅
- ↘︎ AWS EC2, Azure VM, Google Cloud Computer Engine 등에서 인스턴스를 추가.
- 4️⃣ 콘텐츠 전송 네트워크 (CDN)
- 여러 서버에 콘텐츠를 분산 저장하여 사용자 요청을 처리
4️⃣ Scale-Out의 장점.
- 1️⃣ 확장성.
- 필요에 따라 서버나 리소스를 유연하게 추가 가능.
- 2️⃣ 고가용성(High Availability)
- 한 서버에 문제가 발생해도 다른 서버가 요청을 처리.
- 3️⃣ 비용 효율성
- 초기 비용이 낮고 필요한 만큼만 리소스를 추가 가능.
- 4️⃣ 유지보수 용이
5️⃣ Scale-Out의 단점.
- 1️⃣ 복잡성
- 여러 노드를 관리해야 하기 때문에 설정과 운영이 복잡해질 수 있음
- 2️⃣ 데이터 일관성 문제
- 여러 노드에서 데이터를 처리하다 보면 일관성을 유지하기 어려움
- 3️⃣ 네트워크 오버헤드
- 노드 간 데이터 통신으로 인해 네트워크 부하가 증가할 수 있음
6️⃣ Scale-Out이 적합한 경우.
- ↘︎ 트래픽이 지속적으로 증가하는 경우.
- ↘︎ 장애에 대비한 고가용성이 필요한 경우.
- ↘︎ 데이터 처리 작업이 병렬화될 수 있는 경우.
📌 예시:
- 대규모 웹 애플리케이션 (예: 쇼핑몰, 스트리밍 서비스)
- 클라우드 기반 서비스
🚀 결론
- ↘︎ Scale-Out은 주로 트래픽 증가, 고가용성 요구, 분산 작업 필요 시에 사용됩니다.
- ↘︎ 클라우드 환경에서는 Scale-Out이 주로 사용되는 확장 방식입니다.
- ↘︎ 단, 복잡한 분산 시스템 설계와 네트워크 관리가 필요합니다.
- 🔑 핵심 : “서버를 추가하여 부하를 나눈다.”