Amazon Web Services 한국 블로그

Amazon SQS 신규 기능 – AWS SDK를 업데이트하여 지연 시간 절감 가능

Amazon SQS를 사용하면 규모에 상관없이 소프트웨어 구성 요소 간에 메시지를 보내고 받을 수 있습니다. 이 서비스는 제가 처음 사용한 AWS 서비스이며 저는 Solutions Architect로서 많은 고객이 메시지 대기열을 사용해 비동기식 통신을 활용할 수 있게 도왔습니다. 실제로 Amazon SQS는 2006년 7월부터 정식 버전으로 제공되었으며 내부적으로는 항상 AWS Query 프로토콜이라는 동일한 XML 기반 유선 프로토콜을 사용해 왔습니다.

오늘 Amazon SQS가 이제 모든 API에 대해 JSON 기반 유선 프로토콜을 지원한다는 사실을 발표하게 되어 기쁩니다. AWS JSON 프로토콜은 AWS 쿼리 프로토콜의 많은 단점을 겪지 않게 해줍니다.

AWS JSON은 이전 XML 기반 프로토콜보다 효율적이고 SQS 메시지를 보내고 받을 때 지연 시간 및 클라이언트 측 CPU 사용량을 모두 줄일 수 있습니다. 예를 들어 간단한 “hello world” 메시지를 전송 요청하는 경우 이전 AWS Query 프로토콜을 사용한 응답 본문 크기는 약 400바이트입니다. 새 AWS JSON 프로토콜을 사용하는 동일한 SendMessage 응답의 콘텐츠 길이는 이전 크기의 1/3 미만입니다.

Amazon SQS에서 새로운 JSON 기반 프로토콜 사용
바로 이번 런칭의 가장 멋진 부분입니다! AWS JSON 프로토콜을 활용하려면 AWS SDK를 최신 버전으로 업데이트하기만 하면 됩니다. 이 새로운 기능을 구축하는 동안 SQS 팀은 새로운 JSON 기반 유선 프로토콜을 사용하기 위해 코드를 변경할 필요가 없도록 주의를 기울였습니다.

예를 들어, AWS SDK for Java를 사용하여 벤치마크를 실행해서 기존 유선 프로토콜과 새 유선 프로토콜을 비교했습니다. 다른 AWS SDK에서도 비슷한 결과가 나올 것으로 예상됩니다. 5KB 메시지 페이로드에 대한 AWS 성능 테스트에 따르면, Amazon SQS용 JSON 프로토콜은 종단 간 메시지 처리 지연 시간을 최대 23% 절감하며 애플리케이션 클라이언트 측 CPU 및 메모리 사용량을 줄입니다. 이 수치는 실제 구현에 따라 달라지며 자체 애플리케이션에서 볼 수 있는 수치와 다를 수 있습니다.

가용성 및 요금
새로운 JSON 프로토콜에 대한 Amazon SQS 지원은 현재 SQS가 서비스되는 모든 AWS 리전에서 사용할 수 있습니다. 일반적으로 사용 가능한 모든 AWS SDK는 이제 AWS JSON for SQS APIs를 지원합니다. 이 최적화의 이점을 활용하려면 AWS SDK를 사용 가능한 최신 버전으로 업데이트하기만 하면 됩니다.

AWS JSON 프로토콜을 사용할 때 요금은 변동되지 않습니다. 자세한 내용은 Amazon SQS 요금을 참조하세요.

AWS 프로토콜의 작동 방식에 대해 자세히 알아보려면 AWS에서 서비스 및 SDK를 정의할 때 사용하는 언어인 Smithy를 살펴보세요.

정식 서비스를 시작한 지 거의 17년이 지난 지금, 저희는 자사의 가장 오래된 서비스를 중심으로 개선과 혁신을 해나가고 있습니다. 불과 몇 달 전, 새로 생성한 대기열에 대해 기본적으로 Amazon SQS 관리형 암호화 키(SSE-SQS)를 사용한 서버 측 암호화를 도입했으며, FIFO 대기열에 대한 높은 처리량 모드의 기본 할당량을 확장했고, 대기열 태그를 사용한 속성 기반 액세스 제어(ABAC) 지원을 발표했습니다. 최근에는 Amazon SQS에 새로운 API를 추가하여 프로그래밍 방식으로 DLQ(Dead Letter Queue) 리드라이브를 관리합니다. AWS에서는 항상 1일차입니다!

Amazon SQS를 사용할 때 AWS SDK를 업데이트하여 CPU 및 메모리 사용량을 개선하고 지연 시간을 줄이십시오.

Danilo