클라우드 컴퓨팅(AWS) 환경에서 애플리케이션을 운영할 때 '확장성'은 성공의 핵심 요소입니다. 트래픽이 급증할 때 원활하게 대응하고,
트래픽이 없을 땐 비용을 절감하는 능력은 중요하죠.
AWS는 이러한 확장성을 지원하기 위해 크게
두 가지 방식[수직적 확장, 수평적 확장]을 제공합니다.
이번 글에서는 Scale-Up/Down[수직적], Scale-Out/In[수평적]의 개념을 명확히 알아보고, 각각 어떤 상황에 무엇을 사용해야 하는지 살펴보겠습니다.
수직적 확장 = 단일 서버(인스턴스) 자체의 성능을 높이거나 낮추는 방식입니다.
Scale-Up은 애플리케이션의 구조를 변경하기 어렵거나, 단일 서버 내에서 높은 컴퓨팅 파워나 메모리가 필수적인 경우에 주로 사용합니다.
Ex) t3.medium에서 r6g.large로 Scale-Up
Scale-Down은 트래픽이 평소 수준으로 돌아왔을 때, 불필요하게 높은 사양의 인스턴스를 다시 낮은 사양으로 변경하여 비용을 최적화하는 경우에 적용됩니다.
수평적 확장 = 서버(인스턴스)의 개수를 늘리거나 줄여서 전체 시스템의 처리 용량을 조절하는 방식
Scale-Out은 예측 불가능한 트래픽 변동에 대응하고, 대규모 사용자 요청을 처리하며, 높은 수준의 서비스 안정성이 요구될 때 필수적입니다.
Ex) 웹 애플리케이션 서버: 쇼핑몰의 블랙 프라이데이 세일이나 콘서트 티켓 예매 사이트처럼 갑작스러운 트래핏 폭증이 예상될 때, AWS Auto Scaling Group을 사용해 Scale-Out을 자동화합니다. CPU 사용율이 70%를 넘으면 새 EC2 인스턴스를 자동으로 추가하고, 30% 아래로 떨어지면 기존 인스턴스를 제거(Scale-In)하도록 설정할 수 있습니다. 이 요청들은 ELB가 새로 추가된 인스턴스들에게 자동으로 분배해줍니다.
1. 수직적 확장(Vertical Scaling)
2. 수평적 확장(Horizontal Scaling)

현대적인 클라우드 네이티브 애플리케이션은 대부분 두 가지 방식을 혼합한다고 합니다. 예를 들어, 충분히 강력한 사양의 인스턴스 타입을 기본으로 선택하고, 이를 Auto Scaling Group으로 묶어 트래픽에 따라 여러 대를 운영하는 하이브리드 전략이 가장 이상적이라고 합니다.
결론적으로, AWS에서 제공하는 다양한 확장성 옵션을 잘 이해하고, 애플리케이션에 맞는 최적의 전략을 수립하는 것이 가장 안정적이고 비용 효율적인 서비스를 만드는 것이라고 생각합니다!
오늘도 하고픈걸 향해 떠나는 zooy였습니다.
감사합니다 :)
한 수 배워갑니다