본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] ASG 축소 보호 정책(1) (Protected from Scale-in)

by BTC_남요정 2023. 11. 4.

베하~ 안녕하세요 여러분

BTC_블랙아웃입니다!

 

오늘은 정말 정말 많이 사용하는 AutoScaling에 관련된 정책을 알려드리려고 합니다!

AutoScaling은 서버의 확장성과 안정성 면에서 클라우드의 장점을 크게 활용할 수 있는 기능인데요.

그렇기 때문에 많은 분들이 서버 배포나 이벤트를 진행할 때 AutoScaling을 적극적으로 활용하고 있습니다.

 

하지만 AutoScaling을 처음 사용했을 때 난감한 상황들이 있을 수 있는데요,

저 또한, 늘어난 서버들이 줄어드는 과정(scale-in)에서 랜덤으로 서버가 종료되어 당황했던 기억이 있습니다.

 

그래서 오늘은 AutoScaling이란 무엇인지, 어떤 과정으로 진행되는지 짧게 알아보고 Scale-in 되는 과정에서

특정 서버를 유지할 수 있는 “축소 정책(Protected from Scale-in)”에 대해 알아보겠습니다.

 


1. AutoScaling

AWS Auto Scaling은 Amazon Web Services (AWS)에서 제공하는 서비스로, 애플리케이션 또는 워크로드의 수요에 따라 자동으로 컴퓨팅 리소스를 확장하거나 축소하는 데 사용되는 서비스입니다.

이를 통해 사용자는 애플리케이션의 성능을 최적화하고 리소스 사용량을 효율적으로 관리할 수 있습니다.

 

AWS AutoScaling은 여러 가용 영역, 인스턴스 유형 및 인스턴스 크기에 대한 자동 조절을 지원하므로 가용성을 향상시키고 비용을 절감하는 데 도움이 되므로, 실무에서도 많이 쓰이는 서비스입니다.

 

1-1. AutoScaling 특징

  1. 자동 확장 및 축소
    :
    AWS Auto Scaling은 지정된 메트릭스나 경보에 따라 인스턴스 수를 자동으로 조절할 수 있습니다. 예를 들어, CPU 사용률이 특정 임계값을 넘으면 인스턴스 수를 늘리고, 사용률이 낮아지면 줄일 수 있습니다.

  2. 가용성 향상
    : Auto Scaling은 여러 가용 영역에 인스턴스를 분산시키는 데 도움을 주어 가용성을 향상시킵니다. 하나의 가용 영역에서 장애가 발생해도 다른 가용 영역에서 작동 중인 인스턴스로 서비스를 유지할 수 있습니다.

  3. 비용 절감
    : Auto Scaling은 필요에 따라 리소스를 늘리고 줄이므로 불필요한 리소스 사용을 방지하고 비용을 절감할 수 있습니다. 피크 시간에만 추가 인스턴스를 생성하고 비피크 시간에는 인스턴스 수를 줄이는 것이 가능합니다.

  4. 동적 확장 정책
    : Auto Scaling은 다양한 확장 정책을 사용하여 자동 확장 및 축소 동작을 조정할 수 있습니다. 예를 들어, 평균 CPU 사용률, 네트워크 트래픽 또는 사용자 지정 메트릭스를 기반으로 확장 및 축소를 구성할 수 있습니다.
  5. 안정성 및 신뢰성
    : Auto Scaling은 꾸준한 인스턴스 모니터링과 교체를 통해 시스템의 안정성과 신뢰성을 향상시킵니다.

 

1-2. 사용 사례

  1. 트래픽 변동성 관리
    : 웹 애플리케이션 또는 웹 서비스의 트래픽이 일정하지 않을 때 Auto Scaling을 사용하여 피크 시간에는 인스턴스를 자동으로 늘리고 , 그 외의 시간에는 자동으로 인스턴스 수를 줄입니다.
    이를 통해 불안정한 트래픽 환경에서도 안정적으로 서버를 운영할 수 있습니다.

  2. 고가용성
    : 특히 비용적인 문제로 인해 웹 서버용 인스턴스를 한 대만 사용하고 싶지만, 고가용성이 없기 때문에 해당 인스턴스에 장애가 생겼을 경우 바로 서비스 중단으로 이어지게 되는데요

    그럴 경우, 오토스케일링을 통해 서버의 최소 용량을 1로 설정하여 운영할 경우, 장애가 생겨도 인스턴스가 새로 오토스케일 되어 올라오기 때문에 서비스 중단을 최소한으로 가져갈 수 있습니다.

    애플리케이션의 고가용성을 보장하기 위해 Auto Scaling을 사용하여 여러 가용 영역에 인스턴스를 분산 배치하고 장애가 발생할 경우 다른 가용 영역으로 자동으로 트래픽을 전환합니다.
  3. 비용 최적화
    : 관리 비용을 절감하기 위해 Auto Scaling을 사용하여 최소한의 리소스만을 사용하다가 필요시에 자동으로 인스턴스를 확장하고 축소하기 때문에 불필요한 관리 비용을 줄일 수 있게 됩니다.

  4. 시간 기반 작업
    : 특정 시간대에 일괄적으로 높은 컴퓨팅 리소스가 필요한 작업(예: 일일 데이터 처리 작업)을 자동으로 처리하기 위해 Auto Scaling을 활용할 수 있습니다.

 

2. 축소 보호 정책

2-1. 축소 보호 정책

위와 같은 많은 장점으로 오토스케일을 많이 사용하고 있습니다.

하지만 트래픽이 몰려 빠르게 scale out 이 될 때는 오토스케일링이 큰 도움이 되지만, 트래픽이 안정적인 환경으로 돌아가면서 늘어났던 인스턴스가 원래의 수로 줄어드는 scale in이 진행이 될 때 어떤 인스턴스가 종료될지 알 수 없는 문제가 생깁니다.

어떤 운영 환경에서는 해당 부분이 큰 문제가 되지 않을 수도 있지만, 어떤 환경에 따라서는 계속해서 유지되어야 하는 인스턴스가 종료되어 버리면 난감할 상황도 있을 수 있겠죠?

예를 들면, 여러 대의 EC2들이 서로 연동되어 운영 중인 환경에서, 해당 서버들이 private ip로 연결이 되어 있다고 한다면, scale out 후에 scale in이 되는 과정에서 private ip로 연결되어 있는 서버가 종료된다면 서비스 간에 장애가 생길 수 있습니다.

 

이러한 현상을 방지하기 위해 오토스케일링에는 scale out > scale in 과정에서 어떤 인스턴스를 유지하거나, 종료할지 지정하는 정책을 설정할 수 있는데, 바로 scale-in protection(축소보호정책) 입니다!

 

 

“축소 보호” 정책은 [1] 오토스케일 그룹 단위에서도 설정이 가능하며, [2] 개별 인스턴스 단위로도 “축소 보호”를 설정할 수 있습니다.

 

[1] 그룹 단위에서 인스턴스 축소 보호 설정이 활성화되면 활성화 후 시작되는 모든 새 인스턴스에는 인스턴스 축소 보호가 활성화되며,

  • ASG > 세부 사항 > 고급 설정

 

 

[2] 개별 인스턴스 단위로 축소 보호 설정을 활성화 할 경우, 지정된 특정 인스턴스만을 보호할 수 있습니다.

  • ASG > 인스턴스 관리(Instance Management) > 인스턴스

 

 

 


 

오늘은 간단하게 이러한 정책이 있다고 알아보았는데요!

다음 시간에는 축소 보호 설정을 어떻게 적용하고, 어떻게 활용되는지 실습해 보도록 하겠습니다!

 

다음 시간에 만나요!

베빠~!

 

 

 

댓글