[MSK] When MSK connection is not possible

Print

질문

AWS MSK를 이용하는 일부 서비스들이 Kafka Broker 에 접속하지 못해(ECONNRESET 에러 발생) 정상동작하지 않는 이슈가 있었습니다.

이와 관련하여 Maintenance 작업 등으로 MSK 접속이 불가할 경우 대응 방안을 마련하고자 몇 가지 문의 드립니다.

  1. MSK는 언제 ECONNRESET 오류를 보내나요?

  2. MSK 유지보수 작업의 다운타임과 절차를 알려주실 수 있나요?

  3. AWS에서 권장하는 애플리케이션(Node.js, Kafkajs 라이브러리 사용)에서 MSK Downtime 후에도 액세스를 유지하기 위해 필요한 조치가 있습니까?

답변

1. MSK는 언제 ECONNRESET 오류를 보내나요?

ECONRESET 오류는 서버가 예기치 않게 연결을 닫았고 서버에 대한 요청이 이행되지 않았음을 의미합니다. 일반적으로 연결 관련 문제는 종종 네트워킹 문제와 관련됩니다.

2. MSK 유지보수 작업의 다운타임과 절차를 알려주실 수 있나요?
EX) 브로커 셧다운/재시작 주문, 다운타임 등

  • AWS는 보안 취약성을 해결하고 브로커를 지원하는 소프트웨어를 업데이트하기 위해 최신 OS 업데이트로 MSK 클러스터를 패치합니다. 패치 시간 및 날짜가 포함된 패치 기간 1주일 전에 패치/유지 관리 알림을 받게 됩니다. 패치 이벤트는 약 4시간 동안 진행됩니다. 필요한 경우 다음 정보가 포함된 티켓을 생성하여 요구 사항에 따라 MSK 클러스터의 패치 날짜/시간을 새 일정(같은 달 이내)으로 변경하도록 MSK 팀에 요청할 수도 있습니다.

    • 클러스터 ARN

    • 현재 패치 일정

    • 새로운 패치 일정

  • MSK는 Kafka 모범 사례에 따라 자동 롤링 업데이트를 사용하여 한 번에 하나의 브로커를 패치합니다. 여기에서 한 브로커는 한 번에 다시 시작되고 다른 브로커는 계속 온라인 상태입니다. 패치 프로세스의 일부로 수행되는 롤링 업데이트 동안 클라이언트 I/O 연속성을 보장하려면 모범 사례(3번 질문에서 언급)에 따라 클라이언트 및 Apache Kafka 주제의 구성을 검토하는 것이 좋습니다.

3. AWS에서 권장하는 애플리케이션(Node.js, Kafkajs 라이브러리 사용)에서 MSK Downtime 후에도 액세스를 유지하기 위해 필요한 조치가 있습니까?

Kafka Patching에 대한 롤링 업데이트 중에 클라이언트 I/O 연속성을 보장하려면 아래 모범 사례를 따르십시오.

  1. 주제 복제 인자(RF)가 2개 AZ 클러스터의 경우 최소 2개, 3개 AZ 클러스터의 경우 최소 3개인지 확인합니다. RF가 1이면 패치를 적용하는 동안 오프라인 파티션이 발생할 수 있습니다.

  2. 최소 동기화 복제본(minISR)을 최대 RF - 1로 설정하여 파티션 복제본 세트가 하나의 복제본이 오프라인이거나 과소 복제되는 것을 허용할 수 있도록 합니다.

  3. 클라이언트가 여러 브로커 연결 문자열을 사용하도록 구성되었는지 확인합니다. 클라이언트의 연결 문자열에 여러 브로커가 있으면 클라이언트 I/O를 지원하는 특정 브로커가 패치되기 시작하는 경우 장애 조치를 허용합니다. 여러 브로커와의 연결 문자열을 가져오는 방법에 대한 자세한 내용은 Amazon MSK 클러스터에 대한 부트스트랩 브로커 가져오기[1]를 참조하십시오.또한 지속적인 트래픽 흐름을 보장하기 위해 클라이언트 애플리케이션이 여러 브로커 연결 문자열로 구성되어 있는지 확인하십시오.

[1] Amazon MSK 클러스터에 대한 부트스트랩 브로커 가져오기
https://docs.aws.amazon.com/ko_kr/msk/latest/developerguide/msk-get-bootstrap-brokers.html

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.