AWS DevOps Engineer Professional Master Cheat Sheet
AWS DevOps Engineer Professional Master Cheat Sheet
SDLC
Deployment Types:
Single Target
All-at-once
Minimum In-service
pg. 1
SKILLCERTPRO
No downtime
Rolling Deployment
Canary Deployment
CodeCommit
Version control service to privately store and manage assets (such as documents,
source code, and binary files) in the cloud
pg. 2
SKILLCERTPRO
CodeBuild
Fully managed continuous integration service in the cloud. CodeBuild compiles
source code, runs tests, and produces packages that are ready to deploy.
Eliminates the need to provision, manage, and scale your own build servers
Automatically scales up and down and processes multiple builds concurrently,
so builds don’t have to wait in a queue.
Use prepackaged build environments or custom build environments to use
your own build tools
Pay by the minute
How it Works
As input, you must provide CodeBuild with a build project. A build project defines
how CodeBuild runs a build. It includes information such as where to get the source
code, the build environment to use, the build commands to run, and where to store
the build output. A build environment represents a combination of operating system,
programming language runtime, and tools that CodeBuild uses to run a build.
pg. 3
SKILLCERTPRO
Steps:
2. CodeBuild downloads the source code into the build environment and then
uses the build specification (build spec), as defined in the build project or
included directly in the source code. A build spec is a collection of build
commands and related settings, in YAML format, that CodeBuild uses to run a
build.
3. If there is any build output, the build environment uploads its output to an
Amazon S3 bucket. The build environment can also perform tasks that you
specify in the build spec (for example, sending build notifications to an
Amazon SNS topic).
5. While the build is running, you can use the CodeBuild console, AWS CLI, or
AWS SDKs, to get summarized build information from CodeBuild and detailed
build information from Amazon CloudWatch Logs. If you use AWS
CodePipeline to run builds, you can get limited build information from
CodePipeline.
Sources
CodeBuild can connect to AWS CodeCommit, S3, GitHub, and GitHub Enterprise and
Bitbucket to pull source code
Programming Frameworks
Java, Ruby, Python, Go, Node.js, Android, .NET Core, PHP, and Docker. Customize an
environment by creating a Docker image and uploading it to the Amazon EC2
Container Registry or the Docker Hub registry
Jenkins Integration
CodeBuild Plugin for Jenkins can be used to integrate CodeBuild into Jenkins jobs
Security
Specify a key stored in the AWS Key Management Service (AWS KMS) to
encrypt your artifacts
pg. 4
SKILLCERTPRO
Runs build in fresh environments isolated from other users and discards each
build environment upon completion. CodeBuild provides security and
separation at the infrastructure and execution levels.
Buildspec.yml
A build spec is a collection of build commands and related settings, in YAML format,
that CodeBuild uses to run a build. You can include a build spec as part of the source
code or you can define a build spec when you create a build project.
By default, the build spec file must be named buildspec.yml and placed in the root of
your source directory. You can override the default build spec file name and location
version: 0.2
run-as: Linux-user-name
env:
variables:
key: "value"
key: "value"
parameter-store:
key: "value"
key: "value"
phases:
install:
run-as: Linux-user-name
commands:
- command
- command
finally:
- command
- command
pre_build:
run-as: Linux-user-name
commands:
- command
- command
finally:
- command
- command
build:
run-as: Linux-user-name
commands:
- command
- command
finally:
- command
- command
post_build:
run-as: Linux-user-name
pg. 5
SKILLCERTPRO
commands:
- command
- command
finally:
- command
- command
artifacts:
files:
- location
- location
name: artifact-name
discard-paths: yes
base-directory: location
secondary-artifacts:
artifactIdentifier:
files:
- location
- location
name: secondary-artifact-name
discard-paths: yes
base-directory: location
artifactIdentifier:
files:
- location
- location
discard-paths: yes
base-directory: location
cache:
paths:
- path
- path
Dis
value Operati
vCP k
Compute type computeType Mem ng
Us spa
ory system
ce
build.general1.s BUILD_GENERAL1_S 64
3 GB 2 Linux
mall MALL GB
Linux,
build.general1.m BUILD_GENERAL1_M 128
7 GB 4 Windo
edium EDIUM GB
ws
Linux,
build.general1.lar BUILD_GENERAL1_L 128
15 GB 8 Windo
ge ARGE GB
ws
pg. 6
SKILLCERTPRO
Programmin
g language
Platform Image identifier Definition
or
framework
Windows
Server Core (Base Image) aws/codebuild windows-base:1.0
2016
Standard
image of
the Ubuntu
18.04
platform
contains the
following
programmin
g
languages:
Ruby 2.x
Python 3.x
PHP 7.x
Node 10.x
Java 8
Golang 1.x
.NET Core 2.x
Docker 18.x
Android 28.x
CodeDeploy
Service that automates code deployments to any instance, including Amazon EC2
instances and instances running on-premises.
pg. 7
SKILLCERTPRO
CodeDeploy EC2/On-
AWS Lambda Amazon ECS
Component Premises
pg. 8
SKILLCERTPRO
CodeDeploy EC2/On-
AWS Lambda Amazon ECS
Component Premises
Deploys an updated
Shifts
version of an Amazon
Deploys a new production
ECS containerized
revision that traffic from one
application as a new,
consists of an version of a
replacement task set.
application and Lambda
CodeDeploy reroutes
AppSpec file. function to a
production traffic from
The AppSpec new version of
Deployment the task set with the
specifies how the same
original version to the
to deploy the function. The
new replacement task
application to AppSpec file
set with the updated
the instances in specifies which
version. When the
a deployment Lambda
deployment completes,
group. function version
the original task set is
to deploy.
terminated.
Settings that
determine the
deployment Settings that Traffic is always shifted
speed and the determine how all at once. Custom
minimum traffic is shifted deployment
Deployment
number of to the updated configuration settings
configuration
instances that Lambda cannot be specified for
must be function an Amazon ECS
healthy at any versions. deployment.
point during a
deployment.
pg. 9
SKILLCERTPRO
CodeDeploy EC2/On-
AWS Lambda Amazon ECS
Component Premises
A collection of A collection of
deployment deployment
A collection of
groups and groups and
deployment groups and
revisions. An revisions. An
revisions. An application
EC2/On- application
Application used for an Amazon ECS
Premises used for an
deployment uses the
application AWS Lambda
Amazon ECS compute
uses the deployment
platform.
EC2/On- uses the
Premises Amazon ECS
pg. 10
SKILLCERTPRO
CodeDeploy EC2/On-
AWS Lambda Amazon ECS
Component Premises
compute compute
platform. platform.
Note: the name of the AppSpec file for an EC2/On-Premises deployment must be
appspec.yml. The name of the AppSpec file for an Amazon ECS or AWS Lambda
deployment must be appspec.yaml.
Determine:
Amazon ECS task definition file. This is specified with its ARN in the
TaskDefinition instruction in the AppSpec file.
The container and port in replacement task set where your Application Load
Balancer or Network Load Balancer reroutes traffic during a deployment. This
is specified with the LoadBalancerInfo instruction in the AppSpec file.
Optional information about your Amazon ECS service, such the platform
version on which it runs, its subnets, and its security groups.
Optional Lambda functions to run during hooks that correspond with lifecycle
events during an Amazon ECS deployment. For more information, see
AppSpec 'hooks' Section for an Amazon ECS Deployment.
version: 0.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: "arn:aws:ecs:us-east-1:111222333444:task-definition/my-
task-definition-family-name:1"
LoadBalancerInfo:
ContainerName: "SampleApplicationName"
ContainerPort: 80
# Optional properties
PlatformVersion: "LATEST"
NetworkConfiguration:
AwsvpcConfiguration:
pg. 11
SKILLCERTPRO
Subnets: ["subnet-1234abcd","subnet-5678abcd"]
SecurityGroups: ["sg-12345678"]
AssignPublicIp: "ENABLED"
Hooks:
- BeforeInstall: "LambdaFunctionToValidateBeforeInstall"
- AfterInstall: "LambdaFunctionToValidateAfterTraffic"
- AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficStarts"
- BeforeAllowTraffic: "LambdaFunctionToValidateBeforeAllowingProductionTraffic"
- AfterAllowTraffic: "LambdaFunctionToValidateAfterAllowingProductionTraffic"
Determine:
An AppSpec file can be YAML-formatted or JSON-formatted. You can also enter the
contents of an AppSpec file directly into CodeDeploy console when you create a
deployment.
version: 0.0
Resources:
- myLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Name: "myLambdaFunction"
Alias: "myLambdaFunctionAlias"
CurrentVersion: "1"
TargetVersion: "2"
Hooks:
- BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift"
- AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"
Determine:
What it should install onto your instances from your application revision in
Amazon S3 or GitHub.
Which lifecycle event hooks to run in response to deployment lifecycle events.
Steps:
pg. 12
SKILLCERTPRO
Complete AppSpec file, bundle it, along with the content to deploy, into an
archive file (zip, tar, or compressed tar)
After you have a bundled archive file (known in CodeDeploy as a revision), you
upload it to an Amazon S3 bucket or Git repository.
Use CodeDeploy to deploy the revision.
The appspec.yml for an EC2/On-Premises compute platform deployment is
saved in the root directory of your revision.
version: 0.0
os: linux
files:
- source: Config/config.txt
destination: /webapps/Config
- source: source
destination: /webapps/myApp
hooks:
BeforeInstall:
- location: Scripts/UnzipResourceBundle.sh
- location: Scripts/UnzipDataBundle.sh
AfterInstall:
- location: Scripts/RunResourceTests.sh
timeout: 180
ApplicationStart:
- location: Scripts/RunFunctionalTests.sh
timeout: 3600
ValidateService:
- location: Scripts/MonitorService.sh
timeout: 3600
runas: codedeployuser
Cloudformation
Key Terms
1. Stack - manage related resources as a single unit called a stack. Create, update, and
delete a collection of resources by creating, updating, and deleting stacks. All the
resources in a stack are defined by the stack's AWS CloudFormation template.
pg. 13
SKILLCERTPRO
2. Template - JSON or YAML formatted text file. AWS CloudFormation uses these
templates as blueprints for building your AWS resources.
3. Stack Policy - IAM style policy statement which governs what can be changed and
who can change it.
Anatomy of a Template
Format Version (optional)
o The AWS CloudFormation template version that the template conforms to.
The template format version is not the same as the API or WSDL version.
Description (optional)
o A text string that describes the template. This section must always follow the
template format version section.
Metadata (optional)
o Objects that provide additional information about the template.
Parameters (optional)
o Values to pass to your template at runtime (when you create or update a
stack).
Mappings (optional)
o A mapping of keys and associated values that you can use to specify
conditional parameter values, similar to a lookup table. You can match a key
to a corresponding value by using the Fn::FindInMap intrinsic function in the
Resources and Outputs sections.
Conditions (optional)
o Conditions that control whether certain resources are created or whether
certain resource properties are assigned a value during stack creation or
update. For example, you could conditionally create a resource that depends
on whether the stack is for a production or test environment.
Transform (optional)
o For serverless applications (also referred to as Lambda-based applications),
specifies the version of the AWS Serverless Application Model (AWS SAM) to
use. When you specify a transform, you can use AWS SAM syntax to declare
resources in your template. The model defines the syntax that you can use
and how it is processed.
o You can also use AWS::Include transforms to work with template snippets that
are stored separately from the main AWS CloudFormation template. You can
store your snippet files in an Amazon S3 bucket and then reuse the functions
across multiple templates.
Resources (required)
o Specifies the stack resources and their properties, such as an Amazon Elastic
Compute Cloud instance or an Amazon Simple Storage Service bucket. You
can refer to resources in the Resources and Outputs sections of the template.
Outputs (optional)
pg. 14
SKILLCERTPRO
o Describes the values that are returned whenever you view your stack's
properties. For example, you can declare an output for an S3 bucket name
and then call the aws cloudformation describe-stacks AWS CLI command to
view the name.
Intrinsic Functions
Fn::Base64
Returns the Base64 representation of the input string. This function is typically used
to pass encoded data to Amazon EC2 instances by way of the UserData property.
JSON
{ "Fn::Base64" : valueToEncode }
YAML
!Base64 valueToEncode
Fn::Cidr
Returns an array of CIDR address blocks. The number of CIDR blocks returned is
dependent on the count parameter.
JSON
ipBlock: The user-specified CIDR address block to be split into smaller CIDR blocks.
count: The number of CIDRs to generate. Valid range is between 1 and 256.
cidrBits: The number of subnet bits for the CIDR. For example, specifying a value "8"
for this parameter will create a CIDR with a mask of "/24".
Fn::FindInMap
Returns the value corresponding to keys in a two-level map that is declared in the
Mappings section JSON
pg. 15
SKILLCERTPRO
MapName:
The logical name of a mapping declared in the Mappings section that contains the
keys and values.
TopLevelKey: The top-level key name. Its value is a list of key-value pairs.
SecondLevelKey: The second-level key name, which is set to one of the keys from
the list assigned to TopLevelKey.
Fn::GetAtt
Returns the value of an attribute from a resource in the template. JSON
!GetAtt logicalNameOfResource.attributeName
Fn::GetAZs
Returns an array that lists Availability Zones for a specified region. Prevents hard-
coding a full list of Availability Zones for a specified region. JSON
{ "Fn::GetAZs" : "region" }
YAML
!GetAZs region
Fn::ImportValue
Returns the value of an output exported by another stack. You typically use this
function to create cross-stack references. Note:
For each AWS account, Export names must be unique within a region.
You can't create cross-stack references across regions.
For outputs, the value of the Name property of an Export can't use Ref or GetAtt
functions that depend on a resource.
Similarly, the ImportValue function can't include Ref or GetAtt functions that depend
on a resource.
You can't delete a stack if another stack references one of its outputs.
You can't modify or remove an output value that is referenced by another stack.
JSON
{ "Fn::ImportValue" : sharedValueToImport }
YAML
!ImportValue sharedValueToImport
pg. 16
SKILLCERTPRO
Note: You can't use the short form of !ImportValue when it contains a !Sub.
Example:
Fn::ImportValue:
!Sub "${NetworkStack}-SubnetID"
Fn::Join
Appends a set of values into a single value, separated by the specified delimiter. If a
delimiter is the empty string, the set of values are concatenated with no delimiter.
JSON
Fn::Select
Returns a single object from a list of objects by index.
Note:
Fn::Select does not check for null values or if the index is out of bounds of the array.
Both conditions will result in a stack error, so you should be certain that the index
you choose is valid, and that the list contains non-null values.
JSON
Fn::Split
pg. 17
SKILLCERTPRO
Split a string into a list of string values so that you can select an element from the
resulting string list. Specify the location of splits with a delimiter, such as , (a comma).
After you split a string, use the Fn::Select function to pick a specific element. JSON
Fn::Sub
Substitutes variables in an input string with values that you specify JSON
!Sub
- String
- { Var1Name: Var1Value, Var2Name: Var2Value }
Name: !Sub
- www.${Domain}
- { Domain: !Ref RootDomainName }
Fn::Transform
Specifies a macro to perform custom processing on part of a stack template. Macros
enable you to perform custom processing on templates, from simple actions like
find-and-replace operations to extensive transformations of entire templates.
You can also use Fn::Transform to call the AWS::Include Transform transform, which is
a macro hosted by AWS CloudFormation. JSON
Ref
Returns the value of the specified parameter or resource. JSON
{ "Ref" : "logicalName" }
YAML
!Ref logicalName
pg. 18
SKILLCERTPRO
Condition Functions
Use intrinsic functions to conditionally create stack resources. Conditions are
evaluated based on input parameters that you declare when you create or update a
stack.
Define all conditions in the Conditions section of a template except for Fn::If
Fn::And
o Fn::And: [condition]
o !And [condition]
o Examples:
"MyAndCondition": {
"Fn::And": [
{"Fn::Equals": ["sg-mysggroup", {"Ref": "ASecurityGroup"}]},
{"Condition": "SomeOtherCondition"}
]
}
MyAndCondition: !And
- !Equals ["sg-mysggroup", !Ref ASecurityGroup]
- !Condition SomeOtherCondition
Fn::Equals
Fn::If
pg. 19
SKILLCERTPRO
}]
SecurityGroups:
- !If [CreateNewSecurityGroup, !Ref NewSecurityGroup, !Ref
ExistingSecurityGroup]
Fn::Not
o "Fn::Not": [{condition}]
o !Not [condition]
o Examples:
"MyNotCondition" : {
"Fn::Not" : [{
"Fn::Equals" : [
{"Ref" : "EnvironmentType"},
"prod"
]
}]
}
MyNotCondition:
!Not [!Equals [!Ref EnvironmentType, prod]]
Fn::Or
pg. 20
SKILLCERTPRO
Example:
In template:
CreationPolicy:
AutoScalingCreationPolicy:
MinSuccessfulInstancesPercent: Integer
ResourceSignal:
Count: Integer
Timeout: String
MyInstance:
Type: AWS::EC2::Instance
Properties:
UserData: !Base64
'Fn::Join':
- ''
- - |
#!/bin/bash -x
- |
# Install the files and packages from the metadata
- '/opt/aws/bin/cfn-init -v '
- ' --stack '
- !Ref 'AWS::StackName'
- ' --resource MyInstance '
- ' --region '
- !Ref 'AWS::Region'
- |+
- |
# Signal the status from cfn-init
- '/opt/aws/bin/cfn-signal -e $? '
- ' --stack '
- !Ref 'AWS::StackName'
- ' --resource MyInstance '
- ' --region '
- !Ref 'AWS::Region'
- |+
In most conditions, CreationPolicy is preferable to WaitConditon. Use a wait
condition for situations like the following:
Example
WebServerGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
AvailabilityZones:
Fn::GetAZs: ""
LaunchConfigurationName:
Ref: "LaunchConfig"
MinSize: "1"
MaxSize: "5"
pg. 21
SKILLCERTPRO
DesiredCapacity:
Ref: "WebServerCapacity"
LoadBalancerNames:
-
Ref: "ElasticLoadBalancer"
WaitHandle:
Type: AWS::CloudFormation::WaitConditionHandle
WaitCondition:
Type: AWS::CloudFormation::WaitCondition
DependsOn: "WebServerGroup"
Properties:
Handle:
Ref: "WaitHandle"
Timeout: "300"
Count:
Ref: "WebServerCapacity"
Nested Stack
Stack is a resource which has following benefits
Delete (default)
Retain
Snapshot (only on a few services)
Stack Updates
Use Stack Policy to control actions Example:
{
"Statement" : [
{
"Effect" : "Allow",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*"
},
{
"Effect" : "Deny",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "LogicalResourceId/ProductionDatabase"
pg. 22
SKILLCERTPRO
}
]
}
1. No interruption
2. Some interruption
3. Replacement
4. Deletion
Custom Resources
Create resources outside of the available AWS resources. Involves 3 parties:
1. Template developer
o Creates a template that includes a custom resource type. The template
developer specifies the service token and any input data in the template.
2. custom resource provider
o Owns the custom resource and determines how to handle and respond to
requests from AWS CloudFormation. The custom resource provider must
provide a service token that the template developer uses.
3. AWS CloudFormation
o During a stack operation, sends a request to a service token that is specified
in the template, and then waits for a response before proceeding with the
stack operation.
1. Template developer defines a custom resource in his or her template, which includes
a service token and any input data parameters.
o input data might be required; service token is always required.
o service token specifies where AWS CloudFormation sends requests to, such as
to an Amazon SNS topic ARN or to an AWS Lambda function ARN
2. During create, update, or delete a custom resource, AWS CloudFormation sends a
request to the specified service token.
o service token must be in the same region in which you are creating the stack.
o CloudFormation includes information such as the request type and a pre-
signed Amazon Simple Storage Service URL, where the custom resource sends
responses
pg. 23
SKILLCERTPRO
3. Custom resource provider processes the AWS CloudFormation request and returns a
response of SUCCESS or FAILED to the pre-signed URL.
o Response is in a JSON-formatted file
o Custom resource provider can also include name-value pairs that the
template developer can access
4. After getting a SUCCESS response, AWS CloudFormation proceeds with the stack
operation. If a FAILED response or no response is returned, the operation fails.
pg. 24
SKILLCERTPRO
Elastic Beanstalk
Upload an application and Elastic Beanstalk automatically handles the deployment
details of capacity provisioning, load balancing, auto-scaling, and application health
monitoring
Useful for developers who only want to write code and not maintain infrastructure
supports many languages as well as Docker, allowing extensibility for languages not
natively supported
ebextentions
.ebextensions allow advanced environment customization with YAML or JSON
configuration files
AWS Config
Enables you to assess, audit, and evaluate the configurations of your AWS resources
Allows for:
pg. 25
SKILLCERTPRO
Continuous monitoring
o Get SNS notifications on changes
Continuous assessment
o keep resources in line with policies
Troubleshooting
o compare points in time
o integrates directly with cloudtrail
Compliance monitoring
o view compliance status across entire enterprise in AWS
Change management
o Track resource relationships
o Review resource dependencies
At a high level:
Define rules that are used to check compliance of resources in your account
View compliance in console or receive warnings via SNS
ECS
Highly scalable, high performance container management service that supports
Docker containers and allows you to easily run applications on a managed cluster of
Amazon EC2 instances.
Highly scalable
Fast
Manage docker containers on a cluster
Supports API calls
Supports scheduling
Use cases:
Data processing: consolidate data from multiple databases into unified reports, refine
and reduce large data sets into useful formats, or coordinate multi-step analytics and
machine learning workflows
pg. 26
SKILLCERTPRO
DevOps and IT automation: build tools for continuous integration and continuous
deployment, or create event-driven applications that automatically respond to
changes in infrastructure
E-commerce: automate mission-critical business processes, such as order fulfillment
and inventory tracking
Web applications: implement robust user registration processes and sign-on
authentication
OpsWorks
There are three OpsWorks services
Chef:
OpsWorks Stacks/Chef is a declarative state engine
pacakages to install
services to control
configuraton files to update
Chef Recipes
pg. 27
SKILLCERTPRO
Use Chef recipes to automate everything Chef can do, such as creating directories
and users, configuring databases, etc
Berkshelf
CloudWatch
Metric gathering
Monitoring / Alerting
Graphing
Logging
Data points < 60 seconds are available for 3 hours (high resolution)
Data points = 60 seconds are available for 15 days
Data points = 300 seconds (5 minutes) are available for 63 days
Data points = 3600 (1 hour) are available for 445 days (15 months)
Note: shorter term data points are averaged to the next tier at the end of their
lifecycle. e.g. a 1 second data point becomes a 1 minute average after 3 hours
CloudWatch Metrics
Concepts:
pg. 28
SKILLCERTPRO
Cloudwatch Events
Concepts:
CloudWatch Logs
Centralize the logs from all of your systems, applications, and AWS services that you
use, in a single, highly scalable service.
view logs
pg. 29
SKILLCERTPRO
Concepts:
X-Ray
Collects data about requests that your application serves
Provides tools you can use to view, filter, and gain insights into that data
Identify issues and opportunities for optimization
Service Catalog
Allows IT administrators to create, manage, and distribute catalogs of approved
products to end users, who can then access the products they need in a personalized
portal
Has an API that provides programmatic contol over all end-user actions as an
alternative to AWS Console
Allows you to create custom interfaces and apps
pg. 30
SKILLCERTPRO
Trusted Advisor
Service that provides real time guidance to ensure resources are provisioned and
managed correctly, following AWS best practices
Categories:
Cost optimization
Performance
o e.g. under-utilizing resources
Security
Fault tolerance
Service Limits
Systems Manager
Collecting software inventory
Applying OS patches
Creating system images
Configuring operation systems
Manage hybrid cloud systems from a single interface (AWS, on-prem)
Reducing costs
Features
Run command
o remote management of servers
State manager
o manage all your servers' configuration
o e.g. firewall settings
o e.g. anti-virus definitions
Inventory
pg. 31
SKILLCERTPRO
Organizations
Policy-based management for multiple AWS accounts.
Accounts can be split several ways within business: Environment (dev, qa, prod),
Projects, or Business Units (Sales, support, dev, etc)
Secrets Manager
Service to help protect secrets needed to access applications, service, and IT
resources
Encrypts secrets at rest using your own encrpytion keys stored in KMS
Secrets can be database credentials, passwords, 3rd part API keys, any text,
etc.
Store and control access to them with Secrets Manager Console/CLI/API/SDK
Hardcoded credentials in code is replaced with API call
Secrets can be rotated automatically according to your own schedule
Macie
pg. 32
SKILLCERTPRO
Security service that uses machine learning to automatically discover, classify, and
protect sensitive data in AWS
Managed service:
Certificate Manager
Easily provision, manage, and deploy SSL/TLS certificates
GuardDuty
A threat detection service that continuously monitors for malicious or unauthorized
behavior
It uses:
pg. 33
SKILLCERTPRO
Machine Learning
CloudWatch Events
How it works:
1. Enable service
2. Analyze continuously
3. Detect Threats using machine learning
4. Act
Amazon Inspector
Automated service that assess your applications for vulnerabilities and produces a
security findings report. Mainly based around protecting EC2 instances.
How it works:
Amazon Kinesis
Collect, process, and analyze video and data streams in real time
Made of 4 services
pg. 34
SKILLCERTPRO
Kinesis Firehose
pg. 35
SKILLCERTPRO
Kinesis Overview
Exam hint: Kinesis will be an answer if it has to do with large amounts of data
Single Sign-On
Cloud service that makes it easy to centrally manage single sign on access to
multiple AWS accounts and business applications
Features
Relevance
High availability
Fault tolerant
pg. 36
SKILLCERTPRO
CloudFront
A fast content delivery network (CDN) that securely delivers data, video, applications,
and APIs to customers globally
Steps
1. Specify origin servers, like an Amazon S3 bucket or your own HTTP server
2. An origin server stores the original, definitive version of your objects, either in
an Amazon S3 bucket or an HTTP server, such as a web server
4. Upload files to your origin servers: web pages, images, and media files, or
anything that can be served over HTTP or a supported version of Adobe RTMP
(Adobe Flash Media Server)
5. With S3, you can make the objects in your bucket publicly readable or keep
objects private
7. CloudFront assigns a domain name to your new distribution that you can see
in the CloudFront console or via API.
AutoScaling
Scale EC2 instance capacity automatically according to defined conditions
High availability
Better fault tolerance
Cost savings
pg. 37
SKILLCERTPRO
AutoScaling Lifecycle
Overview
pg. 38
SKILLCERTPRO
You can change heartbeat timeout or define it when you create the hook in
the CLI with heartbeat-timeout parameter
You can call the complete-lifecycle-action to tell autoscaling group to
proceed
You can call the record-lifecycle-action-heartbeat command to add more
time to timeout
48 hours is the maximum amount you can keep server in wait state
Cooldowns
Cooldowns ensure that autoscaling group does not launch or terminate more
instances than needed
Cooldowns start when an instance enter InService state, so if instance is left in
Pending:Wait, autoscaling will wait before adding any other servers
Abandon or Continue
Spot Instances
Route 53
Highly available and scalable cloud Domain Name System (DNS) service
Features
Highly Available
Interface directly with EC2 and S3
Fault Tolerant
o multiple routing types (e.g. latency based routing, weighted round
robin)
pg. 39
SKILLCERTPRO
Routing Policies
#RDS Amazon Relational Database Service - create, run, scale relational DBs in the
cloud
Benefits
Fast
Cost effecient
Resizable
Secure
Highly Available
Minimal administration
Supported DB engines
MySQL
MariaDB
Microsoft SQL Server
PostgreSQL
Oracle
Amazon Aurora
pg. 40
SKILLCERTPRO
Scaling - Vertical: - Change instance type - discounts for reserved instances - storage
can be scaled live except MSSQL - Horizontal - Read replicas - Read-only copies
synched with master db - can be in different regions - can be promoted for disaster
recovery - can create a replica of a replica
Aurora
MySql and Postgres compatible DB built for the cloud
Benefits
Backups
Snapshots
pg. 41
SKILLCERTPRO
Replicas
Security
Must be in VPC
SSL secures data in transit
can encrypt data with KMS
encrypted storage at storage/backup/snapshots/replicas
NOTE: you can't encrypt an unencrypted database
DynamoDB
Fully managed NoSQL database that supports key-value and document data
structures
Details
no servers
no storage limitations
fully resilient, highly available
performance scales in a linear way
pg. 42
SKILLCERTPRO
Concepts
DynamoDB Tables
contain items
items contain attributes (including partition key, which must be unique)
attributes can also include sort key
Attribute Types
string
number
binary
boolean
null
Document (lists, maps)
Set (array)
Streams
Overview
pg. 43
SKILLCERTPRO
This guide contains all the resources used, recommendations and tips for how to
study for the AWS - DevOps Engineer Professional Exam.
1. Re:Invent Videos
The following Re:Invent videos cover a large chunk of the material that is in the
exam. We recommend watching them at 1.5x the speed. 1.5x is fast enough to help
get through the videos quickly yet slow enough to be able to comprehend the
material.
2. Whitepapers
These are to all the whitepapers I read, took notes of and reviewed closer to the
exam. It is tough to actually read all of these as it is a lot of material. You may skim
through them but you must be really attentive/focused as you do so. There is a lot of
little details in these whitepapers; details that are crucial to passing the exam.
AWS DevOps
Microservices on AWS
Infrastructure as Code
Jenkins on AWS
pg. 44
SKILLCERTPRO
This course assumes that you have strong knowledge of the exam material. This
course does not cover all the exam material. Instead, this course is about how to
approach the different questions in the exam. It breaks down the thought process of
those who answer these very challenging questions correctly. We recommend going
through this course after you have gone through the above mentioned videos and
whitepapers.
Sample Question
Practice Exam: If you have previously taken an AWS exam, you have the
benefit of taking a free practice exam. Go to your AWS Certification account >
Benefits > Practice Exam and follow the prompts to set it up. This practice
exam is vital. It contains a lot of material that is close to the material in the
actual exam.
5. Terminology
As you are studying for the exam, you will come across a lot of different AWS
terminology and supporting information. Make a point of noting and researching the
ones that you don't necessarily know and looking them up.
pg. 45
SKILLCERTPRO
pg. 46
SKILLCERTPRO
Route53
Cloudfront
Auto Scaling and Load balancers (Heavy emphasis on this)
Certificate Manager
Systems Manager
Service Catalog
Kinesis Datastreams vs Firehose
GuardDuty
AWS Server Migration
AWS SSO
Cost Optimization over all
7: Exam Strategy
Keep track of time
Read both the question and answer in full
Identify the key words in the question and make sure to satisfy ALL
requirements of the question. Two answers may be very similar but a detail in
the question will set them apart.
Spot the distractor/silly answers. Move on quickly from these.
Watch out for mental exhaustion. If you feel this, close your eyes and take 5
deep breaths.
The questions will not be super clear. It's ok to make some assumptions.
An answer that says "Don't do anything", is not the right answer.
Avoid answers that have you doing manual commands/process.
Some answers would not be the best way to do things but could still be right.
Focus on simplest, most technically correct answers
8: Final Note
Request: If you study for this exam and pass, please add your experience about
SkillCertPro to help your colleagues. Good luck in your exam!!
pg. 47