ec2 인스턴스 기반에서 동작하는 java application 502 발생

728x90
  • ec2 인스턴스에서 java 애플리케이션이 OOM 이 나면서 실제 애플리케이션에 접근할 때 502 를 떨구지만, ASG 는 healthy 상태로 판단하고 인스턴스 교체를 안 할 수 있다.
    • OOM 이 발생해도 인스턴스 상태체크를 통과할 수 있는 원인 중 하나는 Java 프로세스가 OS전체 메모리가 아닌 정해놓은 heap 메모리에 도달하게 되면 해당 프로세스는 OOM이 발생되어 해당 프로세스만 Kill이 되는데요, 이때 시스템 전체 메모리 사용률이 과도하게 사용되지 않는다면 인스턴스 통신에는 문제가 없기 때문에 인스턴스 상태체크는 통과하게 됩니다.
    지속적으로 발생할 경우 프로세스의 Heap 메모리 사용량을 조정해볼수 있지만 Auto Scaling 그룹에 Elastic Load Balancing 상태 확인을 추가하여 EC2의 상태체크 뿐 아니라 Elastic Load Balancing 상태 검사에도 실패할 경우에 인스턴스를 비정상으로 간주하여 교체할 수 있습니다. ALB의 경우 Application 의 상태체크를 하기 때문에 이 방법을 고려하여 추가해 보시길 바랍니다.
    이 부분은 Network 의 범위이기 때문에 Linux profile의 엔지니어로써 Best Effort 로 최대한 관련 자료를 제공드린 점 양해해 주시면 감사하겠습니다.
    

 

728x90