확장성
확장성은 시스템이 증가하는 트래픽이나 데이터 처리 요구사항을 감당할 수 있도록 성능이나 자원의 양을 증가시키는 능력을 말한다. 확장성은 크게 수직 확장과 수평 확장으로 나뉘며, AWS와 같은 클라우드 환경에서는 이러한 확장작업을 자동으로 설정할 수 있는 기능을 제공하여, 확장이 쉬워진다.
수직 확장
수직확장, 스케일 업(Scale-Up)은 인스턴스 자체의 사양을 높이는 것을 의미한다. 서버의 CPU, 메모리, 스토리지 등의 자원을 업그레이드 하여 더 많은 트래픽이나 데이터를 처리할 수 있도록 합니다. 예를 들어, 기존의 EC2 인스턴스를 더 높은 성능의 인스턴스로 교체하는 것이다.
수직 확장은 일반적으로 데이터베이스와 같은 분산하기 어려운 시스템에 주로 사용된다. 자원을 줄이는 작업을 스케일 다운(Scale-Down)이라고 부른다.
수직 확장의 장점
- 간단한 확장 - 서버의 사양만 업그레이드하면 되기 때문에 구현이 쉽다.
수직 확장의 단점
- 확장의 한계 - 한 인스턴스의 성능을 무한히 높일 수는 없다. 물리적인 하드웨어 한계
- 다운 타임 발생 가능성 - 확장 과정에서 일시적인 서비스 중단이 발생할 수 있다.
- 가용성 문제 - 단일 인스턴스에 의존하면, 가용성이 낮아질 수 있다. 하나의 인스턴스에 문제가 발생하면 전체 서비스가 중단될 수 있다.
수평 확장
수평확장, 스케일 아웃(Scale-Out)은 인스턴스의 수를 늘리는 방식이다. 여러 인스턴스를 동시에 실행하여 부하를 분산시키고, 성능을 향상한다. AWS에서는 이를 탄력성이라고 부르며, 대표적으로 EC2와 같은 서버에서 수평확장을 자주 사용한다.
인스턴스를 줄이는 작업은 스케일 인(Scale-In)이라고 한다.
수평 확장의 장점
- 고가용성 - 여러 인스턴스를 여러 가용 영역(AZ)에 분산하여 배치하여 가용성을 높일 수 있다. 한 인스턴스에 장애가 생겨도 서비스가 지속된다.
- 무한한 확장 - 더 많은 인스턴스를 추가하여 이론적으로 무한한 확장이 가능하다.
수평 확장의 단점
- 구현 복잡성 - 인스턴스를 분산시키고, 각 인스턴스 간의 데이터 동기화 및 부하 분산 설정이 필요해 복잡하다.
수직 확장 VS 수평 확장
- 수직 확장이 상대적으로 더 쉬운 방법이다. 하나의 인스턴스만 업그레이드하면 되기 때문에 복잡한 설정이 필요 없다.
- 수직 확장은 서버 사양의 한계로 인해 더 이상 확장할 수 없는 시점이 오지만, 수평확장은 추가 인스턴스를 통해 거의 무제한 확장이 가능하다.
- 수직 확장은 확장 중에 일시적인 서비스 중단이 발생할 수 있지만, 수평 확장은 인스턴스를 추가하거나 제거해도 가동 중인 인스턴스가 서비스를 계속 유지할 수 있다.
- 수직 확장은 하나의 인스턴스에 모든 트래픽이 집중되기 때문에, 해당 인스턴스가 문제가 발생하면 서비스 전체가 중단될 수 있다. 수평 확장은 여러 인스턴스를 분산시켜 가용성 문제를 해결할 수 있다.
Elastic Load Balancer(ELB)
수평 확장을 위해 필요한 로드 밸런서이다. 완전 관리형 로드 밸런서 서비스로, 트래픽이 여러 인스턴스로 분산되어 시스템의 안정성과 성능을 향상할 수 있다.
주요 기능
자동 확장 - 트래픽에 따라 EC2 인스턴스를 자동으로 추가하거나 제거하여 탄력적으로 대응한다.
보안 강화 - ELB는 SSL/TLS 암호화를 통해 안전한 트래픽을 지원한다.
장애 조치 - 인스턴스에 문제가 발생하면, ELB가 자동으로 문제 인스턴스를 제외하고 트래픽을 정상적으로 라우팅 한다.
종류
클래식 로드 밸런서 / Clasic Load Balancer
- 2009년 출시
- HTTP, HTTPS, TCP 등 여러 프로토콜 지원
- AWS에서 권장하지 않음
네트워크 로드 밸런서 / Network Load Balancer
- 2017년 출시
- TCP, UDP 등의 프로토콜을 지원
- 높은 처리량이 필요한 네트워크 애플리케이션이나 게임서버에 사용
애플리케이션 로드 밸런서 / Application Load Balancer
- 2016년 출시
- HTTP, HTTPS, Websocket 프로토콜 지원
- 웹 애플리케이션 라우팅에 주로 사용
게이트웨이 로드 밸런서 / Gateway Load Balancer
- 2020년 출시
- TCP, UDP, HTTP, HTTPS 등 여러 프로토콜 지원
- VPC 간의 라우팅 VPC연결등에 사용
'인프라 > AWS' 카테고리의 다른 글
[AWS] Application Load Balancer 수평 확장 (0) | 2024.09.25 |
---|---|
[AWS] Application Load Balancer (0) | 2024.09.25 |
[AWS] NAT gateway 비용절감을 위한 NAT instance (0) | 2024.09.24 |
[AWS] Bastion Host 생성 및 프라이빗 서브넷으로 서버 이전 (0) | 2024.09.23 |
[AWS] Bastion Host (0) | 2024.09.23 |