AWS Basic Services
AWS Administration Services
AWS Deployment Services
With the AWS Solutions Architect Professional level certification, Amazon sought to identify individual administrators who are truly platform experts. Unless you've got some significant experience with AWS deployments and good familiarity with the full range of Amazon services, you probably won't have a chance at passing.
However, with this series of Cloud Academy courses, cloud expert Kevin Felichko is committed to making your learning process as smooth and productive as possible. Once complete, Kevin's guide to the Solutions Architect Professional level exam will lead you through the theoretical and practical skills you'll need to master this material.
This first course covers the key conceptual terminology and services that form the base for Amazon cloud architecting. The second course will guide you through fully-realized practical deployments, from start to finish. And the final course (late August, 2015) will focus on exam preparation and, in particular, strategies for confronting the particularly complicated style of question you'll face.
Do you have questions on this course? Contact our cloud experts in our community forum.
AWS offers many different Deployment and Management Services. Each service is geared to a specific use.
Let's take a look at each one starting with Elastic Beanstalk. Elastic Beanstalk is a Deployment Service aimed at developers with features that include command line tools, versioning of deployments, and more. It handles provisioning of EC2 Instances, Load Balancers; it configures Auto Scaling, and includes monitoring.
Elastic Beanstalk supports a wide variety of programming languages including Java, C-Sharp, PHP and Node.js, to name a few. With it you maintain full control over all provisioned resources. Elastic Beanstalk is perfect for testing and staging in development environments.
If a development team has limited knowledge of or authorization to build cloud infrastructure, then this is a great service to consider. As long as you do not have complex infrastructure requirements then you can use this service all the way up to your production environment.
With Elastic Beanstalk you pay only for the resources your deployment uses.
OpsWorks on the other hand is geared toward system administrators and DevOps engineers. It uses Chef to customize tasks, which means it can use community-built configurations for the common and uncommon scenarios you encounter. All configuration can be stored as part of your code. It offers complete automation of scaling activities.
Recently it added support for on-premise deployments to round out hybrid deployment scenarios.
OpsWorks is the perfect choice for applications that require more complex infrastructure and configuration than Elastic Beanstalk supports. If you need to run custom code or Chef recipes based on the lifecycle events, then it makes sense to use OpsWorks. As mentioned as part of the features, if you have a hybrid architecture, this is the service to consider.
The pricing for OpsWorks, like Elastic Beanstalk, is based on the resources your deployment uses. Unless you are in a hybrid architecture, that is, in that situation, you pay an hourly rate for each OpsWorks Agent that you install. An Agent is installed on each on-premise server that you include in your deployment scenario.
CloudFormation is the most comprehensive scripting tools for building and managing your AWS infrastructure. It supports many of the AWS resources that exist today, ranging from VPCs, to Subnets, to EC2 Instances. You can CREATE, DELETE, and UPDATE your infrastructure in a repeatable manner.
Since it is declared in JSON, you can create-- treat your CloudFormation files as part of your code, meaning, you can version-control it. It allows runtime parameters that you can input or use from actions that happen within your script.
CloudFormation is vital to your disaster recovery plans. If one region is down, you can bring up a replacement infrastructure in another. You can use your script when you need to test in non-production environments and it's highly recommended that you use CloudFormation to define your infrastructure no matter its size.
Creating infrastructure via the console without scripting it means you can miss important elements later on that would render a new environment useless or incomplete. There is no cost for using CloudFormation. You only pay for the services you use.
CodeDeploy, the newest of AWS deployment tools, is a service that automates code deployments to EC2 Instances with reduced downtime. Reduce downtimes are accomplished via rolling updates managed through a central management tool that monitors deployment health.
It is language agnostic and integrates easily to existing software release pipelines. This service is ideal for-- in situations where you want to test deployments in a staging environment before pushing to production.
If you are concerned about rolling back in the event of an issue, whether deployment- or application-based, CodeDeploy is built to handle that scenario. It is also meant to work with little to no human involvement, making it less prone to human error. Just like other deployment services offered by AWS, there is no additional charge to use CodeDeploy. You pay for the other resources used, such as EC2 and S3.
AWS has built a variety of services to make building and managing your infrastructure easier and to deploy your applications to that infrastructure without hassles.
For infrastructure management, you should almost always choose CloudFormation. Choosing between the services for deploying your application depends on your needs and who is ultimately in charge of the deployment.
Take time to play with each of these services to better understand their target audiences.
In our next lesson, we will look at what AWS offers for Mobile Solutions.
Kevin is a seasoned technologist with 15+ years experience mostly in software development.Recently, he has led several migrations from traditional data centers to AWS resulting in over $100K a year in savings. His new projects take advantage of cloud computing from the start which enables a faster time to market.
He enjoys sharing his experience and knowledge with others while constantly learning new things. He has been building elegant, high-performing software across many industries since high school. He currently writes apps in node.js and iOS apps in Objective C and designs complex architectures for AWS deployments.
Kevin currently serves as Chief Technology Officer for PropertyRoom.com, where he leads a small, agile team.