0% found this document useful (0 votes)
7 views101 pages

AWS Application Integration Overview

The document provides an overview of AWS Application Integration, focusing on services like Amazon SQS and Amazon SNS. It explains how these services facilitate communication between distributed systems, manage messaging queues, and orchestrate workflows. Key features and concepts such as message types, delivery mechanisms, and workflow orchestration using Amazon SWF are also discussed.

Uploaded by

nikhilkotra1043
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views101 pages

AWS Application Integration Overview

The document provides an overview of AWS Application Integration, focusing on services like Amazon SQS and Amazon SNS. It explains how these services facilitate communication between distributed systems, manage messaging queues, and orchestrate workflows. Key features and concepts such as message types, delivery mechanisms, and workflow orchestration using Amazon SWF are also discussed.

Uploaded by

nikhilkotra1043
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

BCSE355L

AWS Solutions Architect

Dr. [Link]
Assistant Professor Senior Grade II
School of Computer Science and Engineering
Vellore Institute of Technology, Vellore
BCSE355L -AWS Solutions Architect

Module 7

2
AWS Application Integration
• AWS Application Integration is a group of managed cloud services offered by Amazon Web Services that
allow developers to connect, coordinate, and integrate multiple applications and microservices.
• These services remove the need for complex custom integration code and make communication between
distributed systems much easier.
• Application integration is the process of getting independently built software systems to work together
without manual intervention.
• Modern application design encourages the flexible exchange of data between applications for increased
efficiency, modularity, and reusability.
• Application integration allows your developers to build applications that reuse existing services and
systems. This way, they can do more with less coding.
• It also facilitates automation, as applications can communicate with each other for complex enterprise
workflows.
AWS Application Integration
AWS Application Integration
Amazon SQS (Simple Queue Service)
• Simple Queue Service is a distributed messaging queue that helps in solving
producer-consumer connectivity for distributed systems.
• SQS enables your services to send and store messages to a queue at any volume
without losing messages even if the consumer is down.
• Messaging queue is a technique of sending context about a process between
services in a web application.
• Amazon Simple Queue Service (SQS) is a fully managed message queuing
service that enables you to decouple and scale microservices, distributed systems,
and serverless applications.
Amazon SQS (Simple Queue Service)
One service, say Service A , is producing messages and another service
,say Service B , is consuming messages.
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)
How SQS Works:
1.A producer (sender) creates a message and sends it to an SQS queue.
[Link] message is stored in the queue until it’s delivered to a consumer (receiver).
[Link] a consumer retrieves the message from the queue, it becomes invisible to other
consumers for a user-defined period of time (the visibility timeout). This prevents other
consumers from processing the same message and ensures that the message is processed
at least once.
[Link] the consumer processes the message, it sends a delete request to SQS to remove
the message from the queue.
Amazon SQS (Simple Queue Service)
Types of SQS queues
1. Standard Queue:
• Messages in the queue are not ordered. This means messages sent in one order might not
be received in the same order.
• Support an unlimited number of messages/transactions per second (TPS).
• Messages might get duplicated to ensure At-least once delivery.
Amazon SQS (Simple Queue Service)
Types of SQS queues
[Link] (First In First Out)
• FIFO is used for scenarios where either or both the order of event and duplicate message can not
be tolerated.
• Messages in the queue maintain the Order in which the message is being pushed to the queue.
• This can support a max of 30,000 messages with batch and 3,000 without batching.
Messages are never duplicated in this queue.
Amazon SQS (Simple Queue Service)
Features of SQS:
[Link] least Once Delivery: This means a message once sent into the queue will be consumed
at least once. In a standard queue, there can be duplicates and in FIFO it will be consumed
exactly once no duplicates are allowed.
[Link]: When a consumer fails it does not impact the queue. Since it is decoupled all
the messages that are in the queue will remain and can be processed once the service is up
again.
[Link] Locking: When a message is being consumed it becomes unavailable to other
consumers. If the message fails the message will again become visible. This is part of
the visibility timeout.
Amazon SQS (Simple Queue Service)
Features of SQS:
4. Unlimited messages: There are no limits on the number of messages you can send in
the queue. So in case, there is a spike in requests the queue will handle the spike just
fine.
5. Batches: We Can send 10 messages at a time with no extra cost.
6. Secure: Secured by AWS IAM (identity and access management) and uses HTTPS and
TLS.
7. reliability: Queue is stored in a single AWS Region with multiple redundant
Availability zones (AZ). So, if a single region is affected it does not make messages
unavailable.
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)
Long Polling
• The consumer waits up to 20 seconds for a message before the request returns, reducing empty
polling.
• It lowers cost and improves efficiency by delivering messages as soon as they arrive.
Visibility Timeout
• Once a consumer receives a message, it becomes hidden from others during processing.
• The timeout must balance avoiding duplicate processing and minimizing delays if a consumer
fails.
Dead Letter Queue (DLQ)
• A DLQ stores messages that repeatedly fail processing in the main queue.
• It enables troubleshooting and prevents problematic messages from blocking the system.
Amazon SQS (Simple Queue Service)
s
Amazon SQS (Simple Queue Service)
Basic Amazon SQS architecture
s
Amazon SQS (Simple Queue Service)
Basic Amazon SQS architecture

Distributed queues
• There are three main parts in a distributed messaging system: the components of your
distributed system, your queue (distributed on Amazon SQS servers), and
the messages in the queue.
• In the following scenario, your system has several producers (components that send
messages to the queue) and consumers (components that receive messages from the
queue). The queue (which holds messages A through E) redundantly stores the
messages across multiple Amazon SQS servers.
Amazon SQS (Simple Queue Service)
Message lifecycle
Amazon SQS (Simple Queue Service)
Amazon SQS (Simple Queue Service)

• Component 1 sends Message A to the SQS queue, making it available for consumption.

• Component 2 retrieves Message A and the visibility timeout period begins, hiding the

message from others.

• Component 2 processes the message and deletes it before the visibility timeout expires,

removing it permanently from the queue.


Amazon SQS (Simple Queue Service)
Amazon SNS (Simple Notification Service)
• Amazon Simple Notification Service (Amazon SNS) is a managed service that provides
message delivery from publishers to subscribers (also known as producers and
consumers).
• Publishers communicate asynchronously with subscribers by sending messages to a topic,
which is a logical access point and communication channel.
• Clients can subscribe to the Amazon SNS topic and receive published messages using a
supported endpoint type, such as Amazon Data Firehose, Amazon SQS, AWS Lambda,
HTTP, email, mobile push notifications, and mobile text messages (SMS).
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
• Amazon SQS (Simple Queue Service)-Delivers messages to an SQS queue for later processing.
• AWS Lambda-Invokes a Lambda function automatically when a message is published.
• Amazon Data Firehose-Streams messages directly into data destinations like Amazon S3, Amazon
Redshift, or Amazon OpenSearch.
• HTTP/HTTPS Endpoint-Sends messages as HTTP POST requests to a web server or application
endpoint.
• Email -Sends message content via email to subscribers.
• SMS-Sends messages as text messages to mobile numbers.
• Mobile Push Notifications-Sends messages to mobile apps through push notification services
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Message Filtering
• Message filtering in Amazon SNS allows subscribers to receive only the
messages they are interested in, based on message attributes.
• This helps reduce unnecessary message delivery and processing for subscribers.
Fanout
• Fan-out is an SNS design pattern where a single message published to one SNS
topic is replicated and sent to multiple subscribers or endpoints
simultaneously.
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
• Various AWS services like Compute (EC2, Lambda), Storage (S3), Databases (RDS,

DynamoDB), Network, Developer, and Management tools generate events.

• Events are published to an SNS topic.

• The SNS topic replicates the message and sends it to all subscribers

• Amazon SQS Queue – for queue-based processing.

• AWS Lambda Function – serverless functions triggered by the message.

• HTTP/S EC2 Endpoints – messages delivered via HTTP requests to your servers
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)

• Pub/Sub –Message publishing and Processing service


• SMS
• Mobile Push
Amazon SNS (Simple Notification Service)
Amazon SNS features and capabilities
Application-to-application messaging
Application-to-application messaging supports subscribers such as Amazon Data Firehose
delivery streams, Lambda functions, Amazon SQS queues, HTTP/S endpoints, and AWS
Event
Fork Pipelines. This allows for efficient message delivery in event-driven architectures.
Application-to-person notifications
Application-to-person notifications provide user notifications to subscribers such as mobile
applications, mobile phone numbers, and email addresses.
Standard and FIFO topics
FIFO topics ensure strict message ordering, message grouping, and deduplication, allowing
FIFO and standard queues to subscribe for message processing. Standard topics are used
when message ordering and possible duplication are not critical, supporting all delivery
protocols for broader use cases.
Amazon SNS (Simple Notification Service)
Amazon SNS features and capabilities
• Message durability
Amazon SNS uses a number of strategies that work together to provide message durability:
• Published messages are stored across multiple, geographically separated servers and data
centers.
• If a subscribed endpoint isn't available, Amazon SNS runs a delivery retry policy.
• To preserve any messages that aren't delivered before the delivery retry policy ends, you
can create a dead-letter queue.
• Message archiving, replay, and analytics
Amazon SNS (Simple Notification Service)
Amazon SNS (Simple Notification Service)
Amazon SWS (Simple Workflow Service)
• Amazon SWF is a workflow orchestration service used to coordinate and manage
tasks across multiple distributed components.
• Amazon Simple Workflow Service (SWF) is an innovative web service that
streamlines the coordination of work across distributed application components.
• This service is particularly versatile, enabling the design and implementation of
applications for a diverse array of use cases.
• These include media processing, web application back-ends, business process
workflows, and analytics pipelines.
• Amazon Simple workflow services (Amazon SWF) are task-based Application
interfaces, which are programmed to make it easy to coordinate different works
across distributed application components.
Amazon SWS (Simple Workflow Service)
Concepts of Amazon SWF
Amazon SWS (Simple Workflow Service)
Concepts of Amazon SWF
•Domains- Domains in SWF represent a namespace for your workflow executions. They
serve as containers that isolate and organize your workflows, ensuring logical separation
and management.
•Workflow Types- A workflow type defines the structure and behavior of a particular
workflow. It specifies the tasks, their order, and any conditions or dependencies. Workflow
types act as templates that guide the execution of individual workflow instances.
•Activities- Activities represent the individual units of work within a workflow. They
encapsulate the logic required to perform specific tasks. Activities can be implemented as
code running on EC2 instances, containers, or any other computing environment.
Amazon SWS (Simple Workflow Service)
Concepts of Amazon SWF
•Tasks- Tasks are instances of activities that are executed as part of a workflow. SWF
schedules tasks based on their dependencies and availability. It ensures that tasks are
performed once and not duplicated, providing reliability and consistency.
•Deciders- Deciders play a crucial role in workflow orchestration. They determine the
next steps based on the current state of the workflow and external events. Deciders
evaluate the workflow’s logic, make decisions, and schedule appropriate tasks.
Amazon SWS (Simple Workflow Service)
Amazon SWS (Simple Workflow Service)
When a customer places an order, this workflow begins. The tasks are as follows:
[Link] the order.
[Link] the order is valid, charge the customer.
[Link] the payment is made, ship the order.
[Link] the order is shipped, save the order details.
This workflow requires sequential actions: an order must be verified before a credit card
can be charged after the credit card is successfully charged, an order must be shipped; and
after the order is shipped, it must be recorded. Although Amazon SWF supports distributed
processes, these tasks can be performed from different locations. Different programming
languages and tools can also be used to write programmatic tasks
Amazon SWS (Simple Workflow Service)
Execution of Amazon SWF Workflow-Example
Amazon SWS (Simple Workflow Service)
Here’s how the execution of this workflow would look using Amazon SWF:
•Workflow Initiation-
• The customer places an order on the online shopping platform, triggering the start of the workflow
execution.
• The application triggers the workflow by utilizing the SWF API to commence the execution of a
workflow, including essential input data like the specific order details from the customer.
•Task Assignment
• SWF assigns tasks to workers based on their availability and predefined task prioritization.
• For example, the first task assigned could be the inventory check task, followed by payment
verification, order fulfillment, and shipping.
•Activity Execution-
• Workers retrieve assigned tasks from SWF and execute the related activities.
• In the inventory check task, the worker checks the availability of the ordered items in the inventory
system.
• In the payment verification task, the worker verifies the customer’s payment information and ensures
the payment is successful.
• In order fulfillment, the worker gathers the ordered items, prepares them for shipment, and generates an
invoice.
• In the shipping task, the worker arranges the package shipment to the customer’s specified address.
Amazon SWS (Simple Workflow Service)
•Decision Making
• A decider component, responsible for workflow orchestration, receives notifications from SWF
about task completions.
• The decider evaluates the current state of the workflow and makes decisions on the next steps
based on the completed activities and external events.
• For example, the decider may trigger a payment retry task or cancel the order if the payment
verification fails.
•Task Scheduling
• The decider schedules the next set of tasks based on the workflow’s logic and conditions.
• For example, if the payment verification is successful, the decider schedules the order fulfillment
task. If not, it may trigger a payment failure task or initiate a refund process.
•Workflow Completion
• The workflow continues with task assignment, activity execution, decision-making, and task
scheduling until all the required tasks are completed.
• Once all tasks are finished, the workflow instance is considered complete, and the customer’s
order is successfully processed.
Amazon SWS (Simple Workflow Service)
Core Components of AWS SWF
Amazon SWS (Simple Workflow Service)
Core Components of AWS SWF
Workflows:
A workflow represents a series of coordinated and connected activities or tasks that together achieve a
specific goal or business process. Workflows in SWF are composed of individual tasks that need to be executed
in a specific order.
Actors:
Actors are entities that participate in the workflow. They can be external applications, processes, or human
workers. Actors interact with SWF to execute tasks, report task completion, and receive instructions about the
next steps in the workflow.
Tasks:
Tasks are the individual units of work in a workflow. Each task represents a specific action that needs to be
performed.
Tasks can be categorized into two main types:
•Activity Tasks: These represent the actual units of work that need to be accomplished. Actors, such as workers
or applications, execute activity tasks.
•Decision Tasks: These are tasks that prompt a decision-making process. A decider, another actor in the system,
evaluates the current state of the workflow and decides which activity task to execute next.
Amazon SWS (Simple Workflow Service)
Core Components of AWS SWF

Domains:
A domain is a container for a set of related workflows and their associated actors, tasks, and deciders. It
provides a way to isolate and manage different sets of workflows within a given AWS account.
Deciders and Workers:
•Deciders: Deciders are responsible for making decisions about what activities to execute next in the
workflow. They evaluate the state of the workflow and determine the appropriate next steps.
•Workers: Workers are responsible for executing the activity tasks in the workflow. They perform the actual
work defined by the activities.
Amazon SWS (Simple Workflow Service)
How Amazon SWF works
Amazon SWS (Simple Workflow Service)
How Amazon SWF works
[Link] Web Server Front End accepts a video URL from a user and starts the workflow execution in Amazon SWF.
[Link] SWF creates a workflow that consists of multiple tasks such as:
1. Encode video
2. Add DRM protection (Digital Rights Management)
3. Decision tasks to control flow
3.A Decider service monitors the workflow state and makes decisions on:
1. What task to run next
2. When to run it
3. In what order tasks should be executed
[Link] Decider uses long polling to get tasks from SWF and returns decisions after evaluating the workflow history.
[Link] dispatches tasks to appropriate workers. Each type of work is handled by a separate worker:
1. Encoding worker handles Encode Tasks
2. DRM worker handles Adding DRM Tasks
[Link] also use long polling to get pending tasks from SWF.
[Link] processing the task, each worker returns the results back to SWF.
[Link] stores Execution History, which keeps a log of:
1. Input data (video URL)
2. Each task completion status
3. Overall execution completion
[Link] all tasks are completed successfully, the workflow finishes.
Amazon SWS (Simple Workflow Service)
What Does Simple Workflow Do?
Amazon SWS (Simple Workflow Service)
What Does Simple Workflow Do?

Simple Workflow provides you with the infrastructure that you need to implement
workflows such as the one above. It does all of the following (and a lot more):
•Stores metadata about a Workflow and its component parts.
•Stores tasks for Workers and queues them until a Worker needs them.
•Assigns tasks to Workers.
•Routes information between executions of a Workflow and the associated Workers.
•Tracks the progress of Workers on Tasks, with configurable timeouts.
•Maintains workflow state in a durable fashion.
Amazon SWS (Simple Workflow Service)
Features of AWS SWF
Amazon SWS (Simple Workflow Service)
Features of AWS SWF
•Workflow Management: AWS SWF allows for defining, executing, and managing complex workflows.
You can design workflows that include multiple steps, with the ability to manage the execution order and
dependencies between tasks.
•Task Coordination and Execution Control: It provides robust task coordination, ensuring that tasks are
executed in the right order, without overlap, and according to the workflow logic. You can control various
aspects such as task assignment, prioritization, timeouts, and retries.
•Scalability and High Throughput: AWS SWF is designed to be highly scalable, supporting a large
number of workflow executions and tasks. This makes it suitable for applications that need to handle high
volumes of workflow tasks efficiently.
•Reliability and Fault Tolerance: SWF guarantees that tasks are tracked and executed at least once. If a
task fails or times out, the service can automatically retry it based on the defined policies, ensuring the
reliability of the workflow process.
•Integration with AWS Ecosystem: It integrates seamlessly with other AWS services, allowing you to
leverage the capabilities of services like AWS Lambda, Amazon EC2, Amazon S3, and Amazon RDS
within your workflows.
•Monitoring and Logging: SWF provides integration with Amazon CloudWatch for monitoring workflow
and task metrics. This allows for setting alarms and notifications based on workflow performance.
Amazon SWS (Simple Workflow Service)
Best Practices for Using AWS SWF
•Clearly Define Workflow Logic: Ensure that your workflow logic is well-defined and modular.
Break down complex processes into smaller, manageable tasks. This makes it easier to understand,
update, and debug your workflows.
•Handle Failures Gracefully: Design your workflow to handle failures and exceptions effectively.
Implement retry logic and timeouts for activities to manage transient issues. Use Dead Letter Queues
(DLQs) for activities that fail repeatedly to analyze and address the root cause.
•Optimize Task Assignment: Utilize SWF’s task lists effectively to distribute tasks across your
worker processes. This ensures load balancing and efficient processing of tasks.
•Secure Your Workflows: Implement appropriate IAM (Identity and Access Management) policies to
control access to your SWF resources. Ensure that only authorized entities can start workflows,
complete tasks, or access workflow data.
•Test Thoroughly: Test your workflows extensively under various scenarios, including failures and
edge cases. Automated tests and staging environments are recommended for ensuring the reliability of
your workflows
AWS Step Functions
• AWS Step Functions allow you to coordinate multiple AWS services into serverless
workflows.
• A workflow is represented as a state machine, defined using the Amazon States Language
(a JSON-based declarative language).
• Step Functions handle the execution of these workflows, ensuring that tasks are
performed in the correct sequence with built-in fault tolerance and retry mechanisms.
• Its integration capabilities are extensive, supporting connections with Amazon EC2,
Amazon ECS, on-premise servers, Amazon API Gateway, and Amazon SQS queues, to
name a few.
• This ensures that workflows can be comprehensive and interact with a broad ecosystem
of AWS services.
AWS Step Functions
• With AWS Step Functions, you can create workflows, also called State machines, to
build distributed applications, automate processes, orchestrate microservices, and create
data and machine learning pipelines.
• Step Functions is based on state machines and tasks. In Step Functions, state machines
are called workflows, which are a series of event-driven steps. Each step in a workflow is
called a state. For example, a Task state represents a unit of work that another AWS
service performs, such as calling another AWS service or API. Instances of running
workflows performing tasks are called executions in Step Functions.
• The work in your state machine tasks can also be done using Activities which are
workers that exist outside of Step Functions
AWS Step Functions
Key characteristics include:
Serverless Nature: No need to provision or manage servers.
State Management: Tracks the state of each workflow step, making it easy to
handle branching logic and retries.
Integration: Works seamlessly with AWS services like Lambda, S3,
DynamoDB, API Gateway, SageMaker, and more.
Visual Interface: Provides a graphical view of your workflows, making it easy
to debug and monitor.
AWS Step Functions
Types of Step Functions:
Standard Workflows:
• Best for long-running and durable workflows.
• Stores detailed execution history.
• Supports retries and error handling over extended periods (up to one year).
• Use Case: Loan processing, data pipeline orchestration, or multi-step transaction
workflows.
Express Workflows:
• Designed for high-volume and short-duration tasks.
• Optimized for performance and cost but provides less detailed execution history.
• Use Case: Event-driven workflows like processing IoT sensor data or streaming logs.
AWS Step Functions
Core Components of AWS Step Functions
State Machine: A state machine is a definition of the workflow. It consists of states,
transitions, and rules for execution. Common state types include:
Flow States (Flow states control the flow of execution of the steps)
• Choice State: Adds conditional branching logic.
• Wait State: Delays the workflow for a specified time.
• Parallel State: Executes multiple branches concurrently.
• Map state: runs child workflows for each item in a dataset
Task State: Performs a unit of work (e.g., invoking a Lambda function).
Fail/Success State: Defines workflow completion
AWS Step Functions
Core Components of AWS Step Functions
AWS Step Functions
Steps to Create a State Machine
[Link] in to your AWS account
2. In the search box type Step Functions and click on it.
AWS Step Functions
Steps to Create a State Machine
3. Now click on State Machines
AWS Step Functions
Steps to Create a State Machine
4. click on Create State Machine
AWS Step Functions
Steps to Create a State Machine
5. Under Define state machine selects Author with code snippets, and under Type
select Standard
AWS Step Functions
Steps to Create a State Machine
6. Now insert the JSON code, on the basis of which your state machine (workflow) will be created
AWS Step Functions
Steps to Create a State Machine
7. Now you will see based on the JSON code a State diagram has been created on the right side
AWS Step Functions
Steps to Create a State Machine
8. Now click on Next
AWS Step Functions
Steps to Create a State Machine
9. Under Specify details provide any name to your state machine, and under Permissions select Create a role,
by this AWS will automatically create a role for the permissions required by State Machines for you
AWS Step Functions
Steps to Create a State Machine
10. Let everything default, scroll down and click on Create State machine
AWS Step Functions
Steps to Create a State Machine
11. Now you shall see a message prompting that the State machine successfully created
AWS Step Functions
Example: Determine if the returned number is greater than , less than, or equal to a
specified number.
{ "GreateThan": {
"Comment": "A simple Step Functions state machine", "Type" : "Task",
"StartAt": "AddNumbers", "Resource": "ARN:OF:greater-than-lambda",
"States": { "Next": "FinalState"
"AddNumbers": {
},
"Type": "Task",
"LessThan": {
"Resource": "ARN:OF:add-numbers",
"Next": "AnswerState" "Type" : "Task",
}, "Resource": "ARN:OF:less-than-lambda",
"AnswerState": { "Next": "FinalState"
"Type" : "Choice", },
"Choices": [ "EqualTo": {
{ "Type": "Fail",
"Variable": "$.number", "Cause": "No Matches!"
"NumericGreaterThan": 500, },
"Next": "GreateThan" "FinalState": {
}, "Type": "Task",
{ "Resource": "ARN:OF:final-state-lambda",
"Variable": "$.number", "End": true
"NumericLessThan": 500, }
"Next": "LessThan"
}
}
}
],
"Default": "EqualTo"
AWS Step Functions
Common Use Cases for AWS Step Functions
Microservices Orchestration: Coordinate independent services to complete a larger task.
For example, in e-commerce, validate orders, charge payments, and notify customers using
different microservices.
Data Processing Pipelines: Automate workflows for processing large datasets. For
instance, retrieve data from S3, clean and transform it using Lambda, and store results in a
database.
Machine Learning Workflows: Automate ML model training, testing, and deployment
using SageMaker integrated with Step Functions.
ETL (Extract, Transform, Load): Automate ETL tasks like extracting data from multiple
sources, transforming it, and loading it into a data warehouse.
DevOps Automation: Automate CI/CD pipelines, including running tests, building
applications, and deploying them to environments.
Batch Job Processing: Orchestrate jobs that require multiple steps, such as video
transcoding or report generation.
AWS Well-Architected Framework
• The AWS Well-Architected Framework is a set of best practices and guidelines to
help you design, build, and operate reliable, secure, efficient, and cost-effective systems
in the cloud.
AWS Well-Architected Framework
• The AWS Well-Architected Framework is a set of best practices and guidelines to
help you design, build, and operate reliable, secure, efficient, and cost-effective systems
in the cloud.
AWS Well-Architected Framework
AWS Well-Architected Framework
AWS Well-Architected Framework
[Link] Excellence Pillar
The operational excellence pillar is a capacity to manage and monitor systems.
It improves supporting systems processes and procedures.
It includes:
➢ Making small and reversible changes
➢ Prediction of system disruptions
➢ Performing code tasks
➢ Making documentation notes
AWS Well-Architected Framework
[Link] Pillar

➢ The security pillar consists of protecting systems and data.

➢ Well-Architected Framework applies security at all levels.

➢ It protects both stored and in-transit data.

➢ When possible, best security practices are automatically applied.


AWS Well-Architected Framework
[Link] Pillar

➢ The reliability pillar is the ability to minimize disruptions of the


system.

➢ It obtains computing resources as needed.

➢ It entails boosting system availability.

➢ It automatically recovers the system from disruptions.


AWS Well-Architected Framework
[Link] Efficiency Pillar

➢ The performance efficiency pillar is the capacity to accurately use


computing resources.

➢ It satisfies the efficiency on demand.


AWS Well-Architected Framework
[Link] Optimization Pillar

➢ Cost optimization pillar helps you run your cloud services at the
lowest price points.

Cost optimization performs operations such as:

➢ Analysis of your costs

➢ Operating managed services

➢ Makes sure you only pay for what you use


AWS Well-Architected Framework
6. Sustainability
➢ Sustainability in the AWS Well-Architected Framework means building cloud
systems that reduce environmental impact.
➢ Here’s a simple explanation:
➢ It focuses on using fewer resources to do the same work.
➢ Helps you reduce energy use and carbon footprint.
➢ Encourages efficient workload design — like turning off unused resources.
➢ Uses serverless and managed services to improve efficiency.
➢ Promotes choosing the right region (data center) with lower carbon impact.
➢ Tracks and measures environmental performance over time.
Design Principles for AWS Cloud Architectures
The Well-Architected Framework identifies a set of general design principles to facilitate good design in the
cloud:
Stop guessing your capacity needs: If you make a poor capacity decision when deploying a workload, you
might end up sitting on expensive idle resources or dealing with the performance implications of limited
capacity. With cloud computing, these problems can go away. You can use as much or as little capacity as you
need, and scale in and out automatically.
Test systems at production scale: In the cloud, you can create a production-scale test environment on demand,
complete your testing, and then decommission the resources. Because you only pay for the test environment
when it's running, you can simulate your live environment for a fraction of the cost of testing on premises.
Automate with architectural experimentation in mind: Automation permits you to create and replicate your
workloads at low cost and avoid the expense of manual effort. You can track changes to your automation, audit
the impact, and revert to previous parameters when necessary.
Design Principles for AWS Cloud Architectures
Consider evolutionary architectures: In a traditional environment, architectural decisions are often
implemented as static, onetime events, with a few major versions of a system during its lifetime. As a
business and its context continue to evolve, these initial decisions might hinder the system's ability to
deliver changing business requirements. In the cloud, the capability to automate and test on demand lowers
the risk of impact from design changes. This permits systems to evolve over time so that businesses can
take advantage of innovations as a standard practice.
Drive architectures using data: In the cloud, you can collect data on how your architectural choices affect
the behavior of your workload. This lets you make fact-based decisions on how to improve your workload.
Your cloud infrastructure is code, so you can use that data to inform your architecture choices and
improvements over time.
Improve through game days: Test how your architecture and processes perform by regularly scheduling
game days to simulate events in production. This will help you understand where improvements can be
made and can help develop organizational experience in dealing with events.
Design Principles for AWS Cloud Architectures
Design Principles for AWS Cloud Architectures
Design Principles for AWS Cloud Architectures
Scalability and Elasticity
• Cloud elasticity refers to the ability to scale Computing Resources in the cloud up or
down based on actual demand. This ability to adapt to increased usage (or decreased
usage) allows you to provide resources when needed and avoid costs if they are not.
• Scalability is the ability of a system, network, or process to handle a growing amount of
work or its potential to be enlarged in various ways. A scalable solution can get scaled up
by adding processing power, storage capacity, and bandwidth.
• A cloud can increase or decrease its resource capacity dynamically. With scalability, there
is no having to provision new hardware, install operating systems and software, or make
any other changes to the running system. Cloud scalability allows a cloud operator to grow
or shrink their computing resources as needed.
Scalability and Elasticity
• AWS auto-scaling is a feature of AWS that allows you to scale your EC2 instances based

on a series of triggers -automatically. This can be especially useful if you have an

application that requires a lot of resources at peak times and less during off-peak hours.

• Use a scalable, load-balanced cluster. This approach allows for the distribution of

workloads across multiple servers, which can help to increase scalability.

• Enable detailed monitoring. Thorough monitoring allows for the collection of CloudWatch

metric data at a one-minute frequency, which can help to ensure a faster response to load

changes.
AWS cloud elasticity
• Design for horizontal scaling: One of the most significant advantages of cloud
computing is the ability to scale your application using a distributed architecture that can
be easily replicated across multiple instances.
• Use Elastic Load Balancing: ELB can automatically detect unhealthy instances and
redirect traffic to healthy ones. It distributes incoming traffic across multiple instances of
your application, helping to ensure that no single model becomes overloaded.
• AWS CloudWatch allows you to monitor the performance of your application and the
resources it uses. You can set up alarms to trigger Auto Scaling actions based on metrics
such as CPU utilization, network traffic, or custom metrics.
High Availability and Fault Tolerance
• High availability means a system will almost always maintain uptime, albeit sometimes
in a degraded state. About AWS, a system has high availability when it has 99.999%
uptime, also known as "five nines." To put that in perspective, the system would be down
for a mere five minutes and fifteen seconds a year.

• High availability is architected by removing single points of failure by leveraging system


redundancy. For instance, if you had five computers connected to one server, that would be
a single point of failure. If that server room floods and the server is destroyed, then you're
out of luck.

• To mitigate this situation, however, a backup server can be switched on in case of


emergencies. This is adding redundancy to remove single points of failure. So, high
availability removes single points of failure by adding redundancy.
High Availability and Fault Tolerance
• Fault tolerance means that a system will almost always maintain uptime — and users will
not notice any differences during a primary system outage.
• At a bare minimum, multiple servers would have to be load-balanced, databases would
have to be replicated, and availability would need to span multiple regions.
• All of this would need to be maintained by the company itself. Not only would the
company have to foot the bill for all the hardware and expertise to run it, but they would
have to follow esoteric IT security standards.

You might also like