11.Cloud Integration Section
Index
- Introduction
- SQS
- SNS
- Kinesis
- Amazon MQ
Introduction
When we start deploying multiple applications, they will inevitably need
to communicate with one another
• There are two patterns of application communication

- Synchronous between applications can be problematic if there are sudden spikes of traffic
- What if you need to suddenly encode 1000 videos but usually it’s 10?
- In that case, it’s better to decouple your applications:
- using SQS: queue model
- using SNS: pub/sub model
- using Kinesis: real-time data streaming model (out of scope for the exam)
- These services can scale independently from our application!

Amazon SQS – Standard Queue
- Oldest AWS offering (over 10 years old)
- Fully managed service (~serverless), use to decouple applications
- Scales from 1 message per second to 10,000s per second
- Default retention of messages: 4 days, maximum of 14 days
- No limit to how many messages can be in the queue
- Messages are deleted after they’re read by consumers
- Low latency (<10 ms on publish and receive)
- Consumers share the work to read messages & scale horizontally
- Abbr for important parameters : queues are a kind of transitory storage unit so two parameter that differentiates it’s quality is : Storage capacity and retention time
Amazon SNS (push mechanism)
What if you want to send one message to many receivers?
- The “event publishers” only sends message to one SNS topic
- As many “event subscribers” as we want to listen to the SNS topic notifications
- Each subscriber to the topic will get all the messages
- Up to 10,000,000 subscriptions per topic, 100,000 topics limit
- SNS Subscribers can be:
- HTTP / HTTPS (with delivery retries – how many times)
- Emails, SMS messages, Mobile Notifications
- SQS queues (fan-out pattern), Lambda Functions (write-your-own integration)
Amazon Kinesis
For the exam: Kinesis = real-time big data streaming
• Managed service to collect, process, and analyze real-time streaming
data at any scale
- Too detailed for the Cloud Practitioner exam but good to know:
- Kinesis Data Streams: low latency streaming to ingest data at scale from hundreds of thousands of sources
- Kinesis Data Firehose: load streams into S3, Redshift, ElasticSearch, etc…
- Kinesis Data Analytics: perform real-time analytics on streams using SQL
- Kinesis Video Streams: monitor real-time video streams for analytics or ML
Amazon MQ
- SQS, SNS are “cloud-native” services, and they’re using proprietary protocols from AWS.
- Traditional applications running from on-premise may use open protocols such as: MQTT, AMQP, STOMP, Openwire, WSS
- When migrating to the cloud, instead of re-engineering the application to use SQS and SNS, we can use Amazon MQ
- Amazon MQ = managed Apache ActiveMQ
- Amazon MQ doesn’t “scale” as much as SQS / SNS
- Amazon MQ runs on a dedicated machine (not serverless)
- Amazon MQ has both queue feature (~SQS) and topic features (~SNS)
Question – Difference between managed service and server-less service?
Different views on web –
- if a service or product is “Serverless”, that means that it is also “Managed”. But not all managed services are server-less; server-less is a special kind of managed service. -cloud guru
- There isn’t script definition of these 2 words. Serverless and Fully managed are very close and share the main concept: don’t worry about the infrastructure, focus on your business value.(- Stackoverflow)
- Serverless, means “pay as you use”. No traffic, you pay nothing, lot of traffic, the scaling is automatic and you pay according with the traffic. Example Lambda in AWS
- Managed service have a minimal number of VM/node up and you pay for these, traffic or not. However, you have nothing to worry about: patching, updates, networking, backups, HA, redundancy(…) are managed for you.