[갑티슈시리즈] 2018년 2장
안녕하세요. GS네오텍 최지훈입니다.
이번에는 당사 SA분들이 답변주신 내용들이 主네요.
여기서 다루는 내용
· NLB routing
· NLB idle timeout
· RDS HAProxy
· Step Functions best practice
NLB routing
- NLB는 프로토콜, 원본 IP 주소/포트, 대상 IP 주소/트, TCP 시퀀스 번호에 따라 흐름 해시 알고리즘을 사용하여 대상을 선택
- 클라이언트로부터의 TCP 연결은 소스 포트와 시퀀스 번호가 서로 다르므로 다른 대상에 라우팅
- 각 TCP 연결은 연결 수명 동안 하나의 대상에 라우팅
- https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/introduction.html
NLB idle timeout
- 클라이언트가 NLB를 통해 요청할 때마다 해당 연결의 상태가 추적되고 연결은 대상에 의해 종료
- idle timeout 보다 오랫동안 클라이언트나 대상에 의한 연결을 통해 데이터가 전송되지 않으면 연결이 종료
- idle timeout 종료 기간이 지난 후 클라이언트가 데이터를 전송하면 TCP RST 패킷을 수신하여 연결이 더 이상 유효하지 않음을 나타냄
- NLB은 idle timeout 은 350초 (2018.02 기준)
- idle timeout 을 350초 이상 가져가려면 백앤드에서 keepalive를 구성하여 NLB idle timeout을 지속적으로 재설정
RDS HAProxy
- RDS 앞단에 HAProxy를 두는 경우 내부적으로 IP를 룩업하여 저장하고 있기 때문에 RDS Failover발생시 마스터 인스턴스로 연결하지 못하는 경우가 발생
- 대안
– Ngnix+(유료)로 변경 : DNS 갱신주기 설정하여 해결
– HAProxy를 그대로 사용하는 경우 Failover 발생시 HAProxy에서 룩업을 다시하는 로직 추가
Step Functions best practice
- Use Timeouts to Avoid Stuck Executions
- Use ARNs Instead of Passing Large Payloads
- Iterate a Count to Avoid Reaching the History Limit
- https://docs.aws.amazon.com/ko_kr/step-functions/latest/dg/sfn-best-practices.html
최신 댓글