[고가용성 및 스케일링성] Auto Scaling Group (ASG)

IMKUNYOUNG·2024년 8월 12일
0

AWS-SAA

목록 보기
37/91

클라우드 환경에서 웹사이트나 애플리케이션을 운영할 때, 사용자가 증가함에 따라 서버의 부하가 커질 수 있습니다. 이러한 상황을 대비해 우리는 AWS의 EC2 인스턴스를 사용해 서버를 빠르게 생성하거나 종료할 수 있습니다. 그런데 이러한 과정을 자동화하고 싶다면, AWS Auto Scaling Group(ASG)을 활용할 수 있습니다. 이번 글에선 ASG가 무엇이며, 어떻게 사용하는지에 대해 알아보겠습니다.

ASG란 무엇인가

ASG의 핵심 목표는 스케일 아웃(Scale Out)과 스케일 인(Scale In)입니다. 사용자의 수가 늘어나 부하가 커지면, 자동으로 EC2 인스턴스를 추가하여 서버 용량을 확장하는 것이 스케일 아웃입니다. 반대로, 부하가 줄어들면 EC2 인스턴스를 제거하여 비용을 절감하는 것이 스케일 인입니다. ASG는 이 과정을 자동으로 관리해주며, EC2 인스턴스의 최소 및 최대 개수를 보장하기 위한 다양한 매개변수를 설정할 수 있습니다.

ASG의 기능

ASG는 단순히 서버의 수를 조정하는 것 외에도 여러 유용한 기능을 제공합니다:

  1. 로드 밸런서와의 연동: ASG는 로드 밸런서와 연동되어 모든 EC2 인스턴스를 로드 밸런서에 연결할 수 있습니다. 이를 통해 사용자는 로드 밸런싱된 서버 환경에 접근하게 되며, 트래픽이 여러 서버에 균등하게 분배됩니다.
  1. 비정상 인스턴스의 자동 교체: ASG에 속한 EC2 인스턴스 중 하나가 비정상 상태에 빠지면, ASG는 자동으로 해당 인스턴스를 종료하고 새로운 인스턴스를 생성하여 대체합니다. 이는 서버 운영의 안정성을 크게 향상시킵니다.

  2. 비용 효율성: ASG 자체는 무료로 제공되며, 실제로 사용된 EC2 인스턴스에 대한 비용만 지불하면 됩니다. 따라서 서버 운영 비용을 효과적으로 관리할 수 있습니다.

ASG의 설정

ASG를 설정할 때는 몇 가지 중요한 매개변수를 정의해야 합니다:

  1. 최소 용량: ASG 내에서 유지할 EC2 인스턴스의 최소 개수를 설정합니다. 예를 들어, 2개로 설정하면 ASG는 항상 최소 2개의 인스턴스를 유지합니다.

  2. 희망 용량: 운영자가 원하는 EC2 인스턴스의 개수를 설정합니다. 예를 들어, 4개로 설정하면 ASG는 가능한 한 4개의 인스턴스를 유지하려고 합니다.

  3. 최대 용량: ASG가 확장할 수 있는 최대 인스턴스 수를 설정합니다. 예를 들어, 7개로 설정하면, 부하가 급증하더라도 ASG는 최대 7개까지 인스턴스를 확장할 수 있습니다.

CloudWatch와의 통합

ASG는 CloudWatch 경보(Alarms)와 연동하여 더욱 효율적으로 작동합니다. CloudWatch는 서버의 상태를 모니터링하고, 설정한 지표(예: 평균 CPU 사용률)에 따라 경보를 발생시킵니다. 이 경보에 따라 ASG는 자동으로 스케일 아웃 또는 스케일 인을 실행합니다. 예를 들어, 평균 CPU 사용률이 높아지면 CloudWatch가 경보를 울리고, ASG는 이를 감지해 EC2 인스턴스를 추가하는 방식입니다.

ASG와 시작 템플릿

ASG를 생성할 때는 시작 템플릿(Launch Template)을 사용해야 합니다. 이 템플릿에는 AMI, 인스턴스 유형, 보안 그룹, SSH 키 페어, 네트워크 정보 등 EC2 인스턴스를 시작하는 데 필요한 모든 정보가 포함됩니다. 이 템플릿을 통해 ASG 내에서 EC2 인스턴스가 어떻게 생성되고 관리될지를 정의할 수 있습니다.

마치며

AWS Auto Scaling Group은 클라우드에서의 서버 운영을 자동화하고, 비용 효율성을 높이며, 시스템의 안정성을 보장하는 강력한 도구입니다. ASG를 활용하면 변화하는 트래픽에 유연하게 대응할 수 있으며, 로드 밸런서와의 연동을 통해 더욱 안정적인 서비스를 제공할 수 있습니다. 이 모든 과정이 자동으로 이루어지기 때문에, 운영자는 더 중요한 업무에 집중할 수 있습니다.

0개의 댓글