스케일링 작업이란?
시스템의 처리 능력을 확장하거나 축소하는 작업.
사용자 트래픽 변화에 대응하기 위해 리소스를 조정하여 애플리케이션 성능과 가용성을 유지
스케일링의 종류
1. 수직 스케일링 (Vertical Scaling)
• 기존의 서버 성능을 업그레이드하거나 다운그레이드하는 방식.
• CPU, 메모리, 디스크 용량 등을 확장 또는 축소.
• 예: 서버의 RAM을 16GB에서 32GB로 업그레이드.
장점:
• 구조가 단순하고 설정이 쉬움.
• 소프트웨어 변경 없이 구현 가능.
단점:
• 하드웨어의 물리적 한계에 도달하면 더 이상 확장 불가능.
• 한 서버에 문제가 발생하면 전체 서비스에 영향을 미침.
2. 수평 스케일링 (Horizontal Scaling)
• 동일한 서버를 추가하거나 제거하여 시스템을 확장 또는 축소.
• 여러 서버로 작업을 분산(로드밸런서 필요).
• 예: 트래픽이 증가할 때 동일한 서버를 추가하여 부하를 분산.
장점:
• 확장이 무한에 가깝게 가능.
• 장애 허용(Fault Tolerance): 한 서버가 문제가 발생해도 나머지 서버로 서비스 유지 가능.
단점:
• 설정이 복잡하며, 데이터 동기화와 로드밸런싱 구성 필요.
• 네트워크와 애플리케이션의 분산 처리 설계가 필요.
스케일링 작업이 필요한 경우
1. 트래픽 증가:
• 사용자가 증가하거나 이벤트(프로모션, 할인 등)로 인해 웹사이트/앱 방문자가 급증하는 경우.
• 예: 쇼핑몰에서 블랙프라이데이 세일 기간.
2. 애플리케이션 성능 저하:
• 요청 처리 시간이 늘어나거나 서버 응답이 느려지는 경우.
• 서버가 과부하 상태에 도달했을 때.
3. 가용성 확보:
• 특정 서버에 장애가 발생했을 때 나머지 서버로 트래픽을 분산해 서비스 중단을 방지.
• 예: 하나의 데이터센터가 다운되었을 때 다른 데이터센터로 전환.
4. 비용 효율화:
• 비정상적으로 낮은 트래픽 시간대(야간 등)에 리소스를 축소하여 비용 절감.
5. 글로벌 사용자 확장:
• 여러 지역에서 사용자에게 더 빠른 응답을 제공하기 위해 각 지역에 서버를 배치.
스케일링 작업의 목표
• 성능 유지: 트래픽 증가에도 빠른 응답 시간과 원활한 서비스 제공.
• 가용성 확보: 장애 상황에서도 서비스 중단 없이 동작.
• 비용 최적화: 필요한 리소스만 사용하여 비용을 효율적으로 관리.
스케일링과 클라우드 서비스
클라우드 플랫폼(AWS, Azure, GCP 등)은 스케일링 작업을 쉽게 수행할 수 있도록 다양한 기능을 제공한다
• Auto Scaling: 트래픽 변화에 따라 자동으로 서버를 확장/축소.
• Load Balancing: 서버 간 트래픽을 자동 분산.
스케일링은 시스템의 안정성과 성능을 유지하는 데 필수적인 작업이다.
'컴퓨터시스템' 카테고리의 다른 글
로드밸런스 헬스체크 (0) | 2024.10.01 |
---|---|
DNS 와 도메인에 대하여 (0) | 2024.09.30 |
.env 파일이란? + 생성하기 (0) | 2023.12.15 |
command line 명령어 (0) | 2023.09.12 |
Runtime vs. Compile time 런타임과 컴파일타임 (0) | 2023.02.06 |