AAWWSS Flashcards
Best practice when is comes to designing architectures in the cloud. Allows common tasks to be repeated faster then doing them manually. Benefits include:
Automation
- Rapid testing and experimentation
- Reducing expenses
- Minimizing human error
- Rolling back changes safely and completely
Approach automation in 2 different ways: imperative and declarative.
This focuses on the specific step by step operations required to carry out a task.
Imperative Approach
This focuses on writing code that declares the desired result of the task, rather then how to carry it out. Requires some intelligent software to figure out the operations required to achieve the desired result.
Declarative Approach
Using code to define your infrastructure and configurations
Infrastructure As Code (IaC) Approach
Automatically creates and configures your AWS infrastructure from code that defines the resources you want it to create and how you want those resources configured.
CloudFormation
Automate the testing, building and deployment of applications to EC2 and on-premises instances
AWS Developer Tools of Commit, CodeBuild, CodeDeploy and CodePipeline
Automatically launches, configures and terminates EC2 instances as needed to meet fluctuating demand
EC2 Auto Scaling
Automates common operational tasks such as patching instances and backing up Elastic Block Store (EBS) volumes
Systems Manager
A collection of three different offerings that help automate instance configuration and application deployments using the popular Chef and Puppet configuration management platform
OpsWorks
In CloudFormation the code that defines your resources is stored in text files called ____. These use the proprietary CloudFormation language which can be written in JavaScript Object Notation (JSON) or YAMI format. Also function as infrastructure documentation.
Templates
Templates can be stored in what
S3 Buckets or a GIT Repository
A container that organizes the resources described in the template. The purpose of it is to collectively manage related resources. If you delete this, CloudFormation automatically deletes all of the resources in it.
A Stack
A JSON document, separate from a template, that specifies what resources may be updated. Create this to guard against accidental updates.
Stack Policy
A feature of CloudFormation that monitors your stacks for such changes and alerts you when they occur.
Drift Detection
Difference between CloudFormation and AWS CLI
CloudFormation: You simply adjust the template or parameters to change your resources and CloudFormation figures out how to perform the changes. Easier to update resources in cloudformation then CLI.
CLI: It’s up to you to understand how to change each resource and to ensure that a change you make to one resource doesn’t break another.
Collection of tools designed to help application developers develop, build, test and deploy their application on EC2 and on-premises instances. These tools automate the tasks that must take place to get a new application revision released in production
AWS Developer Tools
AWS Developer Tools enable more than just application development, you can also use them as part of any IaC approach to automate the deployment and configuration of your AWS infrastructure. AWS Developer tools include:
- CodeCommit
- CodeBuild
- CodeDeploy
- CodePipeline
Lets you create private Git repositories that easily integrate with other AWS services.
CodeCommit
_____ is A version control system that you can use to store source code, CloudFormation templates, documents or any arbitrary files –even binary files such as Amazon Machine Image (AMI) and Docker containers. These files are stored in a repository colloquially known as___
Git
Repo
Git uses a process called ____where all changes or commits to a repository are retained indefintely so you can always revert to an old version of a file if you need it.
Versioning
Useful for teams of people who need to collaborate on the same set of files, such as developers who collaborate on a shared source code base for an application. Allows users to check out code by copying or cloning it locally to their machine. Can make changes to it locally and then check it back in to the repository.
CodeCommit
Git uses a process called ____ to identify differences between different versions of a file.
Differencing
A set of actions performed on source code to get it ready for deployment. This specific action depends on the application.
A Build
One of the primary purposes of this process is to run tests against the new code to ensure it works properly
CodeBuild
Automated testing. Developers check their new or modified code into a share repository multiple times a day.
Continuous Integration (CI)
CodeBuild can get source code from
CodeCommit, GitHub, Bitbucket repository or an S3 Bucket
-Any outputs or artifacts that CodeBuild creates are stored in an S3 Bucket, making them accessible to the rest of your AWS environment.
The Codebuild environment always consists of
an operating system and a Docker image that can include a programming language runtime and tools.
AWS offers preconfigured build environments for Java, Ruby, Python, Go, NodeJS, Android, .NET core, PHP and Docker.
You can choose from the following three different compute type for your build environment
- build.general1.small-3 GB of memory & 2 vCPU
- build.general1.medium-7 GB of memory & 4 vCPU
- build.general1.large- 15 GB of memory & 8 vCPU
All of the compute types support Linux, while the medium and large types also support Windows.
Can automatically deploy applications to 1. EC2 instances, 2. the Elastic Container Service (ECS), 3 Lambda and even on premise servers
Works by pulling source files from an S3 bucket, or a GitHub or BitBucket repository
Does not offer the option to deploy from CodeCommit repo but does allow from an S3 Bucket.
CodeDeploy
CodeDeploy Deploy to EC2 or On-Premise Instances
To deploy to an instance, you must install the CodeDeploy agent. The agent allows the CodeDeploy service to copy files to the instance and perform deployment tasks on it.
The agent has been tested with current versions of the following:
- Amazon Linux
- Ubuntu Server
- Microsoft Windows Server
- Red Hat Enterprise Linux (RHEL)
When it comes to upgrade deployments, CodeDeploy supports 2 different deployment types
- In-place Deployment
2. Blue/Green Deployment