Amazon SQS, Amazon SNS
SQS (Simple Queue Service)
AWS 설명 : 마이크로 서비스, 분산 시스템 및 서버리스 애플리케이션을 쉽게 분리하고 확장할 수 있도록 지원하는 완전관리형 메시지 대기열 서비스입니다.
- AWS에서 제공하는 큐 서비스
- 다른 서비스에서 사용할 수 있도록 메세지를 잠시 저장하는 용도
- 최대 사이즈 : 256kb, 최대 14일 까지 저장 가능
- 주로 AWS 서비스들의 느슨한 열결을 수립하기 위해 사용
- 하나의 메세지를 한번만 처리
- AWS에서 제일 오래된 서비스
- 구조
![](https://velog.velcdn.com/images/ebab_1495/post/477d8108-3dcf-48d1-947f-c074f6c22894/image.png)
- 다음과 같이 모든 EC2에서 장애가 발생하더라도 SQS에 저장된 상태이므로 정상 작동하는 EC2가 연결이 된다면 이어서 메시지 전달
Amazon SNS (Simple Notification Service)
AWS 설명 : 애플리케이션 간 (A2A) 또는 애플리케이션과 사용자 간 (A2P) 통신 모두를 위한 완전관리형 메시징 서비스입니다.
- Pub/Sub(발행/구독) 기반의 메시징 서비스
- 하나의 토픽을 여러 주체가 구독
- 토픽에 전달된 내용을 구독한 모든 주체가 전달받아 처리
- 다양한 프로토콜로 메시지 전달 가능
- 이메일
- HTTP / HTTPS
- SQS
- SMS
- Lambda
- 하나의 메시지를 여러 서비스에서 처리
- 여러 구조
![](https://velog.velcdn.com/images/ebab_1495/post/c4815edd-ebdc-46a9-8016-d897736ce4ad/image.png)
- 하나의 주문을 여러 서비스에서 각각 다르게 처리하는 상황
![](https://velog.velcdn.com/images/ebab_1495/post/1057088f-9d3a-4848-85a7-149451eec9c8/image.png)
- 팬 아웃 아키텍쳐 : 하나의 메세지를 각각 다른 주체들이 알아서 처리
![](https://velog.velcdn.com/images/ebab_1495/post/1b70e35a-6239-45ee-9ac7-bbed74db7676/image.png)
비교
![](https://velog.velcdn.com/images/ebab_1495/post/5d52dd03-4dbe-4548-9d25-bc5fbd326d57/image.png)
Amazon Kinesis
AWS 설명 : Kinesis를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있으므로 적시에 통찰력을 확보하고 새로운 정보에 신속하게 대응할 수 있습니다. Amazon Kinesis는 모든 규모의 스트리밍 데이터를 비용 효율적으로 처리할 수 있는 핵심 기능과 더불어 애플리케이션 요구 사항에 가장 적합한 도구를 선택할 수 있는 유연성을 제공합니다.
- AWS에서 스트리밍 데이터를 수집하고 분석 처리하는 서비스
- 4가지 서비스
- Kinesis Data Stream : 스트리밍 데이터를 수집하는 서비스
- Kinesis Data Firehose : 데이터를 수집, 변환하여 공급자(S3, RedShift,HTTP 등)에게 전송하는 서비스
- Kinesis Data Analytics : 실시간 스트리밍 데이터를 분석하는 서비스
- Kinesis Videos Streams : 재생, 분석 및 기계 학습을 위해 미디어 스트림을 캡처, 처리 및 저장
- 구조
![](https://velog.velcdn.com/images/ebab_1495/post/930e2449-00c0-4922-8e7f-a6a8e9e4a499/image.png)
![](https://velog.velcdn.com/images/ebab_1495/post/d56fcd4c-501a-417f-9617-dd0ff859a55e/image.png)
Amazon API Gateway
AWS 설명 : 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터일 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API는 애플리케이션이 백엔드 서비스의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 ‘정문’ 역할을 합니다. API Gateway를 사용하면 실시간 양방향 통신 애플리케이션이 가능하도록 하는 RESTful API 및 WebSocket API를 작성할 수 있습니다. API Gateway는 컨테이너식 서버리스 워크로드 및 웹 애플리케이션을 지원합니다.
- AWS의 서비스 및 외부 서비스를 위한 API를 생성/관리해주는 서비스
- HTTP/Websocket 프로토콜 지원
- Serverless 서비스
- 다양한 AWS와 연동
- ex. HTTP API 형식으로 Lambda 혹은 DynamoDB 연동
- 어플리케이션 백엔드를 HTTP API로 연결
- API KEY를 사용해 보안 관리와 사용량 추적 가능
- 구조
![](https://velog.velcdn.com/images/ebab_1495/post/8e822959-a85a-4ce0-a09a-e9e12a87d506/image.png)