동기식으로 인스턴스 시작 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

동기식으로 인스턴스 시작

Amazon EC2 Auto Scaling은 Auto Scaling 그룹에서 인스턴스를 시작하는 두 가지 방법, 즉 LaunchInstances API를 사용한 비동기 조정 동작과 동기 프로비저닝을 제공합니다.

동기 프로비저닝을 사용하면 LaunchInstances API를 사용하여 특정 가용 영역에서 특정 수의 인스턴스를 요청할 수 있습니다. 동기 프로비저닝은 다음과 같은 이점을 제공합니다.

  • 특정 가용 영역의 용량 가용성에 대한 즉각적인 피드백

  • 에서 시작되는 가용 영역 인스턴스에 대한 정확한 제어

  • 오케스트레이션 시스템에서 즉시 사용할 수 있는 결정적 인스턴스 IDs

  • 실제 용량 제약 조건에 따른 실시간 조정 결정

  • 비동기 Auto Scaling 시작의 대기 시간을 제거하여 더 빠른 조정

비동기 Auto Scaling을 사용하면 원하는 용량을 변경하거나 조정 정책이 트리거될 때 Amazon EC2 Auto Scaling은 조정 요청을 처리하고 백그라운드에서 인스턴스를 시작합니다. 인스턴스가 성공적으로 시작된 시기를 확인하려면 조정 활동을 모니터링하거나 Auto Scaling 그룹을 설명해야 합니다.

참고
  • LaunchInstances API는 시작 템플릿을 사용하는 Auto Scaling 그룹에서만 작동합니다. 시작 구성을 사용하는 Auto Scaling 그룹은 지원되지 않습니다. Auto Scaling 그룹에서 시작 구성을 사용하는 경우 동기 프로비저닝을 사용하기 전에 시작 템플릿으로 마이그레이션해야 합니다.

  • LaunchInstances API는 완전 온디맨드 또는 완전 스팟 구매 옵션만 있는 혼합 인스턴스 정책을 지원합니다. 온디맨드 인스턴스와 스팟 인스턴스를 모두 결합한 혼합 정책은 지원되지 않습니다.

  • 여러 가용 영역을 포함하는 Auto Scaling 그룹의 경우 대상 가용 영역 또는 서브넷을 지정해야 합니다. 단일 AZ 그룹의 경우이 파라미터는 선택 사항입니다.

동기 프로비저닝 및 비동기 조정

동기 프로비저닝

LaunchInstances API를 사용하는 경우 Amazon EC2 Auto Scaling은 다음을 수행합니다.

  • CreateFleet을 사용하여 요청된 인스턴스를 즉시 시작하려고 시도합니다.

  • 응답하기 전에 CreateFleet이 인스턴스 IDs 반환할 때까지 기다립니다.

  • 성공 시 인스턴스 IDs, 인스턴스 유형 및 가용 영역 정보를 반환합니다.

  • 실패에 대한 특정 오류 코드 및 세부 정보를 반환합니다.

  • 즉각적인 피드백을 제공하여 실시간 조정 결정 가능

비동기 조정

원하는 용량 변경 또는 조정 정책 사용과 같은 비동기 Auto Scaling 메서드를 사용하는 경우 Amazon EC2 Auto Scaling은 다음을 수행합니다.

  • API에서 원하는 용량을 업데이트하지만 인스턴스를 즉시 반환하지 않음

  • 가용 영역에서 인스턴스 시작을 자동으로 계획합니다.

  • 백그라운드 워크플로를 통해 인스턴스를 시작합니다.

  • 균형을 위해 여러 가용 영역에 용량을 자동으로 분산합니다.

  • 기본 제공 재시도 로직으로 시작 실패 처리

시작 작업의 상태를 확인하려면 조정 활동을 폴링하거나 Auto Scaling 그룹을 설명해야 합니다.

제한 사항 및 고려 사항

동기 프로비저닝 작업 시 다음 참고 사항 및 제한 사항에 유의하세요.

  • 시작 후 인스턴스 상태 - API에서 반환한 인스턴스가 보류 중 상태입니다. 후속 워크플로 프로세스 또는 수명 주기 후크 중에도 여전히 실패할 수 있습니다. API 응답이 성공하면 EC2가 시작 요청을 수락하고 인스턴스 IDs를 반환했음을 의미합니다. 인스턴스는 자동으로 워크로드에 대해 완전히 준비된 것으로 간주되지 않으며 표준 EC2 및 Auto Scaling 수명 주기 프로세스를 완료해야 합니다.

  • 웜 풀 제한 - 웜 풀이 있는 Auto Scaling 그룹은 현재 지원되지 않습니다. 웜 풀이 구성된 Auto Scaling 그룹에서 LaunchInstances API를 호출하려고 하면 API는 웜 풀 인스턴스를 사용하는 대신 콜드 스타트를 수행하고 UnsupportedOperation 오류를 반환합니다. 콜드 스타트에 대한 자세한 내용은 웜 풀의 제한을 참조하세요.

  • API 제한 시간 및 재시도 - 기본 CreateFleet 작업이 예상보다 오래 걸리는 경우 API가 제한 시간을 초과하고 멱등성 토큰을 반환할 수 있습니다. 동일한 ClientToken을 사용하여 원래 시작 작업을 추적하거나 클라이언트 토큰과 함께 describe-instances를 사용하여 시작된 인스턴스를 확인할 수 있습니다.

  • 가용 영역 제약 - Auto Scaling 그룹이 여러 가용 영역에 걸쳐 있고 가용 영역 리밸런싱이 활성화된 경우 인스턴스를 동기적으로 시작하면 운영 충돌이 발생할 수 있습니다.

    • 호출당 단일 AZ 제한 - Auto Scaling 그룹이 여러 영역에 걸쳐 있더라도 각 LaunchInstances API 호출은 하나의 가용 영역만 대상으로 할 수 있습니다.

    • AZ 리밸런싱 충돌 - Auto Scaling 그룹에 AZ 리밸런싱이 활성화된 경우 서로 다른 AZs에서 순차적으로 호출하면 추가 비동기 시작이 트리거되어 의도한 것보다 많은 인스턴스가 발생할 수 있습니다. 정확한 용량 제어를 위해 AZ 리밸런싱을 일시 중지하는 것이 좋습니다. 자세한 내용은 Amazon EC2 Auto Scaling 프로세스 일시 중지 및 재개 단원을 참조하십시오.

  • 부분적 성공 시나리오 - 요청된 용량 중 일부만 사용할 수 있는 경우 LaunchInstances API가 부분적 성공을 반환할 수 있으며, 이는 정상적인 EC2 동작입니다. API는 실패한 시작에 대한 오류 세부 정보와 함께 성공적으로 시작된 인스턴스를 반환합니다. 모든 인스턴스를 함께 시작해야 하는 사용 사례(예: 짧은 지연 시간으로 인해 동일한 AZ에 있는 모든 인스턴스가 필요한 애플리케이션)의 경우 부분적으로 시작된 인스턴스를 종료하고 다른 AZ에서 다시 시도해야 합니다. 용량에 민감한 워크로드에 대한 재시도 로직을 설계할 때는이 동작을 고려하세요.

  • 인스턴스 가중치 - Auto Scaling 그룹에서 인스턴스 가중치를 사용하는 경우 RequestedCapacity 파라미터는 인스턴스 수가 아닌 가중 용량 단위를 나타냅니다. 시작된 인스턴스의 실제 수는 선택한 인스턴스 유형과 구성된 가중치에 따라 달라집니다. EC2 Auto Scaling은 요청된 가중치 기반 용량에 관계없이 API 호출당 100개의 인스턴스로 시작을 제한합니다.

  • 혼합 인스턴스 유형 - LaunchInstances API는 Auto Scaling 그룹의 기존 혼합 인스턴스 정책을 사용하여 시작할 인스턴스 유형을 결정합니다. API는 그룹의 할당 전략 및 인스턴스 유형 우선 순위에 따라 인스턴스를 시작합니다.