Deploying and Managing Infrastructure at Scale Flashcards
What do you know about CloudFormation?
- is a declarative way of outlining your AWS infrastructure for any resource (most of them are supported)
- for example you can say: i want a security group, i want two EC2 instances using the security group and a S3 bucket
- CloudFormation creates these for you, in the right order, with the exact configuration that you specify
What are the benefits of CloudFormation regarding infrastructure as code?
- no resources are manually created, which is excellent for control
- changes to the infrastructure are reviewed through code
What are the benefits of CloudFormation regarding costs?
- each resources within the stack is tagged with an identifier so you can easily see how much a stack costs you
- you can estimate the costs of your resources using CloudFormation template
- saving strategy: in Dev, you could automatic deletion of templates at 5pm and recreate at 8am, safely
What are the benefits of CloudFormation regarding productivity?
- ability to destroy and recreate an infrastructure on the cloud on the fly
- automated generation of diagram for your templates!
- declarative programming (no need to figure out ordering and orchestration)
What are the benefits of CloudFormation regarding “don’t re-invent the wheel”?
- leverage exitsting templates on the web
- leverage the documentation
What do you know about CloudFormation Stack Designer?
- you can see all resources
- you can see all relations
What do you know about AWS Elastic Beanstalk?
- a developer centric view of deploying an application on AWS
- it uses all the components like EC2, ASG, ELB, RDS etc…
- beanstalk = Platform as a Service (PaaS)
- the service is free (only pay for underlying services)
- just the application code is the responsibility of the developer
- support for many platforms and you can write your custom platform (advanced)
Name the five managed services of Elastic Beanstalk
- instance configuration / OS is handled by Beanstalk
- deployment strategy is configurable but performed by Elastic Beanstalk
- capacity provisioning
- load balancing & auto-scaling
- application health-monitoring & responsiveness
Name the three architecture models of Elastic Beanstalk
- single instance deployment: good for dev
- LB + ASG: great for production or pre-production web applications
- ASG only: great for non-web apps in production (workers, etc…)
What do you know about AWS CodeDeploy?
- to deploy application automatically
- works with EC2 instances
- works with On-premise servers
- hybrid service
- servers / instances must be provisioned and configured ahead of time with the CodeDeploy Agent
What do you know about AWS CodeCommit?
- before pushing the application code to servers, it needs to be stored somewhere
- developers usually store code in a repository, using the Git technology
- CodeCommit is the competing product to GitHub
- source-control services that hosts Git-based repositories
- make it easy to collaborate with others on code
- the code changes are automatically versioned
What are the three benefits of AWS CodeCommit?
- fully managed
- scalable & highly available
- private, secured, integrated with AWS
What do you know about AWS CodeBuild?
- code building service in the cloud
- compiles source code, run tests, and produces packages that are ready to be deployed (by CodeDeploy for example)
Name four benefits of AWS CodeBuild
- fully managed, serverless
- continuously scalable & highly available
- secure
- pay-as-you-go-pricing - only pay for the build time
What do you know about AWS CodePipeline?
- orchestrate the different steps to have the code automatically pushed to production
- code->build-> test->provision->deploy
- basis for CI/CD