AWS Compute Fundamentals
AWS Storage and Database Fundamentals
Services at a Glance
The ‘Foundations for Solutions Architect–Associate on AWS’ course is designed to walk you through the AWS compute, storage, and service offerings you need to be familiar with for the AWS Solutions Architect–Associate exam. This course provides you with snapshots of each service, and covering just what you need to know, gives you a good, high-level starting point for exam preparation. It includes coverage of:
Amazon Elastic Cloud Compute (EC2)
Amazon EC2 Container Service (ECS)
Storage and Database
Amazon Simple Storage Service (S3)
Amazon Elastic Block Store (EBS)
Amazon Relational Database Service (RDS)
Amazon Elastic MapReduce (EMR)
Amazon Simple Queue Service (SQS)
Amazon Simple Notification Service (SNS)
Amazon Simple Workflow Service (SWF)
Amazon Simple Email Service (SES)
Amazon API Gateway
Amazon Data Pipeline
- Review AWS services relevant to the Solutions Architect–Associate exam
- Illustrate how each service can be used in an AWS based solution
This course is for anyone preparing for the Solutions Architect–Associate for AWS certification exam. We assume you have some existing knowledge and familiarity with AWS, and are specifically looking to get ready to take the certification exam.
If you are new to cloud computing I recommend you do our introduction to cloud computing courses first. These courses will give you a basic introduction to the Cloud and with Amazon Web Services. We have two courses that I recommend - What is Cloud Computing? and technical Fundamentals for AWS
The What is Cloud Computing? lecture is part of the Introduction to Cloud Computing learning path. I recommend doing this learning path if you want a good basic understanding of why you might consider using AWS Cloud Services. If you feel comfortable with Cloud, but would like to learn more about Amazon Web Services, then recommend completing the technical Fundamentals for AWS course to build your knowledge about Amazon Web Services and the value the services bring to customers.
If you have any questions or concerns about where to start please email us at firstname.lastname@example.org so we can help you with your personal learning path.
Ok so on to our certification learning path!
Solution Architect Associate for AWS Learning Path
This Course Includes:
- 7 video lectures
- Snapshots of 24 key AWS services
What You'll Learn
|Lecture Group||What you'll learn|
|Compute Fundamentals||Amazon Elastic Cloud Compute (EC2)
Amazon EC2 Container Service (ECS)
Amazon Simple Storage Service (S3)
|Services at a Glance||
Amazon Simple Queue Service (SQS)
If you have thoughts or suggestions for this course, please contact Cloud Academy at email@example.com.
Hello, and welcome to this lecture on AWS Elastic Beanstalk. Along with the EC2 Container service, which helps to install, distribute and deploy applications, AWS Elastic Beanstalk does much the same.
However, it is just for web applications and via a different deployment mechanism, than that of a cluster of EC2 instances. So let's take a look at the service in greater detail.
AWS Elastic Beanstalk is an AWS managed service, that will take your uploaded web application code and automatically provision and deploy the appropriate and necessary resources within AWS to make the web application operational. These resources can include other AWS services and features, such as EC2 Auto Scaling, application health-monitoring and Elastic Load Balancing.
This is perfect for engineers, who may not have the familiarity or skills with AWS, that they need to deploy, monitor and scale the correct environment themselves to run their developed applications. Instead, this responsibility is passed on to AWS Elastic Beanstalk to deploy the correct infrastructure to run the uploaded code. This provides a simple, effective and quick solution to the application deployment rollout.
One important point to note is that the service itself is free to use. There is no cost associated with Elastic Beanstalk, however, any resources that are created on your application's behalf, such as EC2 instances, you will be charged for as per the standard pricing policies at the time of deployment.
So now we know what AWS Elastic Beanstalk is and does, let me run through some of its architecture.
There are a number of components that make up Elastic Beanstalk, these being
- Applications. Within the Elastic Beanstalk, an application is a collection of different elements, such as environments, environment configurations and application versions. In fact, you can have multiple application versions held within an application.
- Application Versions, an application version is a very specific reference to a section of deployable code. The application version will point typically to S3, simple storage service to where the deployable code will reside.
- Environment, an environment refers to an application version that has been deployed on AWS resources. These resources are configured and provisioned by AWS Elastic Beanstalk. This is where the application comes to life and becomes a deployed solution.
- Environment Configurations, an environment configuration is a collection of parameters and settings, that dictate how an environment will have its resources provisioned by Elastic Beanstalk and how these resources will behave.
- Configuration Template, this is the template that provides the baseline for creating a new, unique, environment configuration
Now you are aware of some of the terminology and components, we can look at how AWS Elastic Beanstalk operates a very simple workflow process for your application deployment and ongoing management in what can be defined in four simple steps.
- Firstly, you Create an Application.
- Next, you must upload your application version of the application to Elastic Beanstalk, along with some additional configuration information regarding the application itself. This creates the Environment Configuration.
- The environment is then created by Elastic Beanstalk with the appropriate resources to run your code.
- Any management of the application can then take place, such as deploying new versions of your application. If the management of your applications have altered the environment configuration, then your environment will be automatically updated to affect the new code, should additional resources be required.
During the creation of your application, which as we now know is comprised of environments, environment configurations and application versions, you will be required to make an architectural decision for the deployment of your web application. You need to decide if you want either a Web Server Environment here, or a Worker Environment here.
Each of these tiers are architecturally different and will require a different configuration of AWS resources. The Web Server Environment is typically used for standard web applications, that operate and serve requests over HTTP port 80. This tier will typically use the following AWS resources in the environment. Route 53 for DNS, Elastic Load Balancing, Auto Scaling, EC2 and Security Groups.
The Worker Environment is slightly different and are used by applications that will have a back-end processing task, that will interact with AWS SQS, Simple Queue Service. This tier typically uses the following AWS resources in the environment. SQS, Simple Queue Service, which is a highly scalable messaging system designed to allow communication between distributed applications and services. EC2, IAM Roles, which are used to grant permissions on the EC2 instances and Auto Scaling.
As you can see, there are clear differences between the two tiers. It is likely that you will use the two tiers in conjunction with each other, decoupled by the use of the Simple Queue Service, allowing each environment to scale independently of one another, depending on demand through Auto Scaling and Elastic Load Balancing.
Following this step, you will be presented with a number of configuration options, that dictate how the environment will have its resources provisioned and how these resources will behave, so essentially creating the environment configuration. I won't analyze all the specifics of configuration through this stage, as it's out of scope for this course. However, I have included a few points to highlight some of the requirements asked, such as the Platform selection for your application, such a Python, Ruby, Tomcat etc. or if you require your application to comprise of a single EC2 instance or multiple instances, which are then laid, balanced and auto scaled or your preference of Deployment policy. For example, you can choose to have the environment all created at once or rolled out in batches. If you want to define a URL for your application, if you want to add Additional resources, such as an RDS database, the Instance details, such as the instance type and size, along with any storage following requirements and Permissions through the use of IAM, allowing EC2 instances to access other AWS resources, as required and for Elastic Beanstalk to perform its own monitoring.
Once all this configuration has been entered, your application is ready and the version can be deployed and Elastic Beanstalk will create the environment, based upon your environment configuration.
So to reiterate, AWS Elastic Beanstalk is an AWS managed service, that will take your uploaded web application code and automatically provision and deploy the appropriate and necessary resources within AWS to make the web application operational.
For your own hands-on experience with AWS Elastic Beanstalk, to deploy an application, take a look at our two Labs, which will guide you through the steps and process we have discussed. You can deploy a PHP application using Elastic Beanstalk or run a controlled deploy with Elastic Beanstalk.
That now brings us to the end of this lecture. Coming up next, I want to introduce you to AWS Lambda.
Andrew is fanatical about helping business teams gain the maximum ROI possible from adopting, using, and optimizing Public Cloud Services. Having built 70+ Cloud Academy courses, Andrew has helped over 50,000 students master cloud computing by sharing the skills and experiences he gained during 20+ years leading digital teams in code and consulting. Before joining Cloud Academy, Andrew worked for AWS and for AWS technology partners Ooyala and Adobe.