오토 스케일링(Auto Scaling)은 클라우드 컴퓨팅 환경에서 시스템의 부하나 트래픽의 변화에 따라 자동으로 리소스의 수를 조정하는 기능이다. 애플리케이션이나 서비스가 고가용성과 성능을 유지하면서 효율적인 비용으로 운영될 수 있도록 돕는다. (클라우드의 유연성을 극대화 하는 핵심 기술이라 할 수 있다.)
ㅇ 스케일링(Scaling)
스케일링이란 컴퓨팅 시스템에서 성능과 처리능력을 향상시키거나 감소시키는 과정을 말한다.
클라우드 환경에서는 VM 인스턴스 또는 VM 인스턴스의 컴퓨팅 파워를 늘리는 것을 말한다.
스케일링의 종류
- 스케일 업(Scale Up)
서버에 더 많은 리소스(CPU, 메모리, 스토리지)를 추가하여 성능을 향상 시키는 방법
(쉽게 컴퓨터 사양을 업그레이드 한다고 생각하면 된다.)
클라우드 환경에서는 VM 인스턴스의 컴퓨팅 파워를 늘리는 것을 말한다.
장점: 설정 및 관리가 비교적 간단하며, 단일 서버를 사용하여 데이터 일관성을 유지하기 쉽다.
단점: 모든 작업이 단일 서버에 집중되기 때문에 장애가 발생할 경우 전체 시스템에 영향을 줄 수 있다.
하드웨어의 물리적인 한계로 무한히 확장할 수 없고, 업그레이드시 다운 타임이 발생할 수 있다.
성능과 비용이 비례하지 않는다. - 스케일 아웃(Scale Out)
새로운 서버를 추가하여 부하를 분산하고 시스템의 전체 처리 능력을 높이는 방법이다. 부하를 여러 인스턴스에 분산시켜서 처리한다. (컴퓨터를 여러 대를 사용한다고 생각하면 된다.)
클라우드 환경에서는 VM 인스턴스의 개수를 늘려 부하를 처리하는 방식을 말한다.
장점: 시스템의 확장성이 높아 여러 노드를 추가하여 무한히 확장할 수 있다. 각 인스턴스가 독립적으로 작동하기 때문에 하나의 인스턴스에 장애가 발생해도 전체 시스템에 큰 영향을 주지 않는다.
성능과 비용이 비례한다.
단점: 여러 서버를 관리해야 하므로 복잡성이 증가하고, 로드 밸런서와 같은 추가적인 인프라를 구성해야 한다. 각 노드 간의 동기화와 통신이 필요해 복잡성을 증가시킨다.
스케일 인(Scale In)
스케일 아웃의 반대 개념이다. 부하가 적어짐에 따라 이에 대응하기 위해 스케일 아웃으로 늘린 인스턴스의 개수를 줄인다.
* 스케일 아웃에서 오토스케일링은 클라우드 환경에 있는 애플리케이션을 모니터링하여 VM 인스턴스의 개수를 최적화한다. 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지할 수 있게 해준다.
ㅇ로드 밸런서
로드 밸런서는 스케일 아웃에서 중요한 역할을 담당한다. 다수의 서버에 들어오는 트래픽을 고르게 분배하여 각 서버의 부하를 균형 있게 유지하는 역할을 담당해 과부하가 걸리는 것을 방지하고 시스템 전체의 성능을 최적화한다.
그 외에도
세션 정보를 유지해야할 때 세션 지속성을 제공하여 같은 클라이언트의 요청이 동일한 서버로 전달하거나,
SSL/TLS 암호화 처리를 오프로딩하여 서버의 부담을 줄이고, DDos 공격으로부터 시스템을 보호하는 역할을 한다.
(클라이언트와 서버 간의 데이터 전송 시 암호화 및 복호화 작업을 로드 밸런서가 대신 처리한다는 뜻이다.)
'CS' 카테고리의 다른 글
[Design Pattern]팩토리 메서드 패턴 (0) | 2024.11.26 |
---|---|
[Design Pattern] 템플릿 메서드 패턴 (0) | 2024.11.26 |
[Design Pattern] 싱글톤(Singleton) 패턴 (0) | 2024.11.26 |
CS 알고리즘 시간복잡도 (0) | 2024.10.07 |
CS Cloud VS On-Premise (3) | 2024.09.10 |