aws이거 운영하는거 보통 어려운게 아니네요~ 조언좀 해주세요~ 몇일전에 이런일이 있었어요….

aws이거 운영하는거 보통 어려운게 아니네요~

조언좀 해주세요~

몇일전에 이런일이 있었어요.

Auto Scaling Group에서 scaling history를 보니까 온 디멘드 인스턴스 하나가 terminate되었더라고요. 1대가 돌고있었고, Min은 1로 설정이 되어있었기때문에 거기다가 온 디멘드 인스턴스였기때문에 약 30초 후에 새로운 인스턴스가 launching되긴 했어요…

근데 이때 로드벨런서를보니까 1분 평균 레이턴시가 30초까지 튀었더라고요.

평소에는 가끔 튀는거 제외하면 0.2초 이하로 유지했거든요.

이유를 추측해보고 aws를 조금 잘 아시는 분께 이것저것 물어봤었어요…

이때 오토스케일링 그룹에서 health check를 elb로 해놓고,

elb에서 Health Check설정은

Timeout이 5초 Interval이 30초 Unhealthy Threshold 3으로 되어있었거든요.

그러면 평균 레이턴시가 30초까지 튄걸로봐서 실제로 인스턴스에 문제가 있었고, 정상적인 응답이 없었던 상태였던것같아요.

Latency를 보면 비정상적인(1초 이상)게 한 5분정도였거든요. 5분정도면 굉장히 빨리 복구(?) 된건가요…? 아무튼 5분정도 굉장히 느렸거나 장애가 있었겠죠. 아마 완벽한 장애는 아니였을꺼 같아요 왜냐하면 그때도 스팟 인스턴스 하나는 계속 돌고 있었거든요….

아무튼 근데 5분이라는 시간을 좀 줄일 수 있다고 생각한게,

실제로 인스턴스가 문제가 있었지만 ELB가 해당 인스턴스의 Health Check하는 동안은 정상으로 판단하여 클라이언트의 요청을 보낼꺼란 말이죠….

그 Health Check시간은

unhealthy threshold * (interval + timeout) –> 105초 였겠죠…?

105초동안 인스턴스가 기능을 못하였지만 ELB는 요청을 처리하도록 보내줬고 그 결과 약 5분동안 일부 클라이언트들은 장애현상을 겪었을꺼 같은데,

이 Health Check시간이 너무 크다고 판단해서 다음날 시간대를 다 확확 줄였어요.

Unhealthy Threshold 2
Timeout 2
Interval 6초

Ping Target에 대하여 2초가 될때까지 그리고 6초의 시간 텀을두고 연속 두번 응답이 없다면 이건 거의 장애 상황일것이다 라고 생각을 하고 설정을 한 반나절 보다 조금 넘게 해놔봤어요.

그랬더니 반나절보다 조금 많은 시간동안 ELB에서 Health Check가 안되어 인스턴스가 terminate됐다가 launching된게 2번이나 있었더라고요.

해당 시간대에 Latency를 보면 특이사항은 없었고요… 실제로 인스턴스가 기능을 못했었는지는 잘 모르겠으나 Latency를 보면 이상이 없었는데 진짜 진짜 어떻게 연속 두번 2초를 넘겨 응답을 해서 애꿎은 인스턴스가 termiante됐다가 launching된게 아닌가 이런생각도 들고…

이런경우가 좀 많아지면 1분써도 1시간 요금 과금 되잔아요? 이런 점에서 볼때 조금 낭비인것 같기도 하고요…

어떻게 효율적으로 관리를 하면 좋을지 잘 모르겠네요..

6 thoughts on “aws이거 운영하는거 보통 어려운게 아니네요~ 조언좀 해주세요~ 몇일전에 이런일이 있었어요….

  1. 그래서 그후에 ELB Health Check설정은 그대로 두고 Auto Scaling Group에서 Health Type를 EC2로 해놓고 한 하루정도를 운영해봤는데 특이사항은 없었고요… 근데 왠지 이유 없이 불안(?) 하여 현재는 Health Type를 ELB로 다시 돌려놓고 ELB에서 Unhealthy Threshold를 좀 늘려놨어요… 그래도 예전보단 실제 인스턴스가 문제있는지 검사하는 시간 짧긴한데 어떨지 모르겠네요…

  2. Sung-jin Brian Hong 오늘 발표하신 내용에 한번에 항상 4대 단위로 돌리시는게 흥미롭더군요.(전해들은거라… 담에 딴데서 한번 더 하실 생각없으신가요?) 김태기 님 이분 섭외좀 ㅎㅎㅎ

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.