Computer/AWS

[AWS Certified Solutions Architect] Decoupling(SQS/SNS/Kinesis)

SenJ 2022. 3. 22. 10:58

Decoupling applications : can scale independently from our application

SQS

- Umlimited throughput, Unlimited number of messages in queue

- Default retention of messages : 4 days(max14 days)

- Limitation of 256kb per message sent

- Producing messages : Using SDK

- Consuming Messages : Poll SQS for messages (receive up to 10 messages at a time) > Process the messages > Delete the messages

- Encryption : In-flight: HTTPS API / At-rest : KMS

- Access Controls : IAM policies

- SQS Access Policies : cross account access, allowing other services..

Message Visibility Timeout : After a message is polled by a consumer, it becomes invisible to other consumers

- by default 30 secs = the message has 30 seconds to be proccessed > after timeout is over the message will be visible in SQS

Dead Letter Queue : Set a threshold of how many times a message can go back to the queue, After the MaximumReceives threshold is exceeded, the message goes into a dead letter queue (DLQ)

Delay Queue : Delay a message up to 15 mins(default 0), consumers don't see during the period

Long Polling : wait for messages to arrive if ther are none in the queue

- decreases the number of API calls made to SQS= increasing the efficiency and low-latency

- can be 1~20 seconds

FIFO Queue : 300msg/s without batching, 3000msg/s with batching

- messages are processed in order by the consumer

- group ID

**메세지를 여러 work node가 선점해가면서 처리하게 하는 서비스. 메세지 수에 제한이 없음. FIFO를 사용하여 선입선출 및 원하는 work node에게 처리를 맡길 수 있음

SNS : publisher and subscribers

- each subscriber to the topic will get all the messages

- up to 10,000,000 subscriptions per topic, 100,000 topics limit

- subscriber : SQS, HTTP/HTTPS, Lambda, Emails, SMS, Mobile notifications

- Encryption : In-flight: HTTPS API / At-rest : KMS

- Access Controls : IAM policies

- SQS Access Policies : cross account access, allowing other services..

SNS + SQS : Fan out : send same messages to all consumer to process different ways

SNS FIFO Topic : only SQS FIFO queues can be a subscriber

SNS Message fitering : JSON policy used to filter messages sent to SNS topic's subscriptions

**한번에 여러 worknode에게 메세지를 전달하는 서비스. 유튜브 구독을 하면 새 영상이 올라올때 알람이 오는 것과 같음. 최대 메세지 수의 제한이 있으며 CloudWatch alarm과 같이 묶임. Fan-out을 통해 같은 메세지를 여러 큐에서(=여러 worknode) 에서 각각 다르게 처리할 수 있음.

Kinesis : collect, process, analyze streaming data in real-time

-Kinesis Data Streams: capture, process, and store data streams

billing per shard provisioned, retention between 1~365days, ability to reprocess(replay) data, data that shares the same partition goes to the same shard

-Kinesis Data Firehose: load data streams into AWS data stores

auto scaling, serverless, pay for data going through Firehose, Near Real-time, no data storage, send to 3rd-party/AWS S3, Redshift, Amazon ElasticSearch/ HTTPs

-Kinesis Data Analytics: analyze data streams with SQL or Apache Flink

real-time analytics on Kinesis Streams using SQL, auto scaling,

-Kinesis Video Streams: capture, process, and store video streams

** 빅데이터 실시간 처리. Datastream은 흐름 제어를 해주는 서비스로 shard의 프로비져닝을 필요로 하며 데이터를 1년까지 보관할 수 있다. Firehose는 데이터를 저장소에 보관할 수 있도록 해주며 데이터 보관기능은 없다. DataAnalytics 는 Kineses에서 받은 데이터를 sql로 정제하여 다시 Kinesis로 보낼 수 있음.

출처 : Udemy Ultimate AWS Certified Solution Architecture Associate 2022