Thursday, 24 March 2022

Amazon Elastic Inference

 

  • Allows attaching low-cost GPU-powered inference acceleration to EC2 instances, SageMaker instances, or ECS tasks.
  • Reduce machine learning inference costs by up to 75%.

Common use cases

  • Computer vision
  • Natural language processing
  • Speech recognition

Concepts

  • Accelerator
    • A GPU-powered hardware device provisioned.
    • It is not a part of the hardware where your instance is hosted.
    • Uses AWS PrivateLink endpoint service to attach to the instance over the network.
  • Only a single endpoint service is required in every Availability Zone to connect Elastic Inference accelerator to instances.

Features

  • Supports TensorFlow, Apache MXNet, PyTorch, and ONNX models.
  • Can provide 1 to 32 trillion floating-point operations per second (TFLOPS) per accelerator.
  • The accelerator attached to each instance in an auto-scaling group scales accordingly to your application’s compute demand.

Pricing

  • You are charged for the accelerator hours you consume.

Amazon Comprehend

 

  • A managed Natural Language Processing (NLP) service that you can use to extract meaningful information from unstructured texts so you can analyze them in a human-like context.
  • It is an off-the-shelf solution that does not require deep machine learning expertise to get started.
  • Works with social media feeds, web pages, comments, product reviews, articles, or emails.
  • Can analyze texts in real-time by using built-in and custom models.

Common Use Cases

  • Sentiment analysis for social media posts
  • Organize documents by topics
  • Knowledge management and discovery
  • Classifies support tickets for better issue handling
  • Medical cohort analysis
  • Identify personally identifiable information (PII) in documents.

Amazon Comprehend generates insights in six (6) categories:

  • Entities
    • Detects and categorizes real-world objects like date, organization, person, quantity, brands, or even a title given to a song or movie.
    • Custom Entity Recognition 
      • Allows you to identify new entities that are not supported by the preset entities. 
      • This is useful if you want to extract entities that are specific only to your business, such as product codes.
  • Sentiment
    • Detects and classifies emotions into neutral, positive, negative, or mixed.
  • Language
    • Detects the language used in a text by using identifiers from RFC 5646. 
    • Useful for multilingual companies or applications.
  • Key Phrases
    • key phrase refers to a noun or a noun phrase that describes a particular thing.
  • Personally Identifiable Information (PII)
    • Determines sensitive information that could be used to identify a person, such as full name, birth date, bank account number, phone number, or email.
  • Syntax
    • Determine the different parts of speech used in the document, such as noun, pronoun, verb, adjective, adverb, etc.

Concepts

  • Each insight is associated with a confidence score.
  • confidence score is between 0 and 100, indicating the probability that a given prediction is correct.
  • A product review with a positive sentiment and a 0.99 confidence score highly suggest positive feedback from a customer.
  • Topic Modeling
    • Classifies a collection of documents according to its common subject.
    • For example, you can use Topic Modeling to categorize news articles into politics, sports, business, entertainment, etc. 
  • Comprehend custom
    • It helps non-experts in machine learning build and train their own NLP models suited to their specific needs.
    • Amazon Comprehend uses a machine learning method called transfer learning to train custom models.

Pricing

  • Charges are based on units where a single unit is equal to 100 characters. 
  • 3 unit (300 characters) minimum charge per request.
  • All insights except for Syntax analysis are charged for $0.0001 per 10M units. Syntax Analysis is charged for $0.00005 per 10M units.
  • Topic Modeling has a flat rate of $1.00 per job.

Amazon Augmented AI (A2I)

 

  • Amazon A2I is a service that helps you easily integrate human reviews in a machine learning workflow.
  • Simplifies managing a large number of human reviewers at scale.
  • Has direct integration with Amazon Textract and Amazon Rekognition

Common Use Cases:

  • Content Moderation where human oversight is required to judge uncertain results from a machine learning model.
  • Manual reviews of low confidence predictions due to documents that are scanned poorly or contain bad handwriting.

Concepts

  • Task type
    • Type of task to be reviewed.
    • Available task types
      • Key-value pairs extracted by Amazon Textract
      • Unsafe content flagged by Amazon Rekognition
      • Custom machine learning workflows
  • Worker task template
    • This template lets you define a set of instructions for your workers whenever they perform a task.
  • Worker types
    • Amazon Mechanical Turk – a crowdsourcing service that allows you to outsource jobs to an on-demand 24×7 distributed workforce online.
    • Private – A group of workers that you have sourced yourself (e.g., internal employees)
    • Vendor – Third-party vendors from AWS Marketplace that offer human review services.

Pricing

  • $0.02 – $0.03 per reviewed image from Amazon Rekognition
  • $0.02 – $0.03 per reviewed page from Amazon Textract
  • $0.02 – $0.08 per reviewed objects from Custom workflows

Amazon WorkSpaces

 

  • A fully-managed, secure cloud desktop service.

Features

  • You can create a standalone, managed directory for users, or you can integrate with your existing Active Directory environment so that your users can use their current credentials to obtain seamless access to corporate resources.
  • WorkSpaces provides a persistent desktop.
  • Offers a range of bundles that provide different hardware and software options to meet your needs. A bundle is a combination of both that image and the hardware from which a WorkSpace can be launched.
  • You can bring your existing Windows 7 and Windows 10 Desktop licenses to Amazon WorkSpaces and run them on hardware that is physically dedicated to you.
  • Whether you choose to launch one or many WorkSpaces, all you need to do is to choose the bundles that best meet the needs of your users, and the number of WorkSpaces that you would like to launch.
  • WorkSpaces provides a high quality desktop experience that helps you meet compliance and security requirements, including HIPAA-eligibility, SOC, FedRAMP, and PCI compliance.
  • WorkSpaces allows you to use your on-premises Microsoft Active Directory to manage your WorkSpaces and your end user credentials.
  • WorkSpaces provides each user with access to varying amounts of persistent storage (SSD Volumes) in the AWS cloud based on the bundle selected. Data that users store on the ‘user volume’ attached to the WorkSpace is automatically backed up to S3 on a regular basis.
  • Users can also use Amazon WorkDocs Drive.
  • WorkSpaces incorporates PC-over-IP (PCoIP) technology to provide a secure experience.
  • WorkSpaces supports the sharing of images across AWS accounts.
  • Deploy and manage applications for your WorkSpaces by using Amazon WorkSpaces Application Manager.
  • By default, users can personalize their WorkSpaces with their favorite settings for items such as wallpaper, icons, shortcuts, etc. An an administrator can lock down a WorkSpace.
  • By default, users are configured as local administrators of their WorkSpaces.
  • The user volume on a WorkSpace is backed up every 12 hours.
  • Each user you provision a WorkSpace for needs to exist in a directory, but you do not have to provision a directory yourself.
  • To ensure that your data is preserved, the volume sizes of either volume cannot be reduced after a WorkSpace is launched. You can increase the size of the root and user volumes attached to your WorkSpaces at any time.

Pricing

  • You are charged based on the bundle type and the number of Amazon WorkSpaces you launch.
  • WorkSpaces provides the flexibility to pay monthly or hourly.
    • With monthly billing, you pay a fixed monthly fee for unlimited usage during the month, which is best for workers who use their Amazon WorkSpace full-time or as their primary desktop.
    • With hourly billing you pay a small fixed monthly fee per WorkSpace to cover infrastructure costs and storage, and a low hourly rate for each hour the WorkSpace is used during the month.

AWS Step Functions

 

  • AWS Step Functions is a web service that provides serverless orchestration for modern applications. It enables you to coordinate the components of distributed applications and microservices using visual workflows.

Concepts

    • Step Functions is based on the concepts of tasks and state machines.
      • task performs work by using an activity or an AWS Lambda function, or by passing parameters to the API actions of other services.
      • finite state machine can express an algorithm as a number of states, their relationships, and their input and output.
    • You define state machines using the JSON-based Amazon States Language.
    • A state is referred to by its name, which can be any string, but which must be unique within the scope of the entire state machine. An instance of a state exists until the end of its execution.
      • There are 8 types of states:
        • Task state – Do some work in your state machine. AWS Step Functions can invoke Lambda functions directly from a task state.
        • Choice state – Make a choice between branches of execution
        • Fail state – Stops execution and marks it as failure
        • Succeed state – Stops execution and marks it as a success
        • Pass state – Simply pass its input to its output or inject some fixed data
        • Wait state – Provide a delay for a certain amount of time or until a specified time/date
        • Parallel state – Begin parallel branches of execution
        • Map state – Adds a for-each loop condition
      • Common features between states
        • Each state must have a Type field indicating what type of state it is.
        • Each state can have an optional Comment field to hold a human-readable comment about, or description of, the state.
        • Each state (except a Succeed or Fail state) requires a Next field or, alternatively, can become a terminal state by specifying an End field.
    • Activities enable you to place a task in your state machine where the work is performed by an activity worker that can be hosted on Amazon EC2, Amazon ECS, or mobile devices.
    • Activity tasks let you assign a specific step in your workflow to code running in an activity worker. Service tasks let you connect a step in your workflow to a supported AWS service.
    • With Transitions, after executing a state, AWS Step Functions uses the value of the Next field to determine the next state to advance to. States can have multiple incoming transitions from other states.
    • State machine data is represented by JSON text. It takes the following forms:
      • The initial input into a state machine
      • Data passed between states
      • The output from a state machine
    • Individual states receive JSON as input and usually pass JSON as output to the next state.

AWS Step Functions Diagram 1

    • state machine execution occurs when a state machine runs and performs its tasks. Each Step Functions state machine can have multiple simultaneous executions.
    • State machine updates in AWS Step Functions are eventually consistent.
    • By default, when a state reports an error, AWS Step Functions causes the execution to fail entirely.
      • Task and Parallel states can have a field named Retry and Catch to retry an execution or to have a fallback state.
    • The Step Functions console displays a graphical view of your state machine’s structure, which provides a way to visually check a state machine’s logic and monitor executions.

Features

    • Using Step Functions, you define your workflows as state machines, which transform complex code into easy to understand statements and diagrams.
    • Step Functions provides ready-made steps for your workflow called states that implement basic service primitives for you, which means you can remove that logic from your application. States are able to:
      • pass data to other states and microservices,
      • handle exceptions,
      • add timeouts,
      • make decisions,
      • execute multiple paths in parallel,
      • and more.
    • Using Step Functions service tasks, you can configure your Step Functions workflow to call other AWS services.
    • Step Functions can coordinate any application that can make an HTTPS connection, regardless of where it is hosted—Amazon EC2 instances, mobile devices, or on-premises servers.
    • AWS Step Functions coordinates your existing Lambda functions and microservices, and lets you modify them into new compositions. The tasks in your workflow can run anywhere, including on instances, containers, functions, and mobile devices.
    • Nesting your Step Functions workflows allows you to build larger, more complex workflows out of smaller, simpler workflows.
    • Step Functions keeps the logic of your application strictly separated from the implementation of your application. You can add, move, swap, and reorder steps without having to make changes to your business logic.
    • Step Functions maintains the state of your application during execution, including tracking what step of execution it is in, and storing data that is moving between the steps of your workflow. You won’t have to manage state yourself with data stores or by building complex state management into all of your tasks.
    • Step Functions automatically handles errors and exceptions with built-in try/catch and retry, whether the task takes seconds or months to complete. You can automatically retry failed or timed-out tasks, respond differently to different types of errors, and recover gracefully by falling back to designated cleanup and recovery code.
    • Step Functions has built-in fault tolerance and maintains service capacity across multiple Availability Zones in each region, ensuring high availability for both the service itself and for the application workflow it operates.
    • Step Functions automatically scales the operations and underlying compute to run the steps of your application for you in response to changing workloads.
    • AWS Step Functions has a 99.9% SLA.
    • AWS Step Functions enables access to metadata about workflow executions so that you can easily identify related resources. For example, your workflow can retrieve its execution ID or a timestamp indicating when a task started. This makes it easier to correlate logs for faster debugging and to measure workflow performance data.
    • It also supports callback patterns. Callback patterns automate workflows for applications with human activities and custom integrations with third-party services.
    • AWS Step Functions supports workflow execution events, which make it faster and easier to build and monitor event-driven, serverless workflows. Execution event notifications can be automatically delivered when a workflow starts or completes through CloudWatch Events, reaching targets like AWS Lambda, Amazon SNS, Amazon Kinesis, or AWS Step Functions for automated response to the event.

How Step Functions Work

    • Orchestration centrally manages a workflow by breaking it into multiple steps, adding flow logic, and tracking the inputs and outputs between the steps.
    • As your applications execute, Step Functions maintains application state, tracking exactly which workflow step your application is in, and stores an event log of data that is passed between application components. That means that if networks fail or components hang, your application can pick up right where it left off.

AWS Step Functions Diagram 2

  • Amazon States Language
    • A JSON-based, structured language used to define your state machine, a collection of states, that can do work (Task states), determine which states to transition to next (Choice states), stop an execution with an error (Fail states), and so on.
    • When creating a state machine, only the States field is required in the JSON document.
  • Security and Monitoring
    • AWS Step Functions can execute code and access AWS resources (such as invoking an AWS Lambda function). To maintain security, you must grant Step Functions access to those resources by using an IAM role.
    • Step Functions is a HIPAA eligible service and is also compliant with SOC, PCI, and FedRAMP.
    • Step Functions delivers real-time diagnostics and dashboards, integrates with Amazon CloudWatch and AWS CloudTrail, and logs every execution, including overall state, failed steps, inputs, and outputs.

Pricing

    • Step Functions counts a state transition each time a step of your workflow is executed. You are charged for the total number of state transitions across all your state machines, including retries.

Amazon SES

 

  • A cost-effective and scalable email service that enables you to send mail from within any application.
  • A regional service.
  • Amazon SES is for applications that need to send communications via email. Amazon SES supports custom email header fields, and many MIME types.
  • Amazon SNS is for messaging-oriented applications, with multiple subscribers requesting and receiving push notifications of messages via different available transport protocols, such as HTTP, Amazon SQS, and email. SNS does not support multimedia attachments.

Common Use Cases

  • Transactional emails
  • Marketing emails 
  • Mass email communications

Features

  • Flexible Deployment Options
    • By default, Amazon SES sends email from IP addresses that are shared with other Amazon SES customers. Shared addresses are a great option for many customers who want to start sending immediately with established IPs. These IP addresses’ reputation are monitored closely by AWS.
    • For customers that want to manage their own IP reputation, you can lease dedicated IP addresses to use with your Amazon SES account.
    • Amazon SES also supports Bring Your Own IP (BYOIP).
  • Sender Identity Management and Security
    • SES supports Domain Keys Identified Mail (DKIM), Sender Policy Framework (SPF), and Domain-based Message Authentication, Reporting and Conformance (DMARC).
  • Provides Sending Statistics
    • SES captures information on the number of sends, deliveries, opens, clicks, bounces, complaints, and rejections. This data is shared by default in the Sending Statistics report in the SES console.
    • Sending data can be stored in an Amazon S3 bucket or an Amazon Redshift database, sent to Amazon SNS for real-time notifications, or analyzed using Amazon Kinesis Analytics.
  • Reputation Dashboard
    • SES console includes a reputation dashboard that you can use to track issues that could impact the delivery of your emails, such as bounce and feedback loops for your account.
    • You can use CloudWatch to create alarms that notify you when your bounce or complaint rates reach certain thresholds.
  • Email Receiving
    • You can use SES to receive emails.
    • You can accept or reject mail based on the email address, IP address, or domain of the sender. 
    • Once SES has accepted the email, you can store it in an S3 bucket, execute custom code using a Lambda function, or publish notifications to SNS.

Methods of Sending Emails

  • Amazon SES console
  • SES Simple Mail Transfer Protocol (SMTP) interface
  • Amazon SES API

Testing Amazon SES

  • The Amazon SES sandbox is an area where new users can test the capabilities of SES. When your account is in the sandbox, you can only send email to verified identities. A verified identity is an email address or domain that you own.
  • In sandbox mode, there are limits on the volume of email that you can send each day, and on the number of messages that you can send each second.

Concepts

  • SES SMTP
    • You can connect directly to this SMTP interface from your applications, or configure your existing email server to use this interface as an SMTP relay.
    • SES allows you to create a private SMTP relay.
    • You need to generate SMTP credentials first before you can use the interface.
    • You can access your SES SMTP endpoint from your VPC privately via AWS PrivateLink through a VPC endpoint.
  • Email deliverability 
    • This is the percentage of your emails that arrive in your recipients’ inboxes.
  • Reputation
    • When it comes to email sending, reputation—a measure of confidence that an IP address, email address, or sending domain is not the source of spam—is important.
    • You build your reputation by sending high-quality content.
    • Excessive bounces and complaints negatively impact your reputation and can cause SES to reduce the sending quotas for your account, or terminate your SES account.
  • Bounce
    • If your receiver or email provider fails to deliver your message to the recipient, the receiver bounces the message back to SES.
    • SES notifies you of hard bounces and soft bounces that will no longer be retried.
  • Complaint
    • If the email provider concludes that you are a spammer, and SES has a feedback loop set up with the email provider then the email provider will send the complaint back to SES.
  • Global suppression list
    • SES global suppression list is a list of recipient email addresses that have recently caused a hard bounce for any Amazon SES customer. 
    • If you try to send an email through SES to an address that is on the suppression list, the call to SES succeeds, but the email is treated as a hard bounce instead of SES attempting to send it.
  • Deliveries
    • This metric tells us if SES successfully delivered the email to the recipient’s mail server.
  • Opens
    • This metric tells us if the recipient received the message and opened it in their email client.
  • Clicks
    • This metric tells us if the recipient clicked one or more links in the email.
  • Configuration sets
    • Groups of rules that you can apply to the emails you send.
      • Event publishing – SES can track the number of send, delivery, open, click, bounce, and complaint events for each email you send. You can use event publishing to send information about these events to other AWS services.
      • IP pool management – If you lease dedicated IP addresses, you can create groups of these addresses, called dedicated IP pools. You can then associate these dedicated IP pools with configuration sets.
  • Dedicated IP Pools
    • If you lease several dedicated IP addresses, you can use the dedicated IP pools feature to create groups of those IP addresses. You can then associate each pool with a configuration set. 
    • When you send emails using a configuration set, those emails are only sent from the IP addresses in the associated pool.
    • A common scenario is to create one pool of dedicated IP addresses for sending marketing communications, and another for sending transactional emails. Your sender reputation for transactional emails is then isolated from that of your marketing emails.

Email Authentication Methods

  • Authenticating Email with Sender Policy Framework (SPF) – an email validation standard that’s designed to prevent email spoofing. Domain owners use SPF to tell email providers which servers are allowed to send email from their domains.
  • Authenticating Email with Domain Keys Identified Mail (DKIM) – a standard that allows senders to sign their email messages with a cryptographic key. Email providers then use these signatures to verify that the messages weren’t modified by a third party while in transit.
  • Complying with DMARC – an email authentication protocol that uses SPF and DKIM to detect email spoofing. In order to comply with DMARC, messages must be authenticated through either SPF or DKIM, or both.

Email Sending Requests

  • If the request to SES succeeds, SES returns a success response to the sender. This message includes the message ID, a string of characters that uniquely identifies the request.
  • If the request to SES fails, SES responds to the sender with an error and drops the email.

Dedicated IP Addresses vs Amazon SES IP Addresses

Benefit

Shared IP addresses

Dedicated IP addresses

Ready to use with no additional setup

Yes

No

Reputation managed by AWS

Yes

No

Good for customers with continuous, predictable sending patterns

Yes

Yes

Good for customers with less predictable sending patterns

Yes

No

Good for high-volume senders

Yes

Yes

Good for low-volume senders

Yes

No

Additional monthly costs

No

Yes

Complete control over sender reputation

No

Yes

Isolate reputation by email type, recipient, or other factors

No

Yes

Provides known IP addresses that never change

No

Yes

 

Security

  • AWS uses in-house anti-spam technologies to filter messages that contain poor-quality content. They also scan all messages that contain attachments to check for viruses and other malicious content.
  • Integrates with AWS KMS.
  • Supports TLS 1.2, TLS 1.1 and TLS 1.0 for TLS connections.

Pricing

  • When you call SES from an application hosted in an EC2 instance, you can send 62,000 messages per month at no charge. You pay a fee for every 1,000 emails you send after that.
  • You do not get free sends from other platforms.
  • The first 1,000 emails you receive are free. Succeeding emails will cost you.
  • You pay for dedicated IP addresses you lease.
  • You are charged for each BYOIP you bring to SES.
  • You also pay for outgoing data charges per GB.

Amazon Simple WorkFlow (Amazon SWF)

 

  • A fully-managed state tracker and task coordinator in the Cloud. You create desired workflows with their associated tasks and any conditional logic you wish to apply and store them with SWF.

Features

  • SWF promotes a separation between the control flow of your background job’s stepwise logic and the actual units of work that contain your unique business logic.
  • SWF manages your workflow execution history and other details of your workflows across 3 availability zones.
  • SWF lets you write your application components and coordination logic in any programming language and run them in the cloud or on-premises.
  • SWF is highly scalable. It gives you full control over the number of workers that you run for each activity type and the number of instances that you run for a decider.
  • SWF also provides the AWS Flow Framework to help developers use asynchronous programming in the development of their applications.

Concepts

  • Workflow
    • A set of activities that carry out some objective, together with logic that coordinates the activities.
    • Workflows coordinate and manage the execution of activities that can be run asynchronously across multiple computing devices and that can feature both sequential and parallel processing.
    • Each workflow runs in an AWS resource called a domain, which controls the workflow’s scope.
    • An AWS account can have multiple domains, each of which can contain multiple workflows, but workflows in different domains can’t interact.
    • When you register an activity to a workflow, you provide information such as a name and version, and some timeout values based on how long you expect the activity to take.
  • Activity Task
    • An activity task tells an activity worker to perform its function.
    • SWF stores tasks and assigns them to workers when they are ready, tracks their progress, and maintains their state, including details on their completion.
    • To coordinate tasks, you write a program that gets the latest state of each task from SWF and uses it to initiate subsequent tasks.
    • Activity tasks can run synchronously or asynchronously. They can be distributed across multiple computers, potentially in different geographic regions, or they can all run on the same computer.
    • Activity tasks for a running workflow execution appear on the activity task list, which is provided when you schedule an activity in the workflow.
    • If you don’t specify a task list when scheduling an activity task, the task is automatically placed on the default task list.
  • Lambda task
    • Executes a Lambda function instead of a traditional SWF activity.
  • Decision task
    • A Decision task tells a decider that the state of the workflow execution has changed so that the decider can determine the next activity that needs to be performed. The decision task contains the current workflow history.
    • SWF assigns each decision task to exactly one decider and allows only one decision task at a time to be active in a workflow execution.
  • Workflow Starter
    • Any application that can initiate workflow executions.
  • Activity Worker
    • An activity worker is a program that receives activity tasks, performs them, and provides results back.
    • Implement workers to perform tasks. These workers can run either on cloud infrastructure, or on your own premises.
    • Different activity workers can be written in different programming languages and run on different operating systems.
    • Assigning particular tasks to particular activity workers is called task routing. Task routing is optional.
  • Decider
    • A software program that contains the coordination logic in a workflow.
    • It schedules activity tasks, provides input data to the activity workers, processes events that arrive while the workflow is in progress, and ultimately ends the workflow when the objective has been completed.
    • Both activity workers and the decider receive their tasks by polling the SWF service.
  • Workflow Execution History
    • The workflow execution history is composed of events, where an event represents a significant change in the state of the workflow execution.
    • SWF informs the decider of the state of the workflow by including, with each decision task, a copy of the current workflow execution history.
  • Polling
    • Deciders and activity workers communicate with SWF using long polling.

Workflow Execution

  1. Write activity workers that implement the processing steps in your workflow.
  2. Write a decider to implement the coordination logic of your workflow.
  3. Register your activities and workflow with Amazon SWF.
  4. Start your activity workers and decider.
  5. Start one or more executions of your workflow. Each execution runs independently and you can provide each with its own set of input data. When an execution is started, Amazon SWF schedules the initial decision task. In response, your decider begins generating decisions which initiate activity tasks. Execution continues until your decider makes a decision to close the execution.
  6. Filter and view complete details of running as well as completed executions.

SWF provides service operations that are accessible through HTTP requests.

Endpoints

  • To reduce latency and to store data in a location that meets your requirements, SWF provides endpoints in different regions.
  • Each endpoint is completely independent. When you register an SWF domain, workflow or activity, it exists only within the region you registered it in.

AWS Flow Framework

  • An enhanced SDK for writing distributed, asynchronous programs that can run as workflows on SWF.
  • It is available for the Java and Ruby programming languages, and it provides classes that simplify writing complex distributed programs.

Pricing

  • You pay for workflow executions when you start them and for each 24-hour period until they are completed. The first 24 hours of workflow execution are free.
  • You pay for “markers” (custom workflow execution log entries), start timers, or receive signals of additional tasks generated from a workflow.
  • Data transferred between SWF and other AWS services within a single region is free of charge. Data transferred between SWF and other AWS services in different regions will be charged at Internet Data Transfer rates on both sides of the transfer. First 1 GB of transferred data is free.

SQS vs SWF

  • SQS offers reliable, highly-scalable hosted queues for storing messages while they travel between applications or microservices.
  • SWF is a web service that makes it easy to coordinate work across distributed application components.
  • SWF API actions are task-oriented. SQS API actions are message-oriented.
  • SWF keeps track of all tasks and events in an application. SQS requires you to implement your own application-level tracking.
  • SWF offers several features that facilitate application development, such as passing data between tasks, signaling, and flexibility in distributing tasks.

Limits

  • Maximum registered domains – 100
  • Maximum workflow and activity types – 10,000 each per domain
  • Maximum open workflow executions – 100,000 per domain
  • Maximum open activity tasks – 1,000 per workflow execution
  • Maximum workflow execution time – 1 year
  • Each workflow execution history can grow up to 25,000 events
  • Maximum task execution time – 1 year
  • Schedule up to 100 activity tasks in one decision
  • Maximum execution history retention is 90 days.