티스토리 뷰

AWS

로드밸런서의 keep-alive 옵션

나를찾는아이 2022. 8. 9. 18:34
728x90
반응형

https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x

 

Connection management in HTTP/1.x - HTTP | MDN

Connection management is a key topic in HTTP: opening and maintaining connections largely impacts the performance of Web sites and Web applications. In HTTP/1.x, there are several models: short-lived connections, persistent connections, and HTTP pipelining

developer.mozilla.org

 

Short-lived connection이라고 불리는 연결은

 

요청마다 연결을 맺고, 연결을 닫는 작업이 반복해서 실행됩니다

 

keep-alive를 활성화한 연결은 생성된 연결을 재사용하는데요

 

커넥션을 맺고 끊는데에 비용이 소모되는데 이 비용을 절감하여 더 빠르게 통신할수 있도록 합니다

 

 

 

로드밸런서와 그 뒤에 놓인 인스턴스간의 백엔드 커넥션을 연결할때

lb와 ec2사이에 HTTP keep-alive 옵션을 활성화하는것을 추천합니다

 

로드밸런서가 ec2와 생성한 커넥션을 재활용할수 있도록 keep-alive 옵션을 켜는 것은 aws 공식문서에서도 추천하는 방법입니다

 


그리고 여러분이 만든 어플리케이션의 idle timeout은 load balancer에 설정된 idle timeout보다 반드시 큰 값으로 설정해주셔야 합니다

그렇지 않으면 만약 어플리케이션이 tcp 커넥션을 갑작스럽게 중단할때 로드밸런서는 커넥션이 끊겼다는 패킷을 받기 전에

 

어플리케이션에게 요청을 할것이고 서버는 로드밸런서로부터온 요청에 응답을 할수 없으므로

로드밸런서는 502 bad gateway 에러 보내게 됩니다

 


기본적으로 elb의 idle timeout은 60초로 되어있습니다

 



이점을 참고해주세요~

 

 

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#connection-idle-timeout

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함