This
blog covers the various options AWS offers for deploying and updating your
solutions, which are included in the AWS Certified Solutions Architect
Professional SAP-C02 exam domains. Choosing the right deployment strategy and
services is paramount to efficiently deploying new workloads and rolling out new
features or fixes for existing workloads. Your deploying efficiency is the key
to your change management process. As a solutions architect responsible for
managing an organization’s cloud computing architecture, you will often create
deployment architectures aligned with best practices and the organization’s
requirements.
AWS Certified Solutions Architect Professional SAP-C02 exam overview
The
AWS Certified Solutions Architect Professional SAP-C02 exam equips you with the
knowledge to boost your AWS deployment skills. The exam validates your
knowledge of various AWS services and your ability to make architectural
recommendations for deploying applications on AWS. To prepare for the exam, you
should have two or more years of experience using AWS services to design and
implement cloud solutions. The exam helps you master advanced skills in the
following areas of cloud architecture:
●
Select the best AWS services for different cloud scenarios.
●
Create
scalable and fault-tolerant cloud architectures.
●
Make
cloud deployments as cost-effective as possible.
●
Implement
solutions that meet specific business needs.
SAP-C02 certification career pathways
Until
2018, before taking the AWS Certified Solutions Architect Professional exam,
you must pass the AWS Certified Solutions Architect Associate SAA-C03 exam. At
present, the course does not have any formal prerequisites. However, as the
SAP-C02 exam assesses expert-level cloud solutions architect skills, building
your foundational knowledge by completing the following exams will help you
better prepare for the SAP-C02 exam.
●
AWS Certified Cloud Practitioner (CLF-C02)
●
AWS Certified Solutions Architect Associate (SAA-C03)
Figure
1. SAP-C02 certification career pathways
After
you complete SAP-C02, your next steps can depend on your career goals. However,
as a natural progression, you can pursue the speciality courses.
Figure
2. AWS career pathways
Exam domains and deployment topics
As
a solution architect, you must know the AWS deployment strategies, deployment
services, and AWS Well-Architected Framework (a collection of best practices for
designing cloud architectures). If your
focus is on deployment skills, prioritize studying Domain 2 (Design for New
Solutions) and Domain 3 (Continuous Improvement for Existing Solutions), as
these domains cover the majority of the deployment-related content in the
SAP-C02 exam.
Table.
Deployment topics in domains 2 and 3
Now, let’s take a detailed look at how expert-level deployment skills are
covered in this course for a professional AWS certification career. The
concepts in this blog will help you with AWS solutions architect exam
preparation.
Deployment phases and CI/CD Pipeline
Deployments are seamless streams of automated processes that create, build, deploy, monitor, and modify code throughout the entire SDLC. This seamless or continuous chain of events on the AWS Cloud is the continuous integration/continuous deployment (CI/CD) pipeline, which includes the following practices:
- Continuous integration: merge code changes back to the main branch
as frequently as possible, enabled by automated testing as you go.
- Continuous delivery: automatically deploy all code changes to the
testing or production environment after the build stage.
- Continuous deployment: deploy all code changes that have passed all phases of the pipeline to production without human intervention.
The
CI/CD pipeline combines continuous integration, delivery, and deployment into
four major phases:
●
Source
The phase where code is written and
stored in a version control system
●
Build
The process of compiling source code
into executable artifacts
●
Testing
Automated and manual checks to
validate functionality, performance, and security of the application.
●
Staging
A pre-production environment mimicking
production for final validation of the deployment.
● Production
The live environment where the application is deployed and accessed by
end-users.
A
clear grasp of CI/CD phases helps you design robust, efficient, and secure
deployment pipelines tailored to an organization's goals.
AWS CI/CD pipeline components
AWS
provides a variety of services to help set up a CI/CD pipeline, supporting each
phase of the deployment process. As a solution architect, you can design a
CI/CD pipeline using the following AWS code services.
- Code Pipeline: a key service to CI/CD, which allows you to model, visualize, and automate the software release process.
- AWS CodeCommit: a secure, highly scalable, managed source-control service that hosts private Git repositories
- AWS CodeBuild: a CI service that compiles source code, runs tests, and produces ready-to-deploy software packages.
- AWS CodeDeploy: a deployment service that automates code deployments to any instance.
Figure.
AWS services for different phases of CI/CD
AWS Deployment strategies
A
deployment strategy ensures that you efficiently deploy new workloads and roll
out new features or fixes for existing workloads, which is essential to any
enterprise’s change management process. Different AWS services support
different deployment strategies. The popular strategies are the following:
⇒
Blue/Green: enables you to roll out an update to a new fleet
(green fleet) while your old fleet (blue fleet) is still active. This strategy
minimizes downtime and simplifies rollback
⇒
Rolling: slowly replaces previous versions of an application
with new versions of an application to all users. This helps maintain
availability during the deployment process
⇒
Canary: allows you to roll out a new version of an application to
a small subset of users called the canary group. This allows for early
detection of issues before the deployment is fully rolled out to all users.
AWS Deployment Services
The
exam covers the following AWS deployment services in detail:
●
AWS Elastic Beanstalk
●
AWS CodeDeploy
●
Amazon Elastic Container Service (ECS)
● AWS CloudFormation
In
addition to these deployment options, the course covers other
infrastructure-as-code (IaC) tools such as AWS Cloud Development Kit (CDK) and
AWS Serverless Application Model (AWS SAM). IaC is a central theme in
SAP-C02. With IaC, you define in code
what you want AWS to provision, ensuring consistent, scalable, and automated
deployments.
CodeDeploy
CodeDeploy
automates the deployment of your applications, deployed using EC2 instances,
on-premises servers, containers, or Lamba functions. CodePipeline, CodeCommit,
CodeBuild, and other AWS code family services are frequently used in
conjunction with CodeDeploy. It is designed to be used with pre-existing
compute resources; CodeDeploy does not generate compute resources for you. The
following are the major components of CodeDeploy.
Example1.
Components in a CodeDeploy deployment on an EC2/On-Premises compute platform.
AWS Elastic Beanstalk
Elastic
Beanstalk is a fully managed web application deployment service. It has the
following components.
Table.
Elastic Beanstalk components
The
deployment process in Elastic Beanstalk
starts with creating an application, followed by uploading an application
version in the form of an application source bundle (for example, a Java .war
file) to Elastic Beanstalk, and then providing some information about the
application. Next, Elastic Beanstalk generates and sets up the AWS resources
required to run your code, as well as instantly starts an environment. After
your environment is launched, you can then manage your environment and deploy
new application versions. The following diagram illustrates the workflow of
Elastic Beanstalk.
Figure.
Elastic Beanstalk deployment workflow
Elastic
Beanstalk supports the following deployment strategies:
●
All-at-one
●
Rolling
●
Rolling with additional batch
●
Immutable
●
Traffic splitting
AWS Elastic Container Service
Amazon
Elastic Container Service (Amazon ECS) is container management service
that supports Docker containers, and it allows you to easily run applications
on a managed cluster of Amazon EC2 instances. ECS has the following components.
ECS
supports several deployment strategies for your containerized applications, and
it integrates with CloudWatch to support monitoring compute resources and
application containers.
AWS CloudFormation
CloudFormation is
an infrastructure-as-code (IaC) service for automatically creating, managing,
and provisioning AWS resources. It has
the following components.
Comparison of deployment options
The
SAP-C02 exam expects you to compare and contrast deployment options like
Elastic Beanstalk, CodeDeploy, and CloudFormation, focusing on their use cases,
strengths, and limitations. Your ability
to compare will help you select the right tools for specific use cases.
Table. Comparison of Features
You can further compare these tools based on their capabilities to provision,
configure, deploy, scale, and monitor.
Advanced Deployment Skills
The
SAP-02 exam includes additional tools for advanced deployment skills. Here are
some of those skills.
Multi-Account and Multi-Region Deployments Using AWS CloudFormation and Service Catalog
Organizations
with multiple AWS accounts and regions can use AWS Service Catalog with CloudFormation to deploy products
automatically and consistently across all accounts and regions.
Service Catalog allows you to create, distribute, and
launch AWS resources that are configured using
IaC tools, supporting AWS CloudFormation natively. You can
define a catalog of approved products such as EC2 instances, RDS
databases, and S3 buckets, as well as third-party software products and provide
granular access control to this resource. When used with CloudFormation, you
can automate the deployment of these resources.
You
can use AWS CloudFormation StackSets to launch Service Catalog products across
multiple AWS Regions and accounts. You can specify the order in which products
deploy sequentially within AWS Regions. Across accounts, products are deployed
in parallel. When launching, users can specify failure tolerance and the
maximum number of accounts in which to deploy in parallel. Read more here.
AWS Cloud Development Kit (CDK)
AWS
CDK is an open-source IaC tool that allows developers to define AWS resources
in code. While CloudFormation only allows for YAML and JSON, AWS CDK supports
JavaScript, TypeScript, Python, Java, C#, and Go to define cloud infrastructure
and provision resources through CloudFormation. CDK has three levels of
constructs.
- Layer 1 maps 1:1 with CloudFormation
resource types and provides a CDK version of CloudFormation resource types,
without added abstraction.
- Layer 2 provides resources developed by the
CDK team. It provides a higher-level abstraction through an intuitive
intent-based API. This layer makes up most of the AWS CDK.
- Layer 3 is the highest level of AWS CDK abstraction layers where
you can use the building blocks provided by layers 1 and 2. As a solution
architect, you will use this layer to create AWS architectures for specific use
cases in an application.
Deploying serverless applications using AWS SAM
AWS
Serverless Application Model (AWS SAM) is an open-source framework that enables
you to build serverless applications on AWS, using infrastructure as code. SAM
consists of three components:
●
The AWS SAM project
●
AWS SAM templates (included in the SAM project)
●
SAM CLI
SAM templates
are an extension of AWS CloudFormation templates, which means when
you deploy an AWS SAM template, it is converted to CloudFormation to create the
defined resources. The AWS SAM CLI is a developer tool that you can use with
AWS SAM templates and supported third-party integrations to build and run your
serverless applications.
All
SAM configurations are in YAML code, and it helps you run Lambda, API Gateway,
and DynamoDB locally. You can use CodeDeploy with SAM to deploy Lambda
functions.
Example.
CI/CD Architecture for Serverless Deployment
Managing Application Configurations
Application
configuration defines the structure of your cloud deployment. With configuration management, you can
monitor and update configuration data that software uses throughout its
lifecycle. SAP-C02 covers the following configuration management tools. These
tools complement the IaC tools by simplifying system deployment and enabling
scalability on the cloud.
AWS
Config
⇒
Allows you to assess, audit, and evaluate configurations of your
AWS resources
⇒
Creates baseline for various configuration setting and files, and
then track variations against the baseline
⇒
Flags a resource if it does not comply with Config rules
⇒
Helps you configure and operate applications in a cloud
enterprise by using Puppet or Chef.
AWS System
Manager (AWS SM)
⇒
Provides a centralized console with tools for various system
management tasks
⇒
Allows to run commands on a large fleet of managed nodes
⇒
Manages AWS-based and on-premises-based systems via the SM agent.
Conclusion
There is not a “one size fits all” deployment solution on AWS. While designing a deployment solution, you must align the applications with the AWS services and combine multiple deployment services. AWS Certified Solutions Architect Professional SAP-C02 course helps with expert-level skills with scenario-based learning and hands-on labs. You will be able to analyze different deployment challenges, select the appropriate AWS services, and apply deployment skills in complex real-world scenarios. Enrol in the Whizlabs AWS Certified Solutions Architect Professional (SAP-C02) exam course for a structured study plan, scenario-based learning, and hands-on practice. For additional hands-on experience of the services, check our AWS hands-on labs and AWS sandboxes.