진취적 삶
섹션 17 디 커플링 애플리케이션: SQS,SNS,Kinesis,Active MQ 본문
SQS
SQS 대기열에 메시지를 보내는 주체를 생산자 (1 or many)
수신해야 하는 대상을 소비자
SQS - Standard Queue
완전 관리형 서비스이며 애플리케이션을 분리하는데 사용
무체한 처리량
메시지 대기열에 있을수 있는 시간은 기본 4일 최대 14일
지연시간 짧다
SQS 메시지는 작아야한다.
중복 메시지가 있을수 있다
SQS - Producing messages
- produced to SQS using the SDK
- 메시지는 소비자가 삭제할때까지 persised
SQS - Consuming Messages
- cunsumers ( running on EC2 instances , servers, or AWS lambda)
SQS with Auto Scaling Group ( ASG)
cloudWatch 를 통해서 queue 길이에 대한 알람을 받고
auto scaling 작동시켜서 SQS queue 처리량 증가
SQS message visibility timeout
메시지 가시성 시간 초과는 기본값 30초
30초 동안 메시자 처리되어야 함
가시성 시간 초과 기간동안 처리하지 않으면 해당 메시지가
다음 처리 할때 나타나니깐 메시지가 두번 처리될수 있음
메시지 처리 시간 변경하는 changeMessageVisibility 가 있음
Amazon SQS - Long Polling
소비자가 대기열에 메시지 요청 대기열에 아무것도 없으면 대기
- 지연시간 줄이기 가능
- 요청 횟수 감소
Amazon SQS - FIFO Queue
선입 선출
보낸 순서대로 받으니깐 순서에 보장이됨
중복을 제거해줌
처리량에 제한이 있다
queue 만들때 이름 뒤에 .fifo를 붙여야 생성가능
Amazon SNS
이벤트 생산자는 한 sns 주제에만 메시지를 보낸다.
구독자는 해당 주제에만 메시지를 받는다.
주제별로 최대 1,200 만 이상의 구독자 가능
계정당 가질수 있는 주제의 수는 100,000
kinesis data firehose는 지원하지만 kinesis data streams 는 지원안함
how to publish
- topic publish ( using the SDK )
- create a topic
- create a subscription
- publish to the topic
- direct publish ( for mobile apps SDK)
- create a platform application
- create a platform endpoint
- publish to the platform endpoint
SNS + SQS : Fan out
- push once in SNS , receive in all SQS queues that are subscribers
- fully decoupled, no data loss
- 메시지를 sns 주제로 전송한뒤 다수의 SQS 대기열로 팬 아웃 한다.
sns -message filtering
kinesis
- make it easy to collect , process ,and analyze streaming data in real-time
kinesis Data Streams : capture, process, and store data streams
kinesis data firehose : load data streams into AWS data stores
kinesis data analytics : analyze data streams with SQL or Apache Flink
Kinesis Data Streams
시스템에서 큰 규모의 데이터 흐름을 다루는 서비스
생산자가 kinesis data stream에 데이터를 전송하고 데이터는 거기에 잠시 머물면서
여러 소비자에게 얽힌다.
보존기간은 1~ 365 days
사용량이 예측 할수 없다면 on-demand mode
사용량이 예측가능하면 provisioned mode
용량 제한은 샤드의 수에 의해 결정
kinesis Data Firehose
- fully managed service , 관리 필요없고 ,자동 용량 조정
Kinesis Data Streams + kinesis Data firehose=실시간 데이터를 S3와 Redshift로 로딩하기 위한 완벽한 기법 조함
kinesis Data streams vs firehose
Kinesis Data Streams :
- 데이터를 대규모로 수집할때 쓰는 스트리밍 서비스
- 생산자와 소비자 커스텀 코드 사용
- supports replay capability
kinesis Data firehose
수집 서비스로 데이터를 아마존 s3나 레드시프트 , ES, 3rd party 로 스트리밍
near real-time
ordering data into kinesis
파티션 키를 해시해서 어느 샤드로 보낼지 결정
데이터가 골고루 분산
ordering data into SQS
SQS FIFO 대기열은 하나뿐이다.
그룹 ID를 생성
SQS ,SNS ,Kinesis 차이점
SQS :
소비자가 SQS 대기열에서 메시지를 요청해서 데이터를 가져오는 모델
데이터를 삭제해서 다른 소비자가 읽지 못하게 함
작업자나 소비자 수는 제한이 없다. 처리량을 프로비저닝할 필요 없다.
순서를 보장하려면 fifo queues
메시지 지연 기능 있음
SNS :
다수의 구독자에게 데이터를 푸시하면 메시지의 복사본을 받게 됨
데이터가 제대로 전달되지 않으면 데이터를 잃은 가능성 있음
게시 구독 모델
처리량 프로비저닝 할 필요 없다.
FAN OUT 아키텍처 패턴 이용할경우 SQS와 결합 가능
Kinesis:
standard : pull data
enhanced-fan out :push data
실시간 빅 데이터 분석 ,ETL 등에 활용
프로비전 모드 :원하는 사드양 미리 지정
온디멘드 모드 :샤드 수가 Kinesis 데이터 스트림에 따라 자동으로 조정
Amazon MQ
애플리케이션을 클라우드에 마이그레이션 하는 경우에는
애플리케이션을 다시 구축하고 싶지 않고 MQTT, AMQP 등과 같은 기존에 쓰던 프로토콜을 사용하고 싶을 때
RabbitMQ 와 ActiveMQ 두가지 기술을 위한 관리형 메시지 브로커 서비스
확장성이 크지 않고 서버 문제 있을수 있음
Queue 기능과 topice 주제 기능
'AWS SAA' 카테고리의 다른 글
섹션 25 identity and Access Management (IAM) - 고급 (0) | 2023.07.16 |
---|---|
섹션 26: aws 보안 및 암호화 : KMS,SSM Parameter store,CloudHSM,Shield , WAF (0) | 2023.07.16 |
섹션 18 aws의 컨테이너 :ECS ,Fargate,ECR 및 EKS (0) | 2023.07.16 |
섹션 19 솔루션 설계자 관점의 서버리스 개요 (0) | 2023.07.16 |
섹션 20: 서버리스 솔루션 아키텍처 토론 (0) | 2023.07.16 |