Batch 9
Batch 9
(AUTONOMOUS)[Link], TEKKALI-532201
2023-2024
ADITYA INSTITUTE OF TECHNOLOGY AND MANGEMENT
CERTIFICATE
This is to certify that the Skill Advanced Course-II entitled “AWS Cloud Foundation” is
being submitted by Potnuru Santosh Prudhvi Raj (20A51A0553), Pullati Anjani
(20A51A0554), Rella Sunil (20A51A0555), Shahukara Khushi Kumar (20A51A0556),
Metta Divya Gayatri (20A51A0557), Gosangi Snehasish Kumar (20A51A0558) in partial
fulfillment of requirements for the award of the degree of Bachelor of Technology in
Computer Science and Engineering, Aditya Institute of Technology and Management,
Tekkali is a record of bonafide work carried out by them under my guidance and supervision
during the academic year 2023-24.
Performance Efficiency
Selection
Review
Monitoring
Trade-offs
Cost Optimization
Region selection
Alignment to demand
Software and architecture
Data
Hardware and services
Process and culture
Cloud architecture is a fundamental framework that defines the structure, components, and design
principles of cloud computing systems. It serves as the blueprint for creating and managing cloud-
based solutions that deliver computing resources and services over the internet. This introduction
provides an overview of cloud architecture, highlighting its key concepts and significance in modern
technology.
2. Scalability: Cloud systems are designed to handle changing workloads by easily scaling
resources up or down as needed. This scalability is essential for accommodating varying levels of
demand.
3. Elasticity: Elasticity is a subset of scalability that focuses on automatically adjusting resources in
response to workload changes, ensuring optimal performance and cost efficiency.
4. On-Demand Self-Service: Cloud users can provision and manage resources independently
through self-service portals, reducing the need for manual intervention.
5. Resource Pooling: Cloud providers maintain a shared pool of computing resources that serve
multiple customers, optimizing resource utilization and cost effectiveness.
6. Broad Network Access: Cloud services are accessible over the internet from various devices,
enabling users to access applications and data from anywhere, anytime.
7. Measured Service: Cloud usage is metered, allowing customers to pay only for the resources
they consume. This pay-as-you-go model enhances cost control and flexibility.
1. Infrastructure: This encompasses the physical data centres, servers, networking equipment,
and storage devices that form the foundation of cloud services.
2. Virtualization Layer: Virtualization technologies like hypervisors enable the creation of
virtual machines (VMs) and containers, allowing for resource isolation and efficient resource
allocation.
3. Service Models: Cloud providers offer various service models:
• Infrastructure as a Service (IaaS): Provides virtualized computing resources like
VMs and storage.
1
• Platform as a Service (PaaS): Offers a platform for developing and deploying
applications without worrying about underlying infrastructure.
• Software as a Service (SaaS): Delivers complete software applications accessible
over the internet.
4. Deployment Models: Clouds can be deployed in several ways:
• Public Cloud: Services are offered by third-party providers and accessible to the
public.
• Private Cloud: Resources are dedicated to a single organization, providing enhanced
control and security.
• Hybrid Cloud: Combines public and private clouds for flexibility and data
placement.
• Multi-Cloud: Uses multiple cloud providers to leverage different services and
mitigate vendor lock-in.
Cloud architecture plays a crucial role in today's technology landscape for several reasons:
Cloud architecture is a sophisticated framework designed to deliver scalable and resilient computing
resources over the internet. It encompasses various components and principles to ensure optimal
performance, security, and cost-efficiency.
2
Cloud architecture has become a cornerstone of the digital age, offering organizations the agility and
scalability required to meet evolving demands. This architecture leverages cloud computing services
to deliver resources like servers, storage, databases, networking, and more, over the internet. It
enables businesses to access these resources on a pay-as-you-go basis, eliminating the need for hefty
upfront investments in hardware and data centres.
Transparency, scalability, security and intelligent monitoring are some of the most important
constraints which every cloud infrastructure should experience. Current research on other important
constraints is helping cloud computing system to come up with new features and strategies with a
great capability of providing more advanced cloud solutions.
Starting from small to medium and medium to large, every organization use cloud computing
services for storing information and accessing it from anywhere and anytime only with the help of
internet.
Clouds are considered Platforms-as-a-Service (PaaS), since a cloud provider supplies users with both
the platform and the underlying IT infrastructure. Architecting a cloud platform requires more than
just abstracting a computer’s capabilities from its hardware components, which is how providers
create and offer cloud infrastructure to users. It also requires additional levels of development to
incorporate containerization, orchestration, application programming interfaces (APIs),
routing, security, management, and automation software. User experience design (UX) is also
important in order to create a navigable online experience.
While there are variations of cloud architecture based on what you’re trying to do, most clouds
require hardware, middleware, management, and automation software. Most clouds also
use virtualization to abstract the hardware resources into centrally managed data lakes, while some
clouds known as bare-metal clouds connect clients directly to hardware.
Cloud architecture is how individual technologies are integrated to create clouds IT environments
that abstract, pool, and share scalable resources across a network. Cloud architecture is how all the
components and capabilities necessary to build a cloud are connected in order to deliver an online
platform on which applications can run.
In summary, cloud architecture is a foundational concept that underpins the design and operation of
cloud computing environments. It empowers organizations to harness the benefits of the cloud,
including scalability, cost-efficiency, accessibility, and innovation, while ensuring reliability and
security in an increasingly digital world.
3
AWS Well-Architected Framework Design Principles
Your organization’s leadership defines business objectives. Your organization must understand
requirements and priorities and use these to organize and conduct work to support the achievement of
business outcomes. Your workload must emit the information necessary to support it. Implementing
services to achieve integration, deployment, and delivery of your workload will create an increased
flow of beneficial changes into production by automating repetitive processes.
There may be risks inherent in the operation of your workload. Understand those risks and make an
informed decision to enter production. Your teams must be able to support your workload. Business
and operational metrics derived from desired business outcomes will permit you to understand the
health of your workload, your operations activities, and respond to incidents. Your priorities will
change as your business needs and business environment changes. Use these as a feedback loop to
continually drive improvement for your organization and the operation of your workload. Every day,
experts at AWS assist customers in architecting systems to take advantage of best practices in the
cloud. We work with you on making architectural trade-offs as your designs evolve. As you deploy
these systems into live environments, we learn how well these systems perform and the consequences
of those trade-offs.
Based on what we have learned, we have created the AWS Well-Architected Framework, which
provides a consistent set of best practices for customers and partners to evaluate architectures, and
provides a set of questions you can use to evaluate how well architecture is aligned to AWS best
practices.
The AWS Well-Architected Framework is based on six pillars operational excellence, security,
reliability, performance efficiency, cost optimization, and sustainability.
The AWS Well-Architected Framework is a set of best practices and design principles developed by
Amazon Web Services (AWS) to help customers build secure, high-performing, resilient, and
efficient infrastructure for their applications.
Amazon Web Services (AWS) provides a flexible and scalable cloud computing platform that allows
organizations to build a wide range of architectures to meet their specific needs. AWS architecture
can vary greatly depending on the application's requirements.
4
Table 1. The pillars of the AWS Well-Architected Framework
Name Description
5
In the AWS Well-Architected Framework, we use these terms:
A component is the code, configuration, and AWS Resources that together deliver against a
requirement. A component is often the unit of technical ownership, and is decoupled from
other components.
The term workload is used to identify a set of components that together deliver business
value. A workload is usually the level of detail that business and technology leaders
communicate about.
We think about architecture as being how components work together in a workload. How
components communicate and interact is often the focus of architecture diagrams.
Milestones mark key changes in your architecture as it evolves throughout the product
lifecycle (design, implementation, testing, go live, and in production).
Within an organization the technology portfolio is the collection of workloads that are
required for the business to operate.
The level of effort is categorizing the amount of time, effort, and complexity a task requires
for implementation. Each organization needs to consider the size and expertise of the team
and the complexity of the workload for additional context to properly categorize the level of
effort for the organization.
High: The work might take multiple weeks or multiple months. This could be broken out
into multiple stories, releases, and tasks.
Medium: The work might take multiple days or multiple weeks. This could be broken out
into multiple releases and tasks.
Low: The work might take multiple hours or multiple days. This could be broken out into
multiple tasks.
When architecting workloads, you make trade-offs between pillars based on your business context.
These business decisions can drive your engineering priorities. You might optimize to improve
sustainability impact and reduce cost at the expense of reliability in development environments, or,
for mission-critical solutions, you might optimize reliability with increased costs and sustainability
impact. In ecommerce solutions, performance can affect revenue and customer propensity to buy.
Security and operational excellence are generally not traded-off against the other pillars.
In on-premises environments, customers often have a central team for technology architecture that
acts as an overlay to other product or feature teams to verify they are following best practice.
Technology architecture teams typically include a set of roles such as: Technical Architect
(infrastructure), Solutions Architect (software), Data Architect, Networking Architect, and Security
Architect. Often these teams use TOGAF or the Zachman Framework as part of an enterprise
architecture capability.
At AWS, we prefer to distribute capabilities into teams rather than having a centralized team with
that capability. There are risks when you choose to distribute decision making authority, for example,
6
verifying that teams are meeting internal standards. We mitigate these risks in two ways. First, we
have practices (ways of doing things, process, standards, and accepted norms) that focus on allowing
each team to have that capability, and we put in place experts who verify that teams raise the bar on
the standards they need to meet.
Second, we implement mechanisms that carry out automated checks to verify standards are being
met.
This means replacing a human's best efforts with mechanisms (often automated) that check for
compliance with rules or process. This distributed approach is supported by the leadership principles,
and establishes a culture across all roles that work back from the customer. Working backward is a
fundamental part of our innovation process. We start with the customer and what they want, and let
that define and guide our efforts. Customer-obsessed teams build products in response to a customer
need.
For architecture, this means that we expect every team to have the capability to create architectures
and to follow best practices. To help new teams gain these capabilities or existing teams to raise their
bar, we activate access to a virtual community of principal engineers who can review their designs
and help them understand what AWS best practices are. The principal engineering community works
to make best practices visible and accessible. One way they do this, for example, is through
lunchtime talks that focus on applying best practices to real examples. These talks are recorded and
can be used as part of on boarding materials for new team members.
AWS best practices emerge from our experience running thousands of systems at internet scale. We
prefer to use data to define best practice, but we also use subject matter experts, like principal
engineers, to set them. As principal engineers see new best practices emerge, they work as a
community to verify that teams follow them. In time, these best practices are formalized into our
internal review processes, and also into mechanisms that enforce compliance. The Well-Architected
Framework is the customer-facing implementation of our internal review process, where we have
codified our principal engineering thinking across field roles, like Solutions Architecture and internal
engineering teams. The Well-Architected Framework is a scalable mechanism that lets you take
advantage of these leanings.
7
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 up and down
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.
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 behaviour 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.
Creating a software system is a lot like constructing a building. If the foundation is not solid,
structural problems can undermine the integrity and function of the building. When architecting
technology solutions, if you neglect the six pillars of operational excellence, security, reliability,
performance efficiency, cost optimization, and sustainability, it can become challenging to build a
system that delivers on your expectations and requirements.
Incorporating these pillars into your architecture will help you produce stable and efficient systems.
This will allow you to focus on the other aspects of design, such as functional requirements.
8
Pillars
Operational excellence
Security
Reliability
Performance efficiency
Cost optimization
Sustainability
9
Operational Excellence
The Operational Excellence pillar includes the ability to support development and run workloads
effectively, gain insight into their operations, and to continuously improve supporting processes and
procedures to deliver business value.
The operational excellence pillar provides an overview of design principles, best practices, and
questions. You can find prescriptive guidance on implementation in the Operational Excellence
Whitepaper Pillar.
Design Principles:
There are five design principles for operational excellence in the cloud:
Perform operations as code: In the cloud, you can apply the same engineering discipline that
you use for application code to your entire environment. You can define your entire workload
(applications, infrastructure) as code and update it with code. You can implement your
operations procedures as code and automate their run process by initiating them in response to
events. By performing operations as code, you limit human error and achieve consistent
responses to events.
Make frequent, small, reversible changes: Design workloads to permit components to be
updated regularly. Make changes in small increments that can be reversed if they fail (without
affecting customers when possible).
Refine operations procedures frequently: As you use operations procedures, look for
opportunities to improve them. As you evolve your workload, evolve your procedures
appropriately. Set up regular game days to review and validate that all procedures are
effective and that teams are familiar with them.
Anticipate failure: Perform “pre-mortem” exercises to identify potential sources of failure so
that they can be removed or mitigated. Test your failure scenarios and validate your
understanding of their impact. Test your response procedures to verify that they are effective,
and that teams are familiar with their process. Set up regular game days to test workloads and
team responses to simulated events.
Learn from all operational failures: Drive improvement through lessons learned from all
operational events and failures. Share what is learned across teams and through the entire
organization.
10
There are four best practice areas for operational excellence in the cloud:
Organization
Prepare
Operate
Evolve
Your organization’s leadership defines business objectives. Your organization must understand
requirements and priorities and use these to organize and conduct work to support the achievement of
business outcomes. Your workload must emit the information necessary to support it. Implementing
services to achieve integration, deployment, and delivery of your workload will create an increased
flow of beneficial changes into production by automating repetitive processes.
There may be risks inherent in the operation of your workload. Understand those risks and make an
informed decision to enter production. Your teams must be able to support your workload. Business
and operational metrics derived from desired business outcomes will permit you to understand the
health of your workload, your operations activities, and respond to incidents. Your priorities will
change as your business needs and business environment changes. Use these as a feedback loop to
continually drive improvement for your organization and the operation of your workload.
Organization:
Your teams must have a shared understanding of your entire workload, their role in it, and shared
business goals to set the priorities that will achieve business success. Well-defined priorities will
maximize the benefits of your efforts. Evaluate internal and external customer needs involving key
stakeholders, including business, development, and operations teams, to determine where to focus
efforts. Evaluating customer needs will verify that you have a thorough understanding of the support
11
that is required to achieve business outcomes. Verify that you are aware of guidelines or obligations
defined by your organizational governance and external factors, such as regulatory compliance
requirements and industry standards that may mandate or emphasize specific focus. Validate that you
have mechanisms to identify changes to internal governance and external compliance requirements.
If no requirements are identified, validate that you have applied due diligence to this determination.
Review your priorities regularly so that they can be updated as needs change.
Evaluate threats to the business (for example, business risk and liabilities, and information security
threats) and maintain this information in a risk registry. Evaluate the impact of risks, and trade-offs
between competing interests or alternative approaches. For example, accelerating speed to market for
new features may be emphasized over cost optimization, or you may choose a relational database for
non-relational data to simplify the effort to migrate a system without refactoring. Manage benefits
and risks to make informed decisions when determining where to focus efforts. Some risks or choices
may be acceptable for a time, it may be possible to mitigate associated risks, or it may become
unacceptable to permit a risk to remain, in which case you will take action to address the risk.
Your teams must understand their part in achieving business outcomes. Teams must understand their
roles in the success of other teams, the role of other teams in their success, and have shared goals.
Understanding responsibility, ownership, how decisions are made, and who has authority to make
decisions will help focus efforts and maximize the benefits from your teams. The needs of a team
will be shaped by the customer they support, their organization, the makeup of the team, and the
characteristics of their workload. It's unreasonable to expect a single operating model to be able to
support all teams and their workloads in your organization.
Verify that there are identified owners for each application, workload, platform, and infrastructure
component, and that each process and procedure has an identified owner responsible for its
definition, and owners responsible for their performance.
Having understanding of the business value of each component, process, and procedure, of why those
resources are in place or activities are performed, and why that ownership exists will inform the
actions of your team members. Clearly define the responsibilities of team members so that they may
act appropriately and have mechanisms to identify responsibility and ownership. Have mechanisms
to request additions, changes, and exceptions so that you do not constrain innovation. Define
agreements between teams describing how they work together to support each other and your
business outcomes.
Provide support for your team members so that they can be more effective in taking action and
supporting your business outcomes. Engaged senior leadership should set expectations and measure
success. Senior leadership should be the sponsor, advocate, and driver for the adoption of best
practices and evolution of the organization. Let team members take action when outcomes are at risk
to minimize impact and encourage them to escalate to decision makers and stakeholders when they
12
believe there is a risk so that it can be addressed and incidents avoided. Provide timely, clear, and
actionable communications of known risks and planned events so that team members can take timely
and appropriate action.
Encourage experimentation to accelerate learning and keep team members interested and engaged.
Teams must grow their skill sets to adopt new technologies, and to support changes in demand and
responsibilities. Support and encourage this by providing dedicated structured time for learning.
Verify that your team members have the resources, both tools and team members, to be successful
and scale to support your business outcomes. Leverage cross-organizational diversity to seek multiple
unique perspectives. Use this perspective to increase innovation, challenge your assumptions, and
reduce the risk of confirmation bias. Grow inclusion, diversity, and accessibility within your teams to
gain beneficial perspectives.
If there are external regulatory or compliance requirements that apply to your organization, you
should use the resources provided by AWS Cloud to help educate your teams so that they can
determine the impact on your priorities. The Well-Architected Framework emphasizes learning,
measuring, and improving. It provides a consistent approach for you to evaluate architectures, and
implement designs that will scale over time. AWS provides the AWS Well-Architected Tool to help
you review your approach before development, the state of your workloads before production, and
the state of your workloads in production. You can compare workloads to the latest AWS
architectural best practices, monitor their overall status, and gain insight into potential risks. AWS
Trusted Advisor is a tool that provides access to a core set of checks that recommend optimizations
that may help shape your priorities. Business and Enterprise Support customers receive access to
additional checks focusing on security, reliability, performance, cost-optimization, and sustainability
that can further help shape their priorities.
AWS can help you educate your teams about AWS and its services to increase their understanding of
how their choices can have an impact on your workload. Use the resources provided by AWS
Support (AWS Knowledge Centre, AWS Discussion Forums, and AWS Support Centre) and AWS
Documentation to educate your teams. Reach out to AWS Support through AWS Support Centre for
help with your AWS questions. AWS also shares best practices and patterns that we have learned
through the operation of AWS in the Amazon Builders' Library. A wide variety of other useful
information is available through the AWS Blog and The Official AWS Podcast. AWS Training and
Certification provides some training through self-paced digital courses on AWS fundamentals. You
can also register for instructor-led training to further support the development of your teams’ AWS
skills.
Use tools or services that permit you to centrally govern your environments across accounts, such as
AWS Organizations, to help manage your operating models. Services like AWS Control Tower
expand this management capability by allowing you to define blueprints (supporting your operating
models) for the setup of accounts, apply on-going governance using AWS Organizations, and
13
automate provisioning of new accounts. Managed Services providers such as AWS Managed
Services, AWS Managed Services Partners, or Managed Services Providers in the AWS Partner
Network, provide expertise implementing cloud environments, and support your security and
compliance requirements and business goals. Adding Managed Services to your operating model can
save you time and resources, and lets you keep your internal teams lean and focused on strategic
outcomes that will differentiate your business, rather than developing new skills and capabilities.
Prepare:
To prepare for operational excellence, you have to understand your workloads and their expected
behaviours. You will then be able to design them to provide insight to their status and build the
procedures to support them.
Design your workload so that it provides the information necessary for you to understand its internal
state (for example, metrics, logs, events, and traces) across all components in support of observability
and investigating issues. Iterate to develop the telemetry necessary to monitor the health of your
workload, identify when outcomes are at risk, and activate effective responses. When instrumenting
your workload, capture a broad set of information to achieve situational awareness (for example,
changes in state, user activity, permission access, utilization counters), knowing that you can use
filters to select the most useful information over time.
Adopt approaches that improve the flow of changes into production and that achieve refactoring, fast
feedback on quality, and bug fixing. These accelerate beneficial changes entering production, limit
issues deployed, and activate rapid identification and remediation of issues introduced through
deployment activities or discovered in your environments.
Adopt approaches that provide fast feedback on quality and achieves rapid recovery from changes
that do not have desired outcomes. Using these practices mitigates the impact of issues introduced
through the deployment of changes. Plan for unsuccessful changes so that you are able to respond
faster if necessary and test and validate the changes you make. Be aware of planned activities in your
environments so that you can manage the risk of changes impacting planned activities. Emphasize
frequent, small, reversible changes to limit the scope of change. This results in faster troubleshooting
and remediation with the option to roll back a change. It also means you are able to get the benefit of
valuable changes more frequently.
Evaluate the operational readiness of your workload, processes, procedures, and personnel to
understand the operational risks related to your workload. Use a consistent process (including manual
or automated checklists) to know when you are ready to go live with your workload or a change. This
will also help you to find any areas that you must make plans to address. Have run books that
document your routine activities and playbooks that guide your processes for issue resolution.
Understand the benefits and risks to make informed decisions to permit changes to enter production.
14
AWS allows you to view your entire workload (applications, infrastructure, policy, governance, and
operations) as code. This means you can apply the same engineering discipline that you use for
application code to every element of your stack and share these across teams or organizations to
magnify the benefits of development efforts. Use operations as code in the cloud and the ability to
safely experiment to develop your workload, your operations procedures, and practice failure. Using
AWS Cloud Formation allows you to have consistent, template, sandbox development, test, and
production environments with increasing levels of operations control.
Operate:
Communicate the operational status of workloads through dashboards and notifications that are
tailored to the target audience (for example, customer, business, developers, operations) so that they
may take appropriate action, so that their expectations are managed, and so that they are informed
when normal operations resume.
In AWS, you can generate dashboard views of your metrics collected from workloads and natively
from AWS. You can leverage Cloud Watch or third-party applications to aggregate and present
business, workload, and operations level views of operations activities. AWS provides workload
insights through logging capabilities including AWS X-Ray, Cloud Watch, Cloud Trail, and VPC
Flow Logs to identify workload issues in support of root cause analysis and remediation.
15
Evolve:
Learn, share, and continuously improve to sustain operational excellence. Dedicate work cycles to
making nearly continuous incremental improvements. Perform post-incident analysis of all customer
impacting events. Identify the contributing factors and preventative action to limit or prevent
recurrence. Communicate contributing factors with affected communities as appropriate. Regularly
evaluate and prioritize opportunities for improvement (for example, feature requests, issue
remediation, and compliance requirements), including both the workload and operations procedures.
Include feedback loops within your procedures to rapidly identify areas for improvement and capture
leanings from running operations.
Share lessons learned across teams to share the benefits of those lessons. Analyse trends within
lessons learned and perform cross-team retrospective analysis of operations metrics to identify
opportunities and methods for improvement. Implement changes intended to bring about
improvement and evaluate the results to determine success.
On AWS, you can export your log data to Amazon S3 or send logs directly to Amazon S3 for long-
term storage. Using AWS Glue, you can discover and prepare your log data in Amazon S3 for
analytics, and store associated metadata in the AWS Glue Data Cat Log. Amazon Athena, through its
native integration with AWS Glue, can then be used to analyse your log data, querying it using
standard SQL. Using a business intelligence tool like Amazon Quick Sight, you can visualize,
explore, and analyse your data. Discovering trends and events of interest that may drive
improvement.
As AWS releases new services and features, it's a best practice to review your existing architectural
decisions to verify they continue to be the most cost effective. As your requirements change, be
aggressive in decommissioning resources, entire services, and systems that you no longer require.
Implementing new features or resource types can optimize your workload incrementally, while
minimizing the effort required implementing the change. This provides continual improvements in
efficiency over time and provides you remain on the most updated technology to reduce operating
costs. You can also replace or add new components to the workload with new services. This can
provide significant increases in efficiency, so it's essential to regularly review your workload, and
implement new services and features.
16
Security
The Security pillar encompasses the ability to protect data, systems, and assets to take advantage of
cloud technologies to improve your security. The security pillar provides an overview of design
principles, best practices, and questions.
Design Principles:
In the cloud, there are a number of principles that can help you strengthen your workload security:
1. Implement a strong identity foundation: Implement the principle of least privilege and
enforce separation of duties with appropriate authorization for each interaction with your
AWS resources. Centralize identity management, and aim to eliminate reliance on long-term
static credentials.
2. Maintain traceability: Monitor, alert, and audit actions and changes to your environment in
real time. Integrate log and metric collection with systems to automatically investigate and
take action.
3. Apply security at all layers: Apply a defence in depth approach with multiple security
controls. Apply to all layers (for example, edge of network, VPC, load balancing, every
instance and compute service, operating system, application, and code).
4. Automate security best practices: Automated software-based security mechanisms improve
your ability to securely scale more rapidly and cost-effectively. Create secure architectures,
including the implementation of controls that are defined and managed as code in version-
controlled templates.
5. Protect data in transit and at rest: Classify your data into sensitivity levels and use
mechanisms, such as encryption, tokenization, and access control where appropriate.
6. Keep people away from data: Use mechanisms and tools to reduce or eliminate the need for
direct access or manual processing of data. This reduces the risk of mishandling or
modification and human error when handling sensitive data.
7. Prepare for security events: Prepare for an incident by having incident management and
investigation policy and processes that align to your organizational requirements. Run
incident response simulations and use tools with automation to increase your speed for
detection, investigation, and recovery.
17
There are seven best practice areas for security in the cloud:
Security foundations
Identity and access management
Detection
Infrastructure protection
Data protection
Incident response
Application security
Before you architect any workload, you need to put in place practices that influence security. You
will want to control who can do what. In addition, you want to be able to identify security incidents,
protect your systems and services, and maintain the confidentiality and integrity of data through data
protection. You should have a well-defined and practiced process for responding to security
incidents. These tools and techniques are important because they support objectives such as
preventing financial loss or complying with regulatory obligations.
The AWS Shared Responsibility Model helps organizations that adopt the cloud to achieve their
security and compliance goals. Because AWS physically secures the infrastructure that supports our
cloud services, as an AWS customer you can focus on using services to accomplish your goals. The
AWS Cloud also provides greater access to security data and an automated approach to responding to
security events.
Security foundations
To operate your workload securely, you must apply overarching best practices to every area of
security. Take requirements and processes that you have defined in operational excellence at an
organizational and workload level, and apply them to all areas.
Staying up to date with recommendations from AWS, industry sources, and threat intelligence helps
you evolve your threat model and control objectives. Automating security processes, testing, and
validation allow you to scale your security operations.
18
Identity and access management
Identity and access management are key parts of an information security program, ensuring that only
authorized and authenticated users and components are able to access your resources, and only in a
manner that you intend. For example, you should define principals (that is, accounts, users, roles, and
services that can perform actions in your account), build out policies aligned with these principals,
and implement strong credential management. These privilege-management elements form the core
of authentication and authorization.
In AWS, privilege management is primarily supported by the AWS Identity and Access Management
(IAM) service, which allows you to control user and programmatic access to AWS services and
resources. You should apply granular policies, which assign permissions to a user, group, role, or
resource. You also have the ability to require strong password practices, such as complexity level,
avoiding re-use, and enforcing multi-factor authentication (MFA). You can use federation with your
existing directory service. For workloads that require systems to have access to AWS, IAM allows
for secure access through roles, instance profiles, identity federation, and temporary credentials.
There are two types of identities you need to manage when approaching operating secure AWS
workloads. Understanding the type of identity, you need to manage and grant access helps you verify
the right identities have access to the right resources under the right conditions.
Human Identities: Your administrators, developers, operators, and end users require an identity to
access your AWS environments and applications. These are members of your organization, or
external users with whom you collaborate, and who interact with your AWS resources via a web
browser, client application, or interactive command line tools.
Machine Identities: Your service applications, operational tools, and workloads require an identity to
make requests to AWS services, for example, to read data. These identities include machines running
in your AWS environment such as Amazon EC2 instances or AWS Lambda functions. You may also
manage machine identities for external parties who need access. Additionally, you may also have
machines outside of AWS that need access to your AWS environment.
Detection
You can use detective controls to identify a potential security threat or incident. They are an essential
part of governance frameworks and can be used to support a quality process, a legal or compliance
obligation, and for threat identification and response efforts. There are different types of detective
controls. For example, conducting an inventory of assets and their detailed attributes promotes more
effective decision making (and lifecycle controls) to help establish operational baselines. You can
also use internal auditing, an examination of controls related to information systems, to verify that
practices meet policies and requirements and that you have set the correct automated alerting
notifications based on defined conditions. These controls are important reactive factors that can help
your organization identify and understand the scope of anomalous activity.
19
In AWS, you can implement detective controls by processing logs, events, and monitoring that
allows for auditing, automated analysis, and alarming. Cloud Trail logs, AWS API calls, and Cloud
Watch provide monitoring of metrics with alarming, and AWS Config provides configuration
history. Amazon Guard Duty is a managed threat detection service that continuously monitors for
malicious or unauthorized behaviour to help you protect your AWS accounts and workloads. Service-
level logs are also available, for example, you can use Amazon Simple Storage Service (Amazon S3)
to log access requests.
Infrastructure protection
Infrastructure protection encompasses control methodologies, such as defence in depth, necessary to
meet best practices and organizational or regulatory obligations. Use of these methodologies is
critical for successful, on-going operations in either the cloud or on-premises.
In AWS, you can implement stateful and stateless packet inspection, either by using AWS-native
technologies or by using partner products and services available through the AWS Marketplace. You
should use Amazon Virtual Private Cloud (Amazon VPC) to create a private, secured, and scalable
environment in which you can define your topology including gateways, routing tables, and public
and private subnets.
Data protection
Before architecting any system, foundational practices that influence security should be in place. For
example, data classification provides a way to categorize organizational data based on levels of
sensitivity, and encryption protects data by way of rendering it unintelligible to unauthorized access.
These tools and techniques are important because they support objectives such as preventing
financial loss or complying with regulatory obligations.
Incident response
Even with extremely mature preventive and detective controls, your organization should still put
processes in place to respond to and mitigate the potential impact of security incidents. The
architecture of your workload strongly affects the ability of your teams to operate effectively during
an incident, to isolate or contain systems, and to restore operations to a known good state. Putting in
place the tools and access ahead of a security incident, then routinely practicing incident response
through game days, will help you verify that your architecture can accommodate timely investigation
and recovery.
Detailed logging is available that contains important content, such as file access and changes.
Events can be automatically processed and launch tools that automate responses through the
use of AWS APIs.
You can pre-provision tooling and a “clean room” using AWS Cloud Formation. This allows
you to carry out forensics in a safe, isolated environment.
Application security
Application security (AppSec) describes the overall process of how you design, build, and test the
security properties of the workloads you develop. You should have appropriately trained people in
your organization, understand the security properties of your build and release infrastructure, and use
automation to identify security issues.
Adopting application security testing as a regular part of your software development lifecycle
(SDLC) and post release processes help validate that you have a structured mechanism to identify,
fix, and prevent application security issues entering your production environment.
Your application development methodology should include security controls as you design, build,
deploy, and operate your workloads. While doing so, align the process for continuous defect
reduction and minimizing technical debt.
Application security refers to the practices, techniques, and measures taken to protect software
applications from various security threats and vulnerabilities. It is a critical aspect of cyber security,
as applications often serve as the entry point for attackers to gain unauthorized access to systems,
steal sensitive data, or disrupt services.
21
Reliability
The Reliability pillar encompasses the ability of a workload to perform its intended function correctly
and consistently when it’s expected to. This includes the ability to operate and test the workload
through its total lifecycle. This paper provides in-depth, best practice guidance for implementing
reliable workloads on AWS.
The reliability pillar provides an overview of design principles, best practices, and questions.
Design principles
There are five design principles for reliability in the cloud:
22
There are four best practice areas for reliability in the cloud:
Foundations
Workload architecture
Change management
Failure management
To achieve reliability, you must start with the foundations — an environment where Service Quotas
and network topology accommodate the workload. The workload architecture of the distributed
system must be designed to prevent and mitigate failures. The workload must handle changes in
demand or requirements, and it must be designed to detect failure and automatically heal itself.
Foundations
Foundational requirements are those whose scope extends beyond a single workload or project.
Before architecting any system, foundational requirements that influence reliability should be in
place. For example, you must have sufficient network bandwidth to your data centre.
With AWS, most of these foundational requirements are already incorporated or can be addressed as
needed.
The cloud is designed to be nearly limitless, so it’s the responsibility of AWS to satisfy the
requirement for sufficient networking and compute capacity, permitting you to change resource size
and allocations on demand.
Workload architecture
A reliable workload starts with upfront design decisions for both software and infrastructure. Your
architecture choices will impact your workload behaviour across all of the Well-Architected pillars.
For reliability, there are specific patterns you must follow.
With AWS, workload developers have their choice of languages and technologies to use. AWS SDKs
take the complexity out of coding by providing language-specific APIs for AWS services. These
SDKs, plus the choice of languages, permits developers to implement the reliability best practices
listed here.
Change Management
Changes to your workload or its environment must be anticipated and accommodated to achieve
reliable operation of the workload. Changes include those imposed on your workload, such as spikes
in demand, and also those from within, such as feature deployments and security patches.
Using AWS, you can monitor the behaviour of a workload and automate the response to KPIs. For
example, your workload can add additional servers as a workload gains more users. You can control
who has permission to make workload changes and audit the history of these changes.
23
Failure Management
In any system of reasonable complexity, it is expected that failures will occur. Reliability requires
that your workload be aware of failures as they occur and take action to avoid impact on availability.
Workloads must be able to both withstand failures and automatically repair issues.
With AWS, you can take advantage of automation to react to monitoring data. For example, when a
particular metric crosses a threshold, you can initiate an automated action to remedy the problem.
Also, rather than trying to diagnose and fix a failed resource that is part of your production
environment, you can replace it with a new one and carry out the analysis on the failed resource out
of band. Since the cloud allows you to stand up temporary versions of a whole system at low cost,
you can use automated testing to verify full recovery processes.
Performance Efficiency
The Performance Efficiency pillar includes the ability to use computing resources efficiently to meet
system requirements, and to maintain that efficiency as demand changes and technologies evolve.
There are five design principles for performance efficiency in the cloud:
24
There are four best practice areas for performance efficiency in the cloud:
Selection
Review
Monitoring
Trade- offs
Take a data-driven approach to building high-performance architecture. Gather data on all aspects of
the architecture, from the high-level design to the selection and configuration of resource types.
Reviewing your choices on a regular basis validates that you are taking advantage of the continually
evolving AWS Cloud. Monitoring verifies that you are aware of any deviance from expected
performance. Make trade- offs in your architecture to improve performance, such as using
compression or caching, or relaxing consistency requirements.
Selection
The more effective solution for a particular workload varies, and solutions often combine multiple
approaches. Well-architected workloads use multiple solutions and activate different features to
improve performance.
AWS resources are available in many types and configurations so you can find an approach that
closely matches your workload needs. You can also find options that are not efficiently achievable
with on-premises infrastructure. For example, a managed service such as Amazon Dynamo DB
provides a fully managed NoSQL database with single-digit millisecond latency at any scale.
Use a data-driven approach to select the patterns and implementation for your architecture and
achieve a cost- effective solution. AWS Solutions Architects, AWS Reference Architectures, and
AWS Partner Network (APN) partners can help you select an architecture based on industry
knowledge, but data obtained through benchmarking or load testing will be required to optimize your
architecture.
Your architecture will likely combine a number of different architectural approaches (for example,
event-driven, ETL, or pipeline). The implementation of your architecture will use the AWS services
that are specific to the optimization of your architecture's performance. In the following sections we
discuss the four main resource types to consider (compute, storage, database, and network).
Selecting compute resources that meet your requirements, performance needs, and provide great
efficiency of cost and effort will permit you to accomplish more with the same number of resources.
When evaluating compute options, be aware of your requirements for workload performance and cost
requirements and use this to make informed decisions.
25
In AWS, compute is available in three forms: instances, containers, and functions:
Instances are virtualized servers, permitting you to change their capabilities with a button or
an API call. Because resource decisions in the cloud aren’t fixed, you can experiment with
different server types. At AWS, these virtual server instances come in different families and
sizes, and they offer a wide variety of capabilities, including solid-state drives (SSDs) and
graphics processing units (GPUs).
Containers are a method of operating system virtualization that permit you to run an
application and its dependencies in resource-isolated processes. AWS Faregate is serverless
compute for containers or Amazon EC2 can be used if you need control over the installation,
configuration, and management of your compute environment. You can also choose from
multiple container orchestration platforms: Amazon Elastic Container Service (ECS) or
Amazon Elastic Kubernetes Service (EKS).
Functions abstract the run environment from the code you want to apply. For example, AWS
Lambda permits you to run code without running an instance.
Cloud storage is a critical component of cloud computing, holding the information used by
your workload. Cloud storage is typically more reliable, scalable, and secures than traditional
on-premises storage systems. Select from object, block, and file storage services, and cloud
data migration options for your workload.
In AWS, storage is available in three forms: object, block, and file:
Object Storage provides a scalable, durable platform to make data accessible from any
internet location for user-generated content, active archive, server less computing, Big Data
storage or backup and recovery. Amazon Simple Storage Service (Amazon S3) is an object
storage service that offers industry-leading scalability, data availability, security, and
performance. Amazon S3 is designed for 99.999999999% (11 9's) of durability, and stores
data for millions of applications for companies all around the world.
Block Storage provides highly available, consistent, low-latency block storage for each
virtual host and is analogous to direct-attached storage (DAS) or a Storage Area Network
(SAN). Amazon Elastic Block Store (Amazon EBS) is designed for workloads that require
persistent storage accessible by EC2 instances that help you tune applications with the right
storage capacity, performance and cost.
File Storage provides access to a shared file system across multiple systems. File storage
solutions like Amazon Elastic File System (Amazon EFS) are ideal for use cases such as large
content repositories, development environments, media stores, or user home directories.
Amazon Fax makes it efficient and cost effective to launch and run popular file systems so
26
you can leverage the rich feature sets and fast performance of widely used open source and
commercially-licensed file systems.
The cloud offers purpose-built database services that address different problems presented by
your workload. You can choose from many purpose-built database engines including
relational, key-value, document, in-memory, graph, time series, and ledger databases. By
selecting the most effective database to solve a specific problem (or a group of problems),
you can break away from restrictive one-size-fits-all monolithic databases and focus on
building applications to meet the performance needs of your customers.
In AWS you can choose from multiple purpose-built database engines including relational,
key-value, document, in-memory, graph, time series, and ledger databases. With AWS
databases, you don’t need to worry about database management tasks such as server
provisioning, patching, setup, configuration, backups, or recovery. AWS continuously
monitors your clusters to keep your workloads up and running with self-healing storage and
automated scaling, so that you can focus on higher value application development.
Since the network is between all workload components, it can have great impacts, both
positive and negative, on workload performance and behaviour. There are also workloads that
are heavily dependent on network performance such as high-performance computing (HPC)
where deep network understanding is important to increase cluster performance. Determine
the workload requirements for bandwidth, latency, jitter, and throughput.
On AWS, networking is virtualized and is available in a number of different types and
configurations. This makes it efficient to match your networking operations with your needs.
AWS offers product features (for example, Enhanced Networking, Amazon EBS-optimized
instances, Amazon S3 transfer acceleration, and dynamic Amazon Cloud Front) to optimize
network traffic. AWS also offers networking features (for example, Amazon Route 53 latency
routing, Amazon VPC endpoints, AWS Direct Connect, and AWS Global Accelerator) to
reduce network distance or jitter.
You must consider location when deploying your network. You can choose to place resources
close to where they will be used to reduce distance. Use networking metrics to make changes
to networking configuration as the workload evolves.
By taking advantage of regions, placement groups, and edge services, you can significantly
improve performance. Cloud based networks can be quickly re-built or modified, so evolving
your network architecture over time is necessary to maintain performance efficiency.
Review
Cloud technologies are rapidly evolving and you must verify that workload components are using the
latest technologies and approaches to continually improve performance. You must continually
evaluate and consider changes to your workload components to verify you are meeting its
performance and cost objectives. New technologies, such as machine learning and artificial
27
intelligence (AI), can permit you to reimagine customer experiences and innovate across all of your
business workloads.
Take advantage of the continual innovation at AWS driven by customer need. We release new
Regions, edge locations, services, and features regularly. Any of these releases could positively
improve the performance efficiency of your architecture.
Architectures performing poorly are usually the result of a non-existent or broken performance
review process. If your architecture is performing poorly, implementing a performance review
process will permit you to apply Deming’s plan-do-check-act (PDCA) cycle to drive iterative
improvement.
Monitoring
After you implement your workload, you must monitor its performance so that you can remediate
any issues before they impact your customers. Monitoring metrics should be used to raise alarms
when thresholds are breached.
Amazon Cloud Watch is a monitoring and observability service that provides you with data and
actionable insights to monitor your workload, respond to system-wide performance changes,
optimize resource utilization, and get a unified view of operational health. Cloud Watch collects
monitoring and operational data in the form of logs, metrics, and events from workloads that run on
AWS and on-premises servers. AWS X-ray helps developers analyse and debug production,
distributed applications.
Validating that you do not see false positives is key to an effective monitoring solution. Automated
initiation functions avoid human error and can reduce the time it takes to fix problems. Plan for game
days, where simulations are conducted in the production environment, to test your alarm solution and
verify that it correctly recognizes issues.
Trade-offs
When you architect solutions, think about trade-offs to validate a more efficient approach. Depending
on your situation, you could trade consistency, durability, and space for time or latency, to deliver
higher performance.
Using AWS, you can go global in minutes and deploy resources in multiple locations across the
globe to be closer to your end users. You can also dynamically add read only replicas to information
stores (such as database systems) to reduce the load on the primary database. As you make changes
to the workload, collect and evaluate metrics to determine the impact of those changes.
In summary, trade-offs are an integral part of decision-making and resource allocation in various
aspects of life. Recognizing and evaluating trade-offs allows individuals and organizations to make
informed choices, optimize outcomes, and navigate complex challenges effectively.
28
Cost Optimization
The Cost Optimization pillar includes the ability to run systems to deliver business value at the
lowest price point.
Design Principles
There are five design principles for cost optimization in the cloud:
There are five best practice areas for cost optimization in the cloud:
29
As with the other pillars within the Well-Architected Framework, there are trade-offs to consider, for
example, whether to optimize for speed-to-market or for cost. In some cases, it’s more efficient to
optimize for speed, going to market quickly, shipping new features, or meeting a deadline, rather than
investing in upfront cost optimization. Design decisions are sometimes directed by haste rather than
data, and the temptation always exists to overcompensate “just in case” rather than spend time
benchmarking for the most cost-optimal deployment. This might lead to over-provisioned and under-
optimized deployments. However, this is a reasonable choice when you must “lift and shift”
resources from your on-premises environment to the cloud and then optimize afterwards. Investing
the right amount of effort in a cost optimization strategy up front permits you to realize the economic
benefits of the cloud more readily by achieving a consistent adherence to best practices and avoiding
unnecessary over provisioning. The following sections provide techniques and best practices for both
the initial and on-going implementation of Cloud Financial Management and cost optimization of
your workloads.
Many organizations are composed of many different units with different priorities. The ability to
align your organization to an agreed set of financial objectives, and provide your organization the
mechanisms to meet them, will create a more efficient organization. A capable organization will
innovate and build faster, be more agile and adjust to any internal or external factors.
In AWS you can use Cost Explorer, and optionally Amazon Athena and Amazon Quick Sight with
the Cost and Usage Report (CUR), to provide cost and usage awareness throughout your
organization. AWS Budgets provides proactive notifications for cost and usage. The AWS blogs
provide information on new services and features to verify you keep up to date with new service
releases.
When building a cost optimization function, use members and supplement the team with experts in
CFM and cost optimization. Existing team members will understand how the organization currently
functions and how to rapidly implement improvements. Also consider including people with
supplementary or specialist skill sets, such as analytics and project management. When implementing
cost awareness in your organization, improve or build on existing programs and processes. It is much
faster to add to what exists than to build new processes and programs. This will result in achieving
outcomes much faster.
30
Expenditure and usage awareness
The increased flexibility and agility that the cloud provides encourages innovation and fast-paced
development and deployment. It decreases the manual processes and time associated with
provisioning on-premises infrastructure, including identifying hardware specifications, negotiating
price quotations, managing purchase orders, scheduling shipments, and then deploying the resources.
However, the ease of use and virtually unlimited on-demand capacity requires a new way of thinking
about expenditures.
Many businesses are composed of multiple systems run by various teams. The capability to attribute
resource costs to the individual organization or product owners drives efficient usage behaviour and
helps reduce waste. Accurate cost attribution permits you to know which products are truly
profitable, and permits you to make more informed decisions about where to allocate budget.
In AWS, you create an account structure with AWS Organizations or AWS Control Tower, which
provides separation and assists in allocation of your costs and usage. You can also use resource
tagging to apply business and organization information to your usage and cost. Use AWS Cost
Explorer for visibility into your cost and usage, or create customized dashboards and analytics with
Amazon Athena and Amazon Quick Sight. Controlling your cost and usage is done by notifications
through AWS Budgets, and controls using AWS Identity and Access Management (IAM), and
Service Quotas.
You can use cost allocation tags to categorize and track your AWS usage and costs. When you apply
tags to your AWS resources (such as EC2 instances or S3 buckets), AWS generates a cost and usage
report with your usage and your tags. You can apply tags that represent organization categories (such
as cost centres, workload names, or owners) to organize your costs across multiple services.
Verify that you use the right level of detail and granularity in cost and usage reporting and
monitoring. For high level insights and trends, use daily granularity with AWS Cost Explorer. For
deeper analysis and inspection use hourly granularity in AWS Cost Explorer, or Amazon Athena and
Amazon Quick Sight with the Cost and Usage Report (CUR) at an hourly granularity.
Combining tagged resources with entity lifecycle tracking (employees, projects) makes it possible to
identify orphaned resources or projects that are no longer generating value to the organization and
should be decommissioned. You can set up billing alerts to notify you of predicted overspending.
Cost-effective resources
Using the appropriate instances and resources for your workload is key to cost savings. For example,
a reporting process might take five hours to run on a smaller server but one hour to run on a larger
server that is twice as expensive. Both servers give you the same outcome, but the smaller server
incurs more cost over time.
31
A well-architected workload uses the most cost-effective resources, which can have a significant and
positive economic impact. You also have the opportunity to use managed services to reduce costs.
For example, rather than maintaining servers to deliver email, you can use a service that charges on a
per-message basis.
AWS offers a variety of flexible and cost-effective pricing options to acquire instances from Amazon
EC2 and other services in a way that more effectively fits your needs. On-Demand Instances permit
you to pay for compute capacity by the hour, with no minimum commitments required. Savings Plans
and Reserved Instances offer savings of up to 75% off On-Demand pricing. With Spot Instances, you
can leverage unused.
Amazon EC2 capacity and offer savings of up to 90% off On-Demand pricing. Spot Instances are
appropriate where the system can tolerate using a fleet of servers where individual servers can come
and go dynamically, such as stateless web servers, batch processing, or when using HPC and big
data.
Appropriate service selection can also reduce usage and costs; such as Cloud Front to minimize data
transfer, or decrease costs, such as utilizing Amazon Aurora on Amazon RDS to remove expensive
database licensing costs. By factoring in cost during service selection, and using tools such as Cost
Explorer and AWS Trusted Advisor to regularly review your AWS usage, you can actively monitor
your utilization and adjust your deployments accordingly.
In AWS, you can automatically provision resources to match the workload demand. Auto Scaling
using demand or time-based approaches permit you to add and remove resources as needed. If you
can anticipate changes in demand, you can save more money and validate that your resources match
your workload needs. You can use Amazon API Gateway to implement throttling, or Amazon SQS to
implementing a queue in your workload. These will both permit you to modify the demand on your
workload components.
When designing to modify demand and supply resources, actively think about the patterns of usage,
the time it takes to provision new resources and the predictability of the demand pattern. When
managing demand, verify you have a correctly sized queue or buffer, and that you are responding to
workload demand in the required amount of time.
32
Reliability & High Availability
The Sustainability pillar focuses on environmental impacts, especially energy consumption and
efficiency, since they are important levers for architects to inform direct action to reduce resource
usage.
Design Principles
There are six design principles for sustainability in the cloud:
Understand your impact: Measure the impact of your cloud workload and model the future impact
of your workload. Include all sources of impact, including impacts resulting from customer use of
your products, and impacts resulting from their eventual decommissioning and retirement. Compare
the productive output with the total impact of your cloud workloads by reviewing the resources and
emissions required per unit of work. Use this data to establish key performance indicators (KPIs),
evaluate ways to improve productivity while reducing impact, and estimate the impact of proposed
changes over time.
Establish sustainability goals: For each cloud workload, establish long-term sustainability goals
such as reducing the compute and storage resources required per transaction. Model the return on
investment of sustainability improvements for existing workloads, and give owners the resources
they must invest in sustainability goals. Plan for growth, and architect your workloads so that growth
results in reduced impact intensity measured against an appropriate unit, such as per user or per
transaction. Goals help you support the wider sustainability goals of your business or organization,
identify regressions, and prioritize areas of potential improvement.
Maximize utilization: Right-size workloads and implement efficient design to verify high utilization
and maximize the energy efficiency of the underlying hardware. Two hosts running at 30%
utilization are less efficient than one host running at 60% due to baseline power consumption per
host. At the same time, reduce or minimize idle resources, processing, and storage to reduce the total
energy required to power your workload.
Anticipate and adopt new, more efficient hardware and software offerings: Support the
upstream improvements your partners and suppliers make to help you reduce the impact of your
cloud workloads. Continually monitor and evaluate new, more efficient hardware and software
offerings. Design for flexibility to permit the rapid adoption of new efficient technologies.
Use managed services: Sharing services across a broad customer base helps maximize resource
utilization, which reduces the amount of infrastructure needed to support cloud workloads. For
example, customers can share the impact of common data centre components like power and
networking by migrating workloads to the AWS Cloud and adopting managed services, such as AWS
Fare gate for server less containers, where AWS operates at scale and is responsible for their efficient
operation. Use managed services that can help minimize your impact, such as automatically moving
33
infrequently accessed data to cold storage with Amazon S3 Lifecycle configurations or Amazon EC2
Auto Scaling to adjust capacity to meet demand.
Reduce the downstream impact of your cloud workloads: Reduce the amount of energy or
resources required to use your services. Reduce the need for customers to upgrade their devices to
use your services. Test using device farms to understand expected impact and test with customers to
understand the actual impact from using your services.
There are six best practice areas for sustainability in the cloud:
Region selection
Alignment to demand
Software and architecture
Data Hardware and services
Process and culture
Sustainability in the cloud is a nearly continuous effort focused primarily on energy reduction and
efficiency across all components of a workload by achieving the maximum benefit from the
resources provisioned and minimizing the total resources required. This effort can range from the
initial selection of an efficient programming language, adoption of modern algorithms, use of
efficient data storage techniques, deploying to correctly sized and efficient compute infrastructure,
and minimizing requirements for high-powered end user hardware.
Region selection
The choice of region for your workload significantly affects its KPIs, including performance, cost,
and carbon footprint. To improve these KPIs, you should choose Regions for your workloads based
on both business requirements and sustainability goals.
Alignment to demand
The way users and applications consume your workloads and other resources can help you identify
improvements to meet sustainability goals. Scale infrastructure to continually match demand and
verify that you use only the minimum resources required to support your users. Align service levels
to customer needs. Position resources to limit the network required for users and applications to
consume them. Remove unused assets. Provide your team members with devices that support their
needs and minimize their sustainability impact.
Scale infrastructure with user load: Identify periods of low or no utilization and scale resources to
reduce excess capacity and improve efficiency.
Align SLAs with sustainability goals: Define and update service level agreements (SLAs) such as
availability or data retention periods to minimize the number of resources required to support your
workload while continuing to meet business requirements.
34
Decrease creation and maintenance of unused assets: Analyse application assets (such as pre-
compiled reports, datasets, and static images) and asset access patterns to identify redundancy,
underutilization, and potential decommission targets. Consolidate generated assets with redundant
content (for example, monthly reports with overlapping or common datasets and outputs) to reduce
the resources consumed when duplicating outputs. Decommission unused assets (for example,
images of products that are no longer sold) to release consumed resources and reduce the number of
resources used to support the workload.
Optimize geographic placement of workloads for user locations: Analyse network access patterns to
identify where your customers are connecting from geographically. Select Regions and services that
reduce the distance that network traffic must travel to decrease the total network resources required to
support your workload.
Optimize team member resources for activities performed: Optimize resources provided to team
members to minimize the sustainability impact while supporting their needs. For example, perform
complex operations, such as rendering and compilation, on highly used shared cloud desktops instead
of on under-utilized high-powered single user systems.
Optimize software and architecture for asynchronous and scheduled jobs: Use efficient software
designs and architectures to minimize the average resources required per unit of work. Implement
mechanisms that result in even utilization of components to reduce resources that are idle between
tasks and minimize the impact of load spikes.
Remove or refactor workload components with low or no use: Monitor workload activity to identify
changes in utilization of individual components over time. Remove components that are unused and
no longer required, and refactor components with little utilization, to limit wasted resources.
Optimize areas of code that consume the most time or resources: Monitor workload activity to
identify application components that consume the most resources. Optimize the code that runs within
these components to minimize resource usage while maximizing performance.
Optimize impact on customer devices and equipment: Understand the devices and equipment that
your customers use to consume your services, their expected lifecycle, and the financial and
35
sustainability impact of replacing those components. Implement software patterns and architectures
to minimize the need for customers to replace devices and upgrade equipment. For example,
implement new features using code that is backward compatible with earlier hardware and operating
system versions, or manage the size of payloads so they don’t exceed the storage capacity of the
target device.
Use software patterns and architectures that most effectively support data access and storage patterns:
Understand how data is used within your workload, consumed by your users, transferred, and stored.
Select technologies to minimize data processing and storage requirements.
Data
Implement a data classification policy: Classify data to understand its significance to business
outcomes. Use this information to determine when you can move data to more energy-efficient
storage or safely delete it.
Use technologies that support data access and storage patterns: Use storage that most effectively
supports how your data is accessed and stored to minimize the resources provisioned while
supporting your workload. For example, solid state devices (SSDs) are more energy intensive than
magnetic drives and should be used only for active data use cases. Use energy-efficient, archival-
class storage for infrequently accessed data.
Use lifecycle policies to delete unnecessary data: Manage the lifecycle of all your data and
automatically enforce deletion timelines to minimize the total storage requirements of your workload.
Minimize over-provisioning in block storage: To minimize total provisioned storage, create block
storage with size allocations that are appropriate for the workload. Use elastic volumes to expand
storage as data grows without having to resize storage attached to compute resources. Regularly
review elastic volumes and shrink over-provisioned volumes to fit the current data size.
Remove unneeded or redundant data: Duplicate data only when necessary to minimize total storage
consumed. Use backup technologies that deduplicate data at the file and block level. Limit the use of
Redundant Array of Independent Drives (RAID) configurations except where required to meet SLAs.
Use shared file systems or object storage to access common data: Adopt shared storage and single
sources of truth to avoid data duplication and reduce the total storage requirements of your workload.
Fetch data from shared storage only as needed. Detach unused volumes to release resources.
Minimize data movement across networks: Use shared storage and access data from regional data
stores to minimize the total networking resources required to support data movement for your
workload.
Back up data only when difficult to recreate: To minimize storage consumption, only back up data
that has business value or is required to satisfy compliance requirements. Examine backup policies
and exclude ephemeral storage that doesn’t provide value in a recovery scenario.
36
Hardware and services
Look for opportunities to reduce workload sustainability impacts by making changes to your
hardware management practices. Minimize the amount of hardware needed to provision and deploy,
and select the most efficient hardware and services for your individual workload.
Use the minimum amount of hardware to meet your needs: Using the capabilities of the cloud, you
can make frequent changes to your workload implementations. Update deployed components as your
needs change.
Use instance types with the least impact: Continually monitor the release of new instance types and
take advantage of energy efficiency improvements, including those instance types designed to
support specific workloads such as machine learning training and inference, and video transcoding.
Use managed services: Managed services shift responsibility for maintaining high average utilization,
and sustainability optimization of the deployed hardware, to AWS. Use managed services to
distribute the sustainability impact of the service across all tenants of the service, reducing your
individual contribution.
Optimize your use of GPUs: Graphics processing units (GPUs) can be a source of high-power
consumption, and many GPU workloads are highly variable, such as rendering, transcoding, and
machine learning training and modelling. Only run GPUs instances for the time needed, and
decommission them with automation when not required to minimize resources consumed.
Keep your workload up to date: Up-to-date operating systems, libraries, and applications can improve
workload efficiency and create adoption of more efficient technologies. Up-to-date software might
also include features to measure the sustainability impact of your workload more accurately, as
vendors deliver features to meet their own sustainability goals.
Increase utilization of build environments: Use automation and infrastructure as code to bring up
preproduction environments when needed and take them down when not used. A common pattern is
to schedule periods of availability that coincide with the working hours of your development team
members. Hibernation is a useful tool to preserve state and rapidly bring instances online only when
needed. Use instance types with burst capacity, Spot Instances, elastic database services, containers,
and other technologies to align development and test capacity with use.
37
AWS Trusted Advisor
AWS Trusted Advisor provides recommendations that help you follow AWS best practices. Trusted
Advisor evaluates your account by using checks. These checks identify ways to optimize your AWS
infrastructure, improve security and performance, reduce costs, and monitor service quotas. You can
then follow the recommendations to optimize your services and resources.
AWS Basic Support and AWS Developer Support customers can access core security checks and
checks for service quotas. AWS Business Support and AWS Enterprise Support customers can access
all checks, including cost optimization, security, fault tolerance, performance, and service quotas. For
a complete list of checks and descriptions, see the Trusted Advisor Best Practices.
AWS Trusted Advisor Priority helps you focus on the most important recommendations to optimize
your cloud deployments, improve resilience, and address security gaps. Available to AWS Enterprise
Support customers, Trusted Advisor Priority provides prioritized and context-driven
recommendations that come from your AWS account team as well as machine-generated checks from
AWS services.
AWS Trusted Advisor is a valuable tool provided by Amazon Web Services (AWS) to help AWS
customers optimize their infrastructure, improve performance, and enhance security by providing
real-time guidance and recommendations. It analyses your AWS environment, examining various
aspects of your resources and configurations, and then provides actionable insights to help you make
informed decisions.
AWS Trusted Advisor is available in multiple AWS support plans, including the AWS Free Tier, as
well as the Business and Enterprise support plans. Different plans provide varying levels of access to
Trusted Advisor features and recommendations. By leveraging Trusted Advisor, AWS customers can
improve their infrastructure's efficiency, reduce costs, enhance security, and ensure their resources
are aligned with AWS best practices.
In conclusion, AWS Trusted Advisor is a valuable tool provided by Amazon Web Services (AWS)
that plays a crucial role in optimizing the usage, cost, and security of your AWS resources. It acts as
a proactive advisor, offering insights and recommendations to help you improve your cloud
infrastructure's efficiency and reliability. AWS Trusted Advisor is an essential tool for AWS
customers, helping them optimize costs, enhance security, and improve the overall reliability and
performance of their cloud infrastructure. By regularly reviewing its recommendations and taking
appropriate actions, organizations can maximize the benefits of their AWS resources while
minimizing potential risks and inefficiencies.
38