Applications

  • Simple Queue Service – Amazon SQS is a web service that gives you access to a message queue that can be used to store messages while waiting for a computer to process them. It’s a distributed queue system that enables web service applications to quickly and reliable queue messages that one component in the application generates to be consumed by another component. A queue is a temporary repository for messages that are awaiting processing.
    • Standard Queues – Amazon SQS offers standard as the default queue type. A standard queue lets you have a nearly-unlimited number of transactions per second. Standard queues guarantee that a message is delivered at least one.
    • FIFO – The FIFO queue complements the standard queue. The most important feature of this queue type are FIFO (first-in-first-out) delivery and exactly-once processing: the order in which messages are sent and received is strictly preserved and a message is delivered once and remains available until a consumer processes and deletes it; duplicates are not introducted into the queue.
      • FIFO queues also support message groups that allow multiple ordered message groups within a single queue. FIFO queues are limited to 300 transactions per second (TPS), but have all the capabilities of standard queues.
  • Simple Workflow Service – A web service that makes it easy to coordinate work across distributed application components. SWF enables applications for a range of use cases, including media processing, web application back-ends, business process workflows, and analytics pipelines, to be designed as a coordination of tasks.
    • Workflow Starters – An application that can initiate a workflow.
    • Deciders – Control the flow of activity tasks in a workflow execution.
    • Activity Workers – Carry out the activity tasks.
  • Simple Notification Service – A web service that makes it easy to setup, operate, and send notifications from the cloud to subscribers or other applications.
    • SNS allows you to group multiple recipients using topics. A topic is an “access point” for allowing recipients to dynamically subscribe for identical copies of the same notification. One topic can support deliveries to multiple endpoint types.
  • Elastic Transcoder – Media transcoding in the cloud to convert media files from their source format to a different format that will play on smartphones, tablets, PCs, etc.
  • API Gateway
    • Expose HTTPS endpoints to define a RESTful API
    • Scale effortlessly
    • Throttle requests to prevent attacks
    • You can log results to CloudWatch
    • API Gateway Caching – You can enable API caching in Amazon API Gateway to cache your endpoint’s response (performance). With caching, you can reduce the number of calls made to your endpoint and also improve the latency of the requests to your API. When you enable caching for a stage, API Gateway caches responses from your endpoint to a specific TTL period, in seconds. API Gateway then responds to the request by looking up the endpoint response from the cache instead of making a request to your endpoint.
    • Same Origin Policy – In computing, the same-origin policy is an important concept in the web application security model. Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, but only if both web pages have the same origin (the same domain name). This is done to prevent cross-site scripting (XSS) attacks.
      • Enforced by web browsers
      • Ignored by tools like PostMan and curl
    • Cross-Origin Resource Sharing (CORS) – CORS is one way the server at the other end (not the client code in the browser) can relax the same-origin policy. CORS is a mechanism that allows restricted resources (e.g. fonts) on a web page to be requested from another domain outside the domain from which the first resource was served. CORS is enforced by the client.
  • Kinesis – Amazon Kinesis is a platform on AWS to send your streaming data to. Kinesis makes it easy to load and analyze streaming data, and also providing the ability for you to build your own custom applications for your business needs.
    • Kinesis Streams – Data generated by producers is streamed to a shard, for 24 hours to 7 days, then analyzed by consumers (EC2 instances) then stored in a storage platform (DynamoDB, S3, EMR, or Redshift)
    • Kinesis Firehose – Data generated by producers is sent to Kenesis Firehose with no persistent storage, data must be analyzed during streaming, then output
    • Kinesis Analytics – Kinesis Analytics works with Kinesis Streams and Kinesis Firehose to analyze data on the fly inside either service then store the data in S3, Redshift, or Elasticsearch Cluster
  • Wed Identity Federation & Cognito
    • Web Identity Federation – Lets you give users access to AWS resources after they have successfully authenticated with a web-based identity provider like Amazon, Facebook, or Google. Follow successful authentication, the user receives an authentication code from the Web ID provider, which they can trade for temporary AWS security credentials.
    • Cognito User Pools – User Pools are user directories used to manage sign-up and sign-in functionality for mobile and web applications. Users can sign-in directly to the User Pool, or using Facebook, Amazon, or Google. Cognito acts as an Identity Broker between the identity provider and AWS. Successful authentication generates a JSON Web Token (JWT).
    • Cognito Identity Pools – Identity Pools provide temporary AWS credentials to access AWS services like S3 or DynamoDB.
  • Event Processing Patterns – One or more AWS services will automatically work in response to other AWS services
    • Event-Drive Architecture
    • Dead-Letter Queue (DLQ)
      • SNS – Messages published to a topic that fail to deliver are sent to an SQS queue; held for further analysis or reprocessing
      • SQS – Messages sent to SQS that exceed the queue’s maxReceieveCount are sent to a DLQ (another SQS queue)
      • Lambda – Result from failed asynchronous invocations; will retry twice and send to either an SQS queue or SNS topic
    • Fanout Pattern – A publisher sends a SNS message first to a topic and that message is replicated and pushed to multiple SQS queues
    • S3 Event Notifications – Enables you to receive notifications when certain events happen in your bucket. Notifications can be delivered to SQS queues, SNS topics, or a Lambda function.
      • Object created
      • Object removed
      • Object restored
      • RRS object lost
      • Replication