언제까지 실시간 서비스에 AWS ALB로 Health Check 5초 기다리실 거에요?
1. AWS ALB Health Check
AWS ALB Health Check는 AWS에서 제공하는 여러 가지 서비스에서 사용되는 모니터링 기능입니다. 클라우드 인프라와 애플리케이션 상태를 지속적으로 확인하여 가용성 및 성능을 유지하고, 서비스 중단이나 요청 실패를 줄이는 데 도움을 줍니다. AWS에서는 Route 53, Elastic Load Balancer(ELB), Amazon ECS 등 다양한 서비스에서 Health Check를 제공합니다.
1-1. AWS ALB Health Check 구성
성능 비교를 위한 테스트 환경은 다음과 같습니다.
1. Instances

2. Load Balancer

3. Target Group

테스트를 진행하기 위해 2개의 Instance를 생성하였고, Load Balancer 및 Target Group을 각각 하나씩 생성하였습니다.
1-2. AWS ALB Health Check의 기본값 분석
1. Target Groups 탭에서 생성한 Target Group을 선택한 뒤, Health Checks 블록을 클릭하면 현재 Health Check의 설정을 확인할 수 있습니다.

오른쪽의 Edit을 클릭하여 설정 편집에 들어가 자세한 값을 확인합니다.
다음은 Edit 클릭 후 AWS ALB Health Check 설정의 기본값(default setting) 입니다.

Health Check 할 프로토콜은 HTTP이고 경로는 / 로 설정되어 있는 것을 확인할 수 있고, 아래에 Advanced health check settings를 클릭하여 자세한 구성을 확인합니다. 다음은 AWS Health Check의 기본 구성입니다.

따라서 AWS Health Check의 기본값은 다음과 같습니다.
Health check port – Load Balancer 가 대상에 대한 Health Check를 수행할 때 Target Group과 동일한 포트를 사용합니다.
Healthy threshold – 연속 5번의 Health Check를 성공하면 정상으로 간주합니다.
Unhealthy threshold – 연속 2번의 Health Check를 실패하면 비정상으로 간주합니다.
Timeout – 5초동안 응답이 없으면 Health Check 실패로 간주합니다.
Interval – Health Check는 30초에 한 번 이루어집니다.
Success codes – 응답 성공시 상태 코드 200을 나타냅니다.
여기서 중요한 점은 AWS Health Check의 기본 구성을 변경하지 않고 사용한다면 Health Check를 30초에 1번 실행한다는 것입니다. Health Check를 30초에 1번 진행한다면 30초의 긴 시간 동안 서버나 애플리케이션에서 발생하는 문제를 실시간으로 감지하는데 상대적으로 느릴 수 있습니다. Health Check 간격이 길어질수록 많은 문제점들이 생깁니다.
관리자는 서버나 리소스에 대한 대응이 늦어지게 됩니다. 이로 인해 서비스 제공 업체의 관리 및 모니터링 작업에서 지연이 발생하며, 즉각적인 조치가 요구되는 문제를 빠르게 대응하지 못할 수 있습니다. 이는 곧 사용자들에게도 영향을 미치며 실패한 서비스와 계속되는 로딩 및 요청 실패 등의 문제에 직면할 가능성이 높습니다. 이 외에도 많은 문제점이 발생할 수 있으므로 이를 고려하여, Health Check의 간격을 적절히 조절하여 안정성과 성능을 유지할 필요가 있습니다.
1-3. AWS Health Check 최적화하기
AWS Health Check 설정을 변경하여 최적화하겠습니다. 다음과 같이 설정할 수 있는 제한이 아래에 표시되어 있습니다. 이에 맞게 최솟값으로 변경합니다. 해당 비교에서는 다음과 같이 수정하였습니다.

AWS Health Check의 Interval 최솟값은 5초입니다. 이 5초가 느린 시간은 아닙니다. 하지만 실시간 서비스가 중요하거나 높은 수준의 가용성이 요구되는 서비스를 운영하는 기업 같은 경우는 이 5초 또한 길 수 있습니다. 예를 들면 다음과 같습니다.
금융 서비스 – 주식 거래 플랫폼, 금융 거래 및 실시간 분석 시스템과 같은 금융 서비스는 네트워크 지연 시간에 매우 민감하며, 신속한 거래 처리와 데이터 신뢰성이 중요합니다.
응급 서비스 – 응급 의료 서비스나 긴급 상황 대응을 위한 통신 시스템과 같은 응급 서비스는 시스템 가용성이 매우 중요하며, 짧은 Health Check Interval 값이 필요합니다.
스트리밍 서비스 – 실시간 스트리밍 서비스, 게임 서비스 및 고화질 동영상 스트리밍 플랫폼 들에서는 실시간 서비스 가용성이 중요합니다.
이 외에도 Health Check를 빠르게 설정해야 하는 기업이나 서비스들은 5초라는 시간은 느린 편에 속합니다. 이런 고객들이 AWS Health Check를 사용하려고 하면 문제가 생길 수 있습니다. 만약 고객이 Health Check를 1초에 한 번 즉, Interval 값을 1로 지정해야 하는 고객일 경우 다음과 같은 문제가 발생합니다.

AWS Health Check에서 제공하는 범위가 5~300초 이기 때문에 1초로 설정할 수 없습니다.
출처 : www.nginxstore.com
--------------------------------------------------------------------------------------------
www.nginxkorea.co.kr 도 많이 사랑해주세요.
nginx plus 에 대한 문의 사항이나 기타 궁금하신 사항
www.nginxkorea.com/contact 로 언제든지 방문해주시면
무료 상담이 가능하다는 사실 알려드릴게요.
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.