Auto Scaling이란?
Auto Scaling은 클라우드 환경에서 애플리케이션의 수요에 따라 자동으로 컴퓨팅 리소스를 확장 또는 축소하여 성능을 최적화하는 서비스입니다. 이를 통해 애플리케이션의 가용성을 높이고 리소스 사용 효율을 향상시킬 수 있습니다.
서버를 추가하는 것을 스케일 아웃, 제거하는 것을 스케일 인 이라고 합니다.
다이나믹 스케일 인/아웃
Auto Scaling은 애플리케이션의 부하 상황에 따라 자동으로 서버 인스턴스를 늘리거나 줄입니다. 높은 부하 시에는 인스턴스를 늘려서 처리량을 확장하고, 낮은 부하 시에는 인스턴스를 줄여 비용을 절감합니다.
스케일링 이란?
스케일링은 이란 인스턴스 혹은 컴퓨팅 파워를 늘린는 것을 말합니다.
스케일링 방법에는 2가지 요소가 있습니다. 스케일 업과 스케일 아웃이 존재합니다.
스케일 업
- 스케일 업은 시스템의 성능 또는 처리 능력을 향상시키기 위해 단일 서버 또는 가상 머신의 하드웨어 사양을 증가시키는 것을 의미합니다.
- 예를 들어, CPU, 메모리, 디스크 등의 리소스를 추가하거나 업그레이드하여 처리 능력을 향상시킬 수 있습니다. 이 방법은 단일 서버에서 작업 부하가 증가할 때 성능 확장이 필요한 경우에 유용합니다.
즉, 성능을 16배로 늘려야할 상황이 온다면, 16배 큰 인스턴스를 사용함으로서 성능을 올리는 것 입니다.
스케일 아웃
- 스케일 아웃(scale-out)은 시스템의 처리 능력을 향상시키기 위해 더 많은 서버를 추가하는 방식을 의미합니다. 이는 각 서버가 일부 부하를 처리하도록 분산시킴으로써 전체 시스템의 성능과 용량을 증가시킵니다.
- 예를 들어, 웹 사이트의 트래픽이 증가하여 한 대의 서버로는 모든 요청을 처리할 수 없게 되면, 추가적인 서버를 배치하여 트래픽을 분산시킬 수 있습니다. 이렇게 하면 각 서버는 더 적은 요청을 처리하므로 전체적인 시스템 성능이 향상됩니다.
- 클라우드의 장점을 제일 잘 활용한 방법 입니다.
- 이와는 반대대는 개념이 스케일 인 입니다.
- 스케일 인은 인스턴스의 양을 줄이는 것 입니다.
오토 스케일링
즉, 오토 스케일링은 스케일 아웃을 자동화 하기 위해 나온 서비스 입니다.
오토 스케일링 사용 방법
CPU 사용률에 맞춰 서버를 추가하거나 CPU를 추가할 수 있습니다. 시작 템플릿에 Amazon 머신 이미지(AMI) 정보와 서버가 추가될 조건을 설정해두면 조건에 맞춰 서버가 자동으로 추가됩니다.
- cpu 사용률 > 50% 이면 1대 추가
- cpu 사용률 > 75% 이면 다시 1대 추가
이런 규칙이 있다면 50% 초과시 서버가 1대가 추가되고 75% 이상 시 서버가 1대 더 추가됩니다.
반대로 삭제 규칙도 설정 가능합니다. 만약 cpu 사용률이 25% 이하라면 서버를 자동으로 삭제 시킵니다.
대상 추적 조정 정책
AWS Auto Scaling의 대상 추적 조정 정책은 특정 지표(예: CPU 사용률)가 목표 값에 가깝게 유지되도록 자동으로 스케일링을 조정하는 방법입니다. 이 정책은 지표의 실제 값이 목표 값과 다를 때마다 스케일링 조정을 시작합니다.
- 예를 들어, EC2 인스턴스에서 CPU 사용률을 50%로 유지하려는 경우 대상 추적 정책을 설정할 수 있습니다. 이
- 경우, CPU 사용률이 50%보다 높게 올라가면 AWS Auto Scaling은 자동으로 추가 인스턴스를 시작하여 부하를 분산시킵니다.
- 반대로, CPU 사용률이 50%보다 낮아지면 AWS Auto Scaling은 필요하지 않은 인스턴스를 종료하여 리소스를 절약합니다.
스케줄 스케일
서버 자원의 부하가 아닌 사용자 접속 수와 같은 기준을 이용한 자동 추가 및 삭제도 설정할 수 있습니다.
또한, 일정을 세워 인스턴스 수를 조절할 수 도 있습니다. 이 기능이 바로 스케줄 스케일 입니다.
예를 들어 주말이나 연휴 등 접속자 수가 늘어나거나 줄어드는 것을 예측해서 유용하게 사용할 수 있습니다.
장애 대비용
지정된 인스턴스 수를 유지하는 기능이 있어 예기치 못한 장애가 발생해 인스턴스가 멈췄다면 자동으로 인스턴스 수를 새로 만듭니다.
예측 스케일링
예측 스케일링은 과거 트래픽 패턴과 사용률 데이터를 분석하여 미래의 리소스 요구를 예상하고, 이에 따라 자동으로 리소스를 조정하는 기능입니다.
AWS Auto Scaling의 일부로 제공되는 이 기능은 시스템이 미래의 수요 변화에 더욱 잘 대응할 수 있도록 돕습니다.
- 예를 들어, 매일 오전 9시부터 오후 5시까지 트래픽이 증가하는 경우, 예측 스케일링은 이 패턴을 학습하고 해당 시간에 앞서 자동으로 필요한 만큼 인스턴스를 추가할 수 있습니다.
부팅 설정 서버관리
- 클라우드 컴퓨팅에서, 인스턴스를 시작할 때 사용되는 설정을 부팅 설정이라고 합니다.
- 이 설정은 운영 체제, 서버 소프트웨어, 애플리케이션 등을 포함하며, 인스턴스가 부팅될 때 자동으로 적용됩니다.
- 이러한 부팅 설정은 일반적으로 템플릿 또는 이미지 형태로 관리되며, 이를 사용하여 새로운 인스턴스를 빠르고 일관되게 시작할 수 있습니다. 예를 들어 AWS에서는 이러한 템플릿을 AMI(Amazon Machine Image)라고 부릅니다.
부팅 설정의 버전 관리란 이러한 템플릿 또는 이미지의 변경 사항을 추적하고 필요에 따라 이전 버전으로 복원하는 것을 의미합니다. 예를 들어, 새로운 소프트웨어 업데이트가 문제를 일으켰다면 버전 관리 시스템을 통해 문제가 없었던 이전 버전의 템플릿으로 롤백할 수 있습니다.
자동 스케일링 환경에서는 자주 새 인스턴스를 시작하므로, 부팅 설정의 버전 관리는 중요합니다. 이렇게 하면 모든 인스턴스가 동일한 상태에서 시작되도록 할 수 있으며, 필요에 따라 다양한 요구 사항에 맞게 부팅 설정을 수정하거나 최적화할 수 있습니다.
출처
'클라우드&인프라 > AWS 구조와 서비스' 카테고리의 다른 글
컨테이너의 구조와 특성 (1) | 2023.10.10 |
---|---|
AWS Lambda에 대해 (1) | 2023.10.03 |
EC2인스턴스와 요금 (1) | 2023.09.16 |
AWS 리전에 대한 이해 (0) | 2023.09.15 |
클라우드란 무엇일까? (0) | 2023.09.15 |