2014-10-22 2 views
0

자동 확장 정책을 사용하면 전체 그룹 CPU 사용량에 따라 백엔드 인스턴스의 크기를 조정할 수 있습니다. AWS에는 OldestInstance, OldestLaunchConfiguration, NewestInstance 및 ClosestToNextInstanceHour와 같은 몇 가지 종단 정책이 있습니다.AWS 자동 확장 정책이 유휴 상태가 아닌 사용중인 인스턴스를 종료합니다.

불행히도 이러한 도움을받지 못하면 내 문제를 해결할 수 없습니다. 내 확장 비율 정책 트리거가 그룹에 대해 10 %로 낮게 설정되면 유휴 CPU가있는 인스턴스를 선택하는 대신 여전히 바쁜 인스턴스를 삭제할 수 있습니다.

제안 사항이 있으면 해결 방법이 있습니까? 또한 백엔드 인스턴스는 내부 ELB를 사용하지 않습니다.

+1

부하 분산 전략은 무엇입니까? 다른 인스턴스가 유휴 상태 일 때 한 인스턴스의 CPU 사용률이 10 %를 넘는 상태로 어떻게 이동할 수 있습니까? –

+0

안녕 마이크 이러한 백엔드 인스턴스는 작업자이므로로드 균형 조정이 필요하지 않습니다.대기열에서 작업을 가져 와서 처리합니다. 부하 분산 장치가 없어도 자동 조정 그룹을 만들 수 있습니다.이 경우 작업자가 서로 독립적으로 작동하므로 부하 분산 장치가 필요하지 않습니다. Cloudwatch 알람의 내 스케일은 CPU 평균 10 %로 설정됩니다. AS가 무작위로 바쁜 것을 선택하는 대신 유휴 인스턴스를 제거하는 방법을 볼 수 없습니다. – Niall

+1

확인. 그건 의미가 있습니다. 나는 당신이 찾고있는 것을 할 수있는 out-of-the-box 기능을 찾지 않을 것이라고 생각합니다. 인스턴스를 폴링하고 인스턴스를 트리거하여 일부 프로세스를 종료해야합니다. –

답변

3

스케일링 정책을 사용하여 자동 확장 그룹의 원하는 용량을 변경합니다. 이러한 확장 정책은 AWS CloudWatch 알람에서 트리거하거나 API 호출을 통해 트리거 할 수 있습니다.

자동 확장이 확장 정책에 응답하여 인스턴스를 종료하기로 결정하면 Termination Policy을 사용하여 종료 할 인스턴스를 결정합니다. 그러나 Auto Scaling이 종료 될 예정임을 인스턴스에 알리는 기능은 없습니다. 이렇게 말하면, 바쁜 인스턴스가 종료 될 수 있습니다.

  • 종료를 허용하지만, 자동 스케일링 그룹 수명주기 후크를
  • 제어 인스턴스 종료 자신에게
를 사용
  • 을 손실 된 작업을 복구 :

    이 처리 방법에는 여러 가지가 있습니다

    자동 종료 그룹이 inf를 처리하는 경우 종료가 허용되도록이 완벽하게 허용됩니다. SQS (Amazon Simple Queue Service)와 같은 작업 대기열에서 수행 이 경우 인스턴스가 SQS 큐에서 메시지를 가져 오면 일정 기간 동안 메시지가 보이지 않는 것으로 표시됩니다. 인스턴스가 기간 내에 메시지를 특별히 삭제하지 않으면 메시지가 대기열에 다시 나타납니다. 따라서 손실 된 작업은 다시 처리됩니다.

    자동 스케일링 그룹 수명주기 후크을 사용하면 종료로 표시된 인스턴스를 Terminating:Wait 상태로 이동할 수 있습니다. 그런 다음 신호가 SNS 또는 SQS를 통해 전송되고 Auto Scaling은 인스턴스를 종료하기 전에 신호가 돌아 오기를 기다립니다. Auto Scaling Group Lifecycle을 참조하십시오.

    인스턴스 종료 제어은 사용자 코드가 종료 할 인스턴스를 결정한다는 것을 의미합니다. 선택한 인스턴스에서 응용 프로그램에 신호를 보내 효과적으로 처리 작업을 끝내고 종료 준비가되면 신호를 보냄으로써 친근한 방식으로이를 수행 할 수 있습니다. 이 기능을위한 표준 API는 없습니다. CloudWatch 알람 및 SNS 알림을 통해 직접 생성해야합니다.

    DetachInstances API 호출을 사용하여 자동 크기 조정 그룹에서 인스턴스를 제거한 후 작업을 완료 한 다음 인스턴스를 종료 할 수 있습니다.

  • +0

    존 감사합니다, 우리의 현재 환경 설정은 근로자의 (합계) 통계 = 평균 대신 2 % 미만인 규모 정책을 기반으로합니다. 이것은 여전히 ​​약간 위험합니다. 나는 당신의 메시지 대기열 접근법을 좋아한다. 이 감사에 대해 우리 팀과 이야기 할 것입니다. – Niall

    +0

    죄송합니다. 라이프 사이클 후크에 대해서는 언급하는 것을 잊어 버렸습니다. 추가됨. –

    +0

    이 질문에서 설명한 라이프 사이클 후크 기반의 기술을 사용합니다. http://stackoverflow.com/questions/17526570/how-can-i-prevent-ec2-instance-termination-by-auto-scaling/ 26851319 # 26851319 – nerff

    관련 문제