AWS

AWS - EC2 Auto Scaling

고미-고미 2024. 3. 1. 18:00
728x90

■ EC2 Auto Scaling 정의

  • Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지할 수 있습니다. Auto Scaling 그룹이라는 EC2 인스턴스 모음을 생성합니다. 각 Auto Scaling 그룹의 최소 인스턴스 수를 지정할 수 있으며, Amazon EC2 Auto Scaling에서는 그룹의 크기가 이 값 아래로 내려가지 않습니다. 각 Auto Scaling 그룹의 최대 인스턴스 수를 지정할 수 있습니다

 

■ EC2 Auto Scaling 특징

  • 실행 중인 인스턴스의 상태 모니터링: EC2 상태 확인을 사용하여 인스턴스의 상태와 가용성을 자동으로 모니터링하고, 종료되거나 손상된 인스턴스를 교체하여 원하는 용량을 유지합니다.

  • 맞춤 상태 확인: 애플리케이션별 사용자 지정 상태 확인을 정의하여 예상대로 응답하는지 확인할 수 있습니다. 인스턴스가 사용자 지정 상태 확인에 실패하면 원하는 용량을 유지할 수 있도록 자동으로 교체됩니다.

  • 가용 영역 간 용량 균형 조정: Auto Scaling 그룹에 여러 가용 영역을 지정할 수 있으며, Amazon EC2 Auto Scaling은 그룹이 확장됨에 따라 가용 영역 전체에 걸쳐 인스턴스의 균형을 균등하게 조정합니다. 이는 단일 위치에서 애플리케이션을 장애로부터 보호함으로써 고가용성과 탄력성을 제공합니다.

  • 여러 인스턴스 유형 및 구매 옵션: 단일 Auto Scaling 그룹 내에서 여러 인스턴스 유형과 구매 옵션 (스팟 및 온디맨드 인스턴스) 을 시작하여 스팟 인스턴스 사용을 통해 비용을 최적화할 수 있습니다. 

  • 스팟 인스턴스의 자동 교체: 그룹에 스팟 인스턴스가 포함된 경우 Amazon EC2 Auto Scaling은 스팟 인스턴스가 중단되는 경우 대체 스팟 용량을 자동으로 요청할 수 있습니다. Amazon EC2 Auto Scaling은 용량 재조정을 통해 중단 위험이 높은 스팟 인스턴스를 모니터링하고 사전에 교체할 수도 있습니다.

  • 로드 밸런싱: ELB 부하 분산 및 상태 확인을 사용하여 애플리케이션 트래픽을 정상 인스턴스로 균등하게 분배할 수 있습니다. 인스턴스가 시작되거나 종료될 때마다 Amazon EC2 Auto Scaling은 로드 밸런서에서 인스턴스를 자동으로 등록 및 등록 취소합니다.

  • 확장성: 최대 부하를 처리할 수 있는 용량을 추가하고 수요가 낮을 때는 용량을 제거하여 애플리케이션 가용성을 유지하고 비용을 절감할 수 있습니다. 필요에 따라 Auto Scaling 그룹의 크기를 수동으로 조정할 수도 있습니다.

  • 라이프사이클: EC2 오토 스케일링이 인스턴스를 시작하고 서비스에 들어갈 때 시작되며, 인스턴스를 조욜할 때 서비스에서 제외하고 대상을 종료 합니다. 인스턴스 확장과 축소 시 발생 합니다. 
    • 인스턴스 확장 (Scale-Out): 인스턴스 확장 이벤트가 발생하고 인스턴스가 시작되고 대기 상태로 전환 합니다. 대기 상태에서 인스턴스는 사용자 애플리케이션에 필요한 소프트웨어 패키지를 다운 받고 설치 하여 트래픽을 받을 수 있는 준비 상태로 전환 됩니다. 모든 설치가 정상적으로 완료되면 트래픽을 받기 시작 합니다. 
    • 인스턴스 축소 (Scale-In): 인스턴스 축소  이벤트가 발생하면 라이프사이클에 의해 인스턴스는 대기 상태가 됩니다. 인스턴스가 완전히 종료 하기 전인 대기 상태에서 람다 함수를 사용하거나 로그 및 데이터를 다운로드 받을 수 있습니다. 

 

■ EC2 Auto Scaling 확장 지표 (Metric)

  • CPU 사용량: EC2 인스턴스의 CPU 사용량을 지표로 삼아 스케일링을 수행 할 수 있습니다. 만약 오토 스케일링 그룹의 평균 CPU 사용량이 70%를 초과할 때 스케일 아웃이 발생하고 평균 CPU 사용량이 30% 미만일때 스케일 인이 발생하도록 지정 할 수 있습니다. 
  • 요청 수량: ELB가 EC2 인스턴스에게 전달하는 요청 수량을 지표로 사용 합니다. EC2에서 안정적으로 처리할 수 있는 수량은 1,000개 이므로 ELB 모니터링 항목에서 확인할 수 있는 요청(Request)를 스케일링을 수행 할 수 있습니다.
  • 네트워크 사용량: EC2 평균 네트워크 입/출입량을 기반으로 스케일링을 수행 할 수 있습니다. 
  • 개별 지표: 상기 항목 이외에도 CloudWahtch에서 확인 할 수 있는 지표를 사용하여 스케일링을 수행 할 수 있습니다. 

 

728x90