AWS

[갑티슈시리즈] 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


5/5 - (평가 개수 : 2)

필자: GS Neotek

전체 게시물수 : 238

전체 조회수 : 2767

게시물 공유하기