728x90
Simple Queue Service(SQS)
SQS 메시지를 대기하게 하여 앱 간에 느슨한 결합을 제공
- SQS는 Poll 방식으로 메시지를 전송 (Consumer 가 메시지를 요청하여 받는 방식)
- Consumer가 메시지를 소비하면 SQS Queue에서는 메시지가 삭제됨
SQS - DLQ , Dead Letter Queue
- 일반적으로 메시지는 처리될 때까지 게속 메시지를 보냄
- 이 경우 다른 메시지처리까지 영향을 줄 수 있음
- 일정 횟수 이상 시도 후 처리되지 못한 메시지는 DLQ로 이동하여 보관
SQS - 제한 시간 초과/표시 (Visibility Timeout)
- 메시지 소비자가 대기열에서 메시지를 수신하고 처리하면 메시지는 게속 대기열에 있음
- 연결 문제 또는 메시지 소비자의 앱 문제로 인해 메시지를 다시 수신해야 할 수 있기에 sqs에서 메시지를 자동으로 삭제 하지 않음
- 소비자가 메시지를 수신하고 처리한 후 대기열에서 이 메시지를 삭제해야함
- 제한 시간 초과는 메시지 소비자가 메시지를 수신 후 다른 소비자가 메시지를 다시 처리하지 못하게 하기 위한 기간 (SQS에서 다른 소비자가 메시지를 수신하고 처리할 수 없도록 차단하는 기간)
- 메시지의 기본 제한 시간은 30초 (0초 ~ 12시간
SQS - Short Polling , Long Polling
- 폴링은 SQS queue로부터 메시지를 가져오는 방법 (consumer가 메시지를 요청)
- short polling (default) = queue가 비어 있으면 메시지 소비자의 메시지 요청을 즉시 반환함
- long polling = queue에 메시지가 비어있으면 메시지가 도착할 때까지 or 메시지 수신 대기시간이 완료 될때까지 메시지 요청을 기다림
- 메시지 수신 대기시간은 1초 부터 최대 20초까지 설정 가능
- Long polling을 사용한 빈 응답의 수를 제거함으로 sqs 사용 비용을 절감할 수 있음
SNS (Simple Notification Service)
- publisher 에서 subscriber 로 메시지를 전송한다.
- SQS 처럼 consumer가 요청하는 polling 이 아니라 producer가 메시지를 consumer에게 전송하는 push 방식이다.
- 전송 순서
- SNS에서 주제(Topic) 생성
- 구독 생성 (메시지를 받는 사람)
- 메시지 생성
- 구독자에게 메시지 전달
SNS + SQS Fan Out
- SNS를 사용하면 앱에서 정기적으로 업데이트를 확인하거나 폴링할 필요 없이 푸시 메커니즘을 통해 다수의 구독자에게 메시지를 보낼 수 있음
- SQS는 분산 앱에서 폴링 모델을 통해 메시지를 교환하는데 사용되는 메시지 대기열 서비스
이 서비스를 통해 송신 구성요소와 수신 구성요소를 분리함
SNS FIFO Topic
- SNS FIFO 주제 (topic) 는 메시지가 주제에 게시된 정확한 순서로 구독된 SQS FIFO 대기열에 메시지를 전달함
- SQS FIFO 대기열을 사용하면 대기열의 소비자는 메시지가 대기열로 전송된 정확한 순서로 메시지를 수신
- 예) 은행 거리로그, 주식 시세 표시기, 항공편 추적기, 가격 업데이트 , 뉴스 브로드캐스팅, 인벤토리 관리
Kinesis
- 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석 하는 서비스
- 비디오, 오디오 , 앱 로그 , iot telmetry data 등 실시간 데이터를 수집
- 데이터가 수집된 후에야 처리를 시작할 수 있는 것이 아니라 데이터가 수신되는대로 처리 및 분석
- Kinesis 서비스 유형
- Kinesis Data Streams = 데이터 스트림을 수집, 저장 및 처리
- Kinesis Data Firehose = 데이터 스트림을 AWS 데이터 스토어에 로드
- Kinesis Data Analytics = SQL 또는 Apache Flink로 데이터 스트림 분석
- Kinesis Video Stream = 비디오 스트림을 수집, 저장 및 처리
Kinesis Data Streams
- 데이터 스트림을 캡처, 처리 및 저장할 수 있는 스트리밍 데이터 서비스
- 실시간 서비스
- Amazon DynamoDB , Aurora , Cloudwatch 와 같은 AWS 서비스의 기존 리소스에서 데이터를 보낼 수 있음
- 스트리밍 중인 데이터를 lambda, data firehose 등으로 전송함
- 데이터 스토리지가 있음 (1~365일 사이의 기간으로 데이터 보관)
Kinesis Data Firehose
- 스트리밍 ETL(extract, transform , load) 솔루션
- 스트리밍 데이터를 데이터 스토어와 분석 도구에 로드
- 스트리밍 데이터를 캡처하고 변환한 후 s3, redshift , opensearch service 및 splunk 로 로드하여 비즈니스 인텔리전스 도구 및 대시보드를 통해 거의 실시간으로 분석
- 거의 실시간 서비스 (near realtime)
Kinesis Data Analytics
- SQL 또는 Apache Flink 를 사용하여 실시간으로 스트리밍 데이터를 변환하고 분석
- Apache Flink는 데이터 스트림 처리를 위한 오픈 소스 프레임워크 및 엔진
- Amazon Kinesis data streams 및 kinesis data firehose 스트리밍 소스로부터의 데이터 수집 가능
Amazon MQ
- Apache Active MQ 및 Rabbit MQ용 관리형 메시지 브로커 서비스
- JMS 및 NMS 와 같은 업계 표준 API와 AMQP , STOMP , MQTT , WebSocket 등을 비롯한 메시징 프로토콜을 지원
- 활성 / 대기 브로커 배포모드를 지원하여 고가용성 및 장애조치 가능
- 클라우드 기반의 앱은 SNS , SQS 메시지 서비스를 사용하는 것을 추천 (스케일링, 고가용성, 더 나은 성능, 더 많은 기능 등)
- 기존에 activemq, rabbitmq등의 앱을 온프레미스에서 사용하고 있고 코드의 변경없이 클라우드로 마이그레이션을 하는 경우 사용한다.
API Gateway
개발자가 API를 생성 , 게시 ,유지관리, 모니터링 및 보안유지를 할 수 있게 하는 서비스
Restful API , WebSocekt API를 지원함
AWS Step Functions & Amazon AppFlow
AWS Step Functions
- 시각적 워크플로 (workflow) 구축 서비스
- 앱의 구성요소를 단계별로 배열 하여 다단계 앱을 구축하고 실행
- 예) 웹 앱: 사용자 등록 프로세스와 로그인 인증 구현
Amazon AppFlow
Saas 앱과 AWS간에 안전하게 데이터를 전송할 수 있게 해주는 서비스
saas 앱과 데이터를 교환하기 위해 aws 서비스용 api 커넥터를 구축하고 관리할 필요가 없다.
728x90
'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글
관리 및 거버넌스 (0) | 2023.08.24 |
---|---|
보안 및 자격 증명 (0) | 2023.08.24 |
데이터 분석 서비스 (0) | 2023.08.22 |
데이터베이스 (0) | 2023.08.21 |
글로벌 전송 (0) | 2023.08.17 |