9

eu-west-1 지역의 각 가용 영역 (AZ)에 하나씩 3 개의 EC2 인스턴스가 있습니다. 그들은 ELB를 사용하여로드 밸런스됩니다. CloudWatch를 사용하여로드 밸런서에 등록 된 인스턴스 수를 모니터링하고 싶습니다. 문제는 is : 나는 실제로 HealthyHostCount 수치를 이해하지 못한다.CloudWatch에서 모니터링을 위해 ELB의 HealthyHostCount를 사용하려면 어떻게해야합니까?

배포의 경우 통지없이 LB의 단일 인스턴스를 등록 취소 할 수 있습니다. 따라서 알람은 다음과 같습니다. 5 분 동안로드 밸런서 뒤에 건강한 인스턴스가 1 개만있는 경우 알림.

내가 이해하는 한, HealthyHostCount (HHC)은 모든 ELS에 대해 평균 한 주어진 ELB에 등록 된 정상 인스턴스의 수입니다. 모든 것이 괜찮은 경우 각 AZ에 인스턴스가 1 개 있기 때문에 HHC는 1 (어느 기간에 상관없이)이어야합니다.

며칠 전 누군가가 인스턴스를 다시 등록하지 않고 배포했기 때문에 인스턴스가 하나만 균형을 이루었습니다. 우리가 그것을 알아 차렸을 때, 우리는 평균 HHC가 5 분이 지난 후에 0.6 이하로 내려 갔을 때 우리에게 알려주는 경보를 작성했습니다. (ELB에 인스턴스가 하나만 등록되어 있으면 HHC의 평균 시간은 0.33입니다.) 그러나 알람은 절대로 "ALARM"상태로 변경되지 않았습니다.

CloudWatch에서 HHC를 확인했을 때 HHC는 의미가없는 숫자였습니다 (5 분 간격으로 10.0을 합친 것).

나에게 큰 난장판입니다. 내가 통계를 이해한다고 생각할 때마다 CloudWatch 차트는 모두 나에게 횡설수설합니다.

누군가 인스턴스가 하나만 등록되었을 때 HHC를 사용하여 경보를받는 방법을 설명해 주시겠습니까? 평범한 HHC가가는 길입니까, 아니면 다른 측정 항목을 사용해야합니까?

답변

3

CloudWatch 웹 콘솔에서 클라우드 시청이 할 수있는 모든 것을 노출하지 않는 영역입니다. docs이 설명하는대로 HealthyHostCount은 가용성 영역 별 메트릭입니다. 콘솔을 사용하면 사용 가능한 영역 (모든 부하 분산 장치를 통해) 또는 부하 분산 장치 (모든 영역)에서 HealthHostCount를 가질 수 있지만 두 방법으로 분리 할 수는 없습니다.

부하 분산 장치가 하나만있는 경우 가장 간단한 방법은 각 영역 메트릭에 하나의 경보를 설정하는 것입니다. 여러 개의 가용 영역이있는 경우 API를 사용하여 가용성 영역과로드 밸런서 (다시 말하자면로드 밸런서 당 하나의 알람)에 알람을 생성 할 수 있어야하지만 최대한 멀리 웹 UI에서이를 수행 할 수는 없습니다. 알고있다.

6

HealthyHostCount 메트릭은 상태 확인이 실행될 때마다 각 가용성 영역에 대해 사용 가능한 호스트 수와 함께 하나의 데이터 값을 기록합니다. ELB 상태 검사에는 분 당 실행되는 상태 검사의 수를 정의하는 Interval 매개 변수가 있습니다.

건강 수당 Interval이 10 초인 AZ 당 메트릭을보고있는 경우 해당 AZ에 2 개의 정상적인 호스트가있는 경우 분당 6 데이터 포인트 (60/10)의 값 2가 표시됩니다. 최대 값과 최소값은 2이지만 합계는 6*2=12이됩니다.

두 호스트가 각각 3 개의 AZ가 있고 각각 Interval = 10이지만 다시 LB 당 메트릭을보고있는 경우 분당 3*6=18 개의 데이터 포인트가 표시되며 각 값은 2입니다. 평균, 최대 및 최소는 2이지만 합계는 18*2=36

입니다. 60 초 (5, 6, 10, 15, 20, 30 또는 60 초)를 나눌 수있는 간격 값을 설정하는 것이 좋습니다).

귀하의 경우 간격이 30 초이고 AZ 당 3 개의 AZ 및 1 개의 서버가있는 경우 : 분당 AZ 당 2 개의 데이터 포인트가 필요하므로 LB 당 Period이라는 알람을 설정해야합니다 값이 1보다 작을 때 트리거되는 Sum of HealthyHostCount (2 data values * 1 Healthy AZ * 1 healthy server = 2, 건강하지 못한 AZ의 다른 4 개 데이터 값은 0이어야 합계에 영향을주지 않음)에 대해

UPDATE : 건강 검진의 수는 실행 당신이 트래픽 스파이크를 겪고있는 경우, 그래서 ELB (AZ 당 ussually를) 모양 내부 인스턴스의 수, 또는 충분한 부하에 따라

그것은 turns out 단일 ELB 내부 인스턴스를 포화 시키려면 ELB 내부의 내부 서버 수가 증가하고 예기치 않게 더 많은 데이터 포인트를 갖게됩니다. 많은 트래픽이있는 경우에만 sum 값에 영향을 줄 수 있습니다. 3 AZ에서 분산 된 6k RPM의 최고로드로이 문제를 보지 못했습니다. 이것이 귀하의 시나리오라면, average을 사용하는 것이 더 안전한 방법이지만, LowerThan 0.65를 임계 값으로 사용하는 것이 좋습니다. 이 상세하고 놀라운 설명은

link 또한 나를 Cross-Zone Load Balancing 기능은 데이터 포인트의 양에 영향을 어떻게하는지 궁금합니다 ...

+0

감사합니다! –