AWS Cloud Practitioner Certification

11.Cloud Integration Section

Index

  1. Introduction
  2. SQS
  3. SNS
  4. Kinesis
  5. 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!
SQS Simple Queue Service

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 –

  1. 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
  2. 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.

Published by

Unknown's avatar

sevanand yadav

software engineer working as web developer having specialization in spring MVC with mysql,hibernate

Leave a comment