AWS 전문가를 위한 Google Cloud: 애플리케이션 서비스

업데이트: 2017년 3월 20일

애플리케이션 다양한 부분 간 통신을 촉진하기 위해 Amazon과 Google이 제공하는 서비스를 비교합니다. 이 문서에서는 각 플랫폼에서 사용할 수 있는 메시징 서비스를 주로 살펴봅니다.

메시지

서비스 모델 비교

메시지 큐의 경우 Amazon은 Amazon Simple Queue Service(SQS)를 제공하며 Google은 Pub/Sub를 제공합니다. Amazon SQS의 기능은 다음과 같이 Pub/Sub 기능에 매핑됩니다.

기능 Amazon SQS Google Pub/Sub
데이터 소스 주제
데이터 목적지 구독자
배포 지역 리전 전체
메시지 보관 최대 14일 최대 7일
큐당 최대 이동 메시지 수 표준 120,000개, FIFO의 경우 20,000개 풀 무제한(할당량 적용), 푸시 1,000개
최대 페이로드 크기 256KB 10MB
팬아웃 Amazon SNS 사용 기본적으로 지원됨
데드 레터 큐
지연 큐 아니요
결제 큐 소유자가 지불 구독자가 지불

Amazon Simple Queue Service(SQS) 및 Amazon Simple Notification Service(SNS)

Amazon Simple Queue Service(SQS)에서 작업은 사용자가 만드는 메시지 큐를 중심으로 합니다. 큐로 메시지를 보내면 클라이언트 애플리케이션이 이러한 메시지를 큐에서 가져옵니다. 여러 구독자가 하나의 메시지를 소비할 수 있는 팬아웃 시스템을 구현하기 위해 푸시 알림을 다양한 기기 및 끝점에 전송하는 Amazon Simple Notification Service(SNS)와 Amazon SQS를 결합할 수 있습니다. Amazon SQS 큐에서 Amazon SNS 주제를 구독하면 메시지가 주제에 게시되는 경우 Amazon SNS가 구독한 큐에 Amazon SQS 메시지를 보냅니다.

Amazon SQS는 표준 큐와 FIFO 큐, 두 가지 메시지 큐 유형을 제공합니다. 표준 큐는 높은 처리량을 제공하지만 엄격한 메시지 순서 또는 정확한 1회 전송을 보장하지 않습니다. 반대로 FIFO 큐는 이러한 부분을 보장하지만 표준 큐에 비해 처리량이 낮습니다.

Pub/Sub

Pub/Sub는 메시지 큐, 내보내기 기반 메시지 전송, 대용량 스트리밍 메시지를 하나의 전역 서비스로 결합합니다. 여기에는 게시/구독 모델이 사용됩니다. 즉, 게시자 애플리케이션이 메시지를 만들어 주제로 보내고, 구독자 애플리케이션이 구독을 만들어 주제로부터 메시지를 수신합니다. Pub/Sub는 게시/구독 기반 서비스이므로 여러 메시지 소스가 하나의 주제를 타겟팅할 수 있는 팬인, 그리고 팬아웃을 모두 기본적으로 지원합니다.

가져오기 기반 메시지 전송을 지원하는 Amazon SQS와 달리 Pub/Sub는 내보내기 기반과 가져오기 기반 메시지 전송을 모두 지원합니다. 내보내기 기반 전송에서는 Pub/Sub가 구독자 애플리케이션에 요청하여 메시지를 전송합니다. 가져오기 기반 전송의 경우 Amazon SQS와 비슷하게 구독자 애플리케이션이 Pub/Sub 서버에 요청하여 메시지를 가져옵니다.

Pub/Sub는 Amazon SQS 표준 큐와 마찬가지로 메시지 순서를 보장하지 않습니다. 엄격한 메시지 순서가 필요한 경우 다양한 방법으로 이 제약을 완화할 수 있습니다. 또한 Amazon SQS 표준 큐와 마찬가지로 Pub/Sub는 정확한 1회 전송을 지원하지 않습니다. 중복 메시지를 처리하기 위해 코드는 멱등적으로 메시지를 취급해야 합니다.

Amazon SNS와 달리 Pub/Sub의 주 용도는 휴대전화 또는 웹페이지와 같은 최종 사용자 인터페이스와의 직접적인 통신보다는 애플리케이션 및 시스템 통합입니다. 이 유형의 클라이언트-서버 통신의 경우 여러 휴대기기에 푸시 알림을 전송하기 위한 클라우드 솔루션인 Firebase 클라우드 메시징을 사용할 수 있습니다.

메시지 수명 주기

Amazon SQS 및 Pub/Sub 모두 큐 또는 구독에서 메시지를 제거하기 위해서는 사용자가 메시지를 확인해야 합니다.

Amazon SQS

Amazon SQS에는 공개 상태 시간 제한이라는 기능이 있습니다. 프로세스에서 처리를 위한 메시지를 획득하면 큐를 처리하는 다른 프로세스에서는 메시지를 볼 수 없게 됩니다. 아래 그림에서는 메시지를 처리할 때 공개 상태 시간 제한이 어떻게 작동하는지 보여줍니다.

Amazon SQS 공개 상태 시간 제한

그림 1: Amazon SQS 공개 상태 시간 제한

메시지를 획득하면 공개 상태 시간 제한이 카운트다운을 시작합니다. 이 카운트다운 기간 동안 소비 애플리케이션이 메시지를 처리합니다. 처리가 공개 상태 시간 제한 이내에 성공하는 경우 소비 애플리케이션은 호출하여 메시지를 삭제할 수 있습니다. 애플리케이션에서 공개 상태 시간 제한이 만료되기 전에 이 호출을 하지 않는 경우 메시지를 다른 프로세스에서 다시 볼 수 있게 됩니다.

Pub/Sub

이와 비슷하게 Pub/Sub에는 확인 기한 기능이 있습니다. 기본적으로 기한은 10초지만 최대 10분까지 연장할 수 있습니다. 가져오기 구독의 경우 구독자는 메시지별로 즉석에서 기한을 수정하여 주어진 메시지를 처리하기 위한 시간을 줄이거나 늘릴 수 있습니다.

Pub/Sub 확인 기한

그림 2: Pub/Sub 확인 기한

메시지 전송 보장

Amazon SQS에서는 표준 큐와 선입선출(FIFO) 큐라는 2가지 유형의 큐를 사용할 수 있습니다. Amazon SQS 표준 큐와 Pub/Sub는 모두 각 메시지가 한 번 이상 전송된다는 것을 보장합니다. 또한 종종 메시지가 중복될 수 있다는 점과 메시지 전송 순서를 보장하지 않는다는 점에 있어서도 두 서비스는 비슷합니다.

Amazon SQS FIFO 큐는 순서에 따른 정확한 1회 메시지 전송을 보장하여 2가지 문제를 모두 완화합니다. FIFO 큐에는 초당 300회 트랜잭션 제한이 적용됩니다.

Pub/Sub는 FIFO 스타일의 중복 삭제와 메시지 순서 보장을 제공하지 않지만 애플리케이션 수준에서 이 기능을 달성할 수 있습니다. 자세한 내용은 메시지 순서를 참조하세요.

비용

Amazon SQS 및 Amazon SNS

Amazon SQS의 가격은 Amazon SQS에서 나가는 데이터 전송과 요청의 수를 기반으로 산정됩니다. 모든 Amazon SQS API 호출은 요청으로 계산됩니다. 하나의 요청에는 1~10개의 메시지가 포함될 수 있으며, 최대 총 페이로드는 256KB입니다. 페이로드의 각 64KB 청크는 단일 요청으로 결제됩니다.

Amazon SNS의 가격은 게시하는 알림의 수, 전송하는 알림의 수, 주제 및 구독을 관리하기 위한 추가 API 호출을 기반으로 산정됩니다. 전송 가격은 엔드포인트 유형별로 다릅니다.

Pub/Sub

Pub/Sub의 가격은 메시지 전송에 사용되는 데이터 볼륨의 양을 기반으로 책정됩니다. 볼륨은 게시, 가져오기, 내보내기 작업의 메시지와 속성 데이터를 기반으로 계산됩니다. 자세한 내용은 Pub/Sub 가격 책정을 참조하세요.

다음 단계

AWS 전문가를 위한 다른 Google Cloud 문서를 확인하세요.

각각의 메시징 서비스를 사용하여 Google Cloud와 AWS 간에 데이터는 전달하는 방법에 대한 안내는 Cloud Functions를 사용하여 Google Cloud Pub/Sub를 AWS SNS 주제에 연결을 참조하세요.