AWS EC2 자동 확장

현대의 클라우드 컴퓨팅 환경에서 기업은 특히 트래픽 변동이 심한 경우 변화하는 비즈니스 요구에 신속하게 대응할 수 있어야 합니다. Amazon Web Services(AWS)에서 제공하는 EC2 자동 확장 기능은 개발자와 기업에 효과적인 솔루션을 제공합니다. AWS EC2 Auto Scaling은 컴퓨팅 리소스의 크기를 자동으로 조정하여 실제 부하에 따라 인스턴스 수를 자동으로 늘리거나 줄여 비용을 최적화하고 효율적인 시스템 운영을 보장합니다. 트래픽이 급증하거나 감소하는 상황에 관계없이 자동 확장을 통해 애플리케이션의 안정성과 가용성이 보장되어 비즈니스 연속성과 유연성이 크게 향상됩니다.

  • Amazon EC2 Auto Scaling은 수요에 따라 애플리케이션의 EC2 인스턴스 수를 수정합니다.
  • EC2 인스턴스 그룹을 제어하기 위해 자동 확장 그룹이 생성됩니다.
  • 설정할 수 있는 항목:
    • 최소 인스턴스 수: 이것은 그룹이 가져야 하는 최소 인원입니다.
    • 최대 인스턴스 수: 이것은 그룹이 가질 수 있는 최대 인스턴스 수입니다.
    • 필요 용량: 그룹은 이 수의 인스턴스를 유지하려고 시도합니다.
  • 수요에 따라 확장 정책은 인스턴스를 자동으로 추가하거나 제거할 수 있습니다.

예: 다음 콘텐츠가 포함된 자동 크기 조정 그룹:

  • 최소 크기: 6개 인스턴스
  • 필요 용량: 8개 인스턴스
  • 최대 크기: 14개 인스턴스
  • 이 범위 내의 인스턴스는 사용자가 설정한 기준에 따라 정책이 조정되어 수정됩니다.

 

  • 보다 쉬운 확장성과 관리를 위해 Amazon EC2 자동 확장 기능은 EC2 인스턴스를 Auto Scaling 그룹으로 그룹화합니다.
  • 자동 확장 그룹은 시작 템플릿이나 시작 구성을 사용하여 인스턴스를 빌드합니다.

 

  • 건강 모니터링: EC2 상태 검사를 사용하여 인스턴스 상태를 자동으로 검증하고 유지 관리합니다. 필요한 용량을 보존하기 위해 실패하거나 종료된 인스턴스를 교체합니다.
  • 맞춤형 건강 검진: 일부 애플리케이션 요구 사항에 대해서는 자체적인 상태 점검을 설계할 수 있습니다. 이러한 검사를 충족하지 못하면 인스턴스가 교체됩니다.
  • 균형 잡힌 용량: 가용성과 적응성을 개선하기 위해 인스턴스는 여러 가용성 영역에 균등하게 분산됩니다.
  • 여러 인스턴스 유형: 단일 그룹에서 다양한 인스턴스 유형과 구매 옵션(예약, 주문형, 스팟)을 지원하여 비용을 절감합니다.
  • 자동 스팟 인스턴스 교체: 중단된 Spot 인스턴스를 자동으로 교체합니다. 서비스 중단이 발생하면 용량 재조정을 통해 Spot 인스턴스를 교체할 수 있습니다.
  • 부하 분산: Elastic Load Balancing과 통합하여 트래픽이 정상적인 인스턴스에 균등하게 분산되도록 합니다. 인스턴스가 커짐에 따라 자동으로 등록되고 등록이 해제됩니다.
  • 확장성: 그룹 크기를 수동으로 선택할 수 있으며, 변화하는 하중에 맞게 자동으로 조정됩니다.
  • 인스턴스 새로 고침: 실행 템플릿이나 AMI가 수정될 때마다 인스턴스는 롤링 또는 카나리아 배포를 통해 업데이트됩니다.
  • 라이프사이클 후크: 인스턴스를 시작하거나 종료할 때 사용자 정의 작업을 허용하므로 이벤트 기반 아키텍처에 유용합니다.
  • 상태 저장 워크로드 지원: 상태 저장 애플리케이션을 계속 실행하려면 라이프사이클 후크, 확장된 보호 또는 고유한 종료 정책을 사용합니다.

 

  • 자동 스케일링 재조정: EC2 인스턴스가 가용성 영역(AZ)에 고르게 분산되지 않은 경우 자동 크기 조정(AS)이 자동으로 이를 재조정합니다.
  • 재조정 작업: 다른 가용성 영역에서 초과 인스턴스를 제거하고 인스턴스 수가 더 적은 가용성 영역에서 새 인스턴스를 시작합니다.

 

  • 가용성 영역은 자동 크기 조정에 추가하거나 제거할 수 있습니다.
  • EC2 인스턴스는 ASG에서 수동으로 종료됩니다.
  • 인스턴스 분포는 가용성 영역 용량의 증가 또는 감소에 영향을 받습니다.

 

  • EC2가 작동 가능해야 합니다.
  • EC2는 여전히 동일한 AMI를 사용하여 시작해야 합니다.
  • 인스턴스는 다른 ASG에 포함될 수 없습니다.
  • 인스턴스와 ASG는 동일한 AZ에 있어야 합니다.
  • 인스턴스 추가가 ASG의 최대 용량을 초과하는 경우 요청은 실패합니다.
  • 수동 분리: ASG에서 EC2 인스턴스를 제거하려면 CLI 또는 AWS 콘솔을 사용합니다.
  • 분리 후: 분리된 인스턴스는 다른 ASG로 전송되거나 별도로 관리될 수 있습니다.
  • 필요한 용량 조정: 인스턴스를 분리할 때 ASG의 원하는 용량을 줄이는 것을 선택할 수 있습니다.
    • 그렇지 않은 경우 ASG는 새로운 인스턴스를 시작합니다.
  • ASG 삭제: ASG를 삭제하면 모든 EC2 인스턴스가 종료되고 해당 기능이 0으로 재설정됩니다.
    • ASG를 파괴하기 전에 EC2 인스턴스를 분리하여 저장합니다.

 

  • ASG에 ELB 연결: 동일한 지역 및 VPC에 있는 한 ASG에 ELB를 추가할 수 있습니다.
  • ELB는 새 인스턴스와 기존 인스턴스를 모두 ASG에 자동으로 등록합니다.

 

  • 건강 검진 카테고리: EC2 및 ELB 상태 검사를 기준으로 EC2 인스턴스는 정상 또는 비정상으로 분류됩니다.
  • 상태 점검 설정: 자동 크기 조정은 기본적으로 EC2 상태 확인을 사용합니다.
    • ELB 및 EC2 상태 검사를 사용하도록 설정할 수 있습니다.
  • 유예 기간: 상태 검사를 수행하기 전 기본 유예 기간은 300초로 설정됩니다.
    • 인스턴스가 서비스에 들어가면 유예 기간을 0으로 설정하여 인스턴스의 상태를 확인합니다.
    • 유예 기간 동안에는 건강에 해로운 상태가 무시됩니다.
  • 비정상적 인스턴스 처리: ASG는 유예 기간 후에 교체 인스턴스를 배포하고 비정상 인스턴스를 제거합니다.
  • 탄력적 IP 및 EBS: 새 인스턴스에 연결하고 종료된 인스턴스에서 수동으로 분리합니다.

 

  • SNS 알림: ASG는 다음과 같은 경우 이메일 알림을 보냅니다.
    • 인스턴스가 시작되었습니다.
    • 인스턴스가 종료되었습니다.
    • 인스턴스 시작에 실패했습니다.
    • 인스턴스 종료에 실패했습니다.

 

  • 병합은 AWS CLI를 사용해서만 수행할 수 있습니다(AWS 콘솔은 사용할 수 없습니다).
  • 여러 개의 Single-AZ ASG를 결합하여 Multi-AZ ASG를 만들 수 있습니다.
  • 확장 프로그램: 추가 EC2 인스턴스를 시작합니다.
  • 줄이다: EC2 인스턴스를 종료합니다(각 확장 이벤트에 대해 축소 이벤트를 생성하는 것이 좋습니다).
  • EC2 메트릭은 다음으로 전송됩니다.클라우드워치ASG 인스턴스를 모니터링합니다.
    • 기본 모니터링: 300초마다 (무료).
    • 세부적인 모니터링: 60초마다(유료, AWS CLI를 사용하면 기본적으로 활성화됨).

 

  • ASG에서는 EC2 인스턴스를 수동으로 대기 모드로 전환할 수 있습니다.
  • 자동 크기 조정은 여전히 대기 인스턴스를 관리하는 데 사용되지만
    • 사용 중인 인스턴스와 마찬가지로 요금이 청구됩니다.
    • 워크로드에 액세스할 수 있는 EC2 인스턴스는 영향을 받지 않습니다.
    • 대기 인스턴스는 상태 검사를 받지 않습니다.

 

  • 수동 확장: EC2 인스턴스의 수를 수동으로 변경할 수 있습니다.
  • 동적 확장: 조건부 및 실시간 알림.
    • 타겟 추적: 예상 측정 항목 값(예: 가정용 온도 조절 장치 수정)을 기준으로 그룹의 크기를 조정합니다.
    • 간단한 줌: 알림에 응답하여 그룹의 크기를 한 번 변경합니다(쿨다운 기간 300초).
    • 단계적 확대/축소: 설정된 단계 크기에 따라 스케일을 조정하고 알람 위반 크기에 따라 스케일을 조정합니다. 예열 타이머는 지원하지만, 쿨다운 타이머는 지원하지 않습니다.

 

  • 예측 확장: 머신 러닝을 사용하여 일일 및 주간 부하 패턴을 예측하고 인스턴스 조정을 계획합니다.
  • 계획된 확장: 예상되는 부하 변동을 처리하기 위해 특정 시간과 용량에 맞춰 확장 작업을 예약할 수 있습니다. 예정된 작업의 날짜와 시간은 고유해야 합니다.
  • 사이클 연장: 계획된 확장과 유사하게 과거 데이터를 사용하여 미래의 확장 필요성을 예측합니다.

 

  • 알림과 정책은 확장 정책에서 확장 시기를 결정하는 데 사용됩니다.
  • 확장 변경 사항은 ASG의 최소 또는 최대 용량을 초과할 수 없습니다.
  • 최적의 애플리케이션 성능을 보장하려면 신중한 계획이 필요합니다.팽창과 수축의 과정.

 

  • 트래픽 수준에 따라 웹 서버 EC2 인스턴스를 자동으로 확장하여 애플리케이션이 인간의 도움 없이도 급증을 관리할 수 있도록 보장합니다.
  • 특정 시간 내에 대용량 데이터 세트를 처리하려면 데이터 처리 요구 사항에 따라 인스턴스를 확장합니다.
  • 사이버 먼데이 또는 블랙 프라이데이와 같이 수요가 많은 기간에는 인스턴스를 확장하여 애플리케이션이 더 많은 사용자를 처리할 수 있도록 하세요.
  • 바쁜 기간에도 원활한 게임 플레이를 보장하기 위해 플레이어 활동에 따라 멀티플레이어 백엔드 서버를 자동으로 확장합니다.

 

  • ELB와 자동 크기 조정을 함께 사용하면 인스턴스 간에 트래픽을 균등하게 분산할 수 있습니다.
  • 상태가 좋지 않은 인스턴스를 빠르게 식별하고 교체하려면 적절한 상태 검사 매개변수를 설정하세요.
  • 처음에는 최소한의 인스턴스로 시작해서 트래픽 패턴이 보이면 점차 인스턴스 수를 늘리세요.
  • 자주 테스트를 실시하여 다양한 트래픽 시나리오에서 확장 정책이 예상대로 수행되는지 확인하세요.
  • 예측 가능한 트래픽 패턴이 있는 워크로드에 대한 과거 데이터를 기반으로 확장 작업을 예상하기 위해 예측적 확장을 활용합니다.

 

요약하다

AWS EC2 자동 확장은 클라우드 컴퓨팅 아키텍처의 필수적인 부분이며, 특히 동적 부하 환경에 적합합니다. 다른 AWS 서비스와의 긴밀한 통합을 통해 자동 확장은 리소스 활용도를 높이고 운영 및 유지 관리 비용을 줄일 수 있을 뿐만 아니라 사용자 경험도 향상할 수 있습니다. 기업의 높은 가용성과 유연성에 대한 요구가 계속 증가함에 따라 AWS EC2 자동 확장은 의심할 여지 없이 이러한 목표를 달성하는 강력한 도구입니다.

더 탐험할 것

당신이 필요한 것을 말해