The course is part of these learning paths
What is Compute?
Understanding the fundamentals of AWS is critical if you want to deploy services and resources within the AWS Cloud. The Compute category of services are key resources that allow you to carry out computational abilities via a series of instructions used by applications and systems. These resources cover a range of different services and features, these being:
- Amazon Elastic Compute Cloud (EC2)
- Elastic Load Balancing
- Auto Scaling
- Amazon EC2 Container Service (ECS)
- AWS Elastic Beanstalk
- AWS Lambda
- AWS Batch
- Amazon Lightsail
This course will provide the fundamental elements of all of these Compute services and features that will allow you to select the most appropriate service for your project and implementations. Each have their advantages by providing something of value that’s different to the others, which will all be discussed.
Topics covered within this course consist of:
- What is Compute: This lecture explains what 'Compute' is and what is meant by Compute resources and services
- Amazon Elastic Compute Cloud (EC2): This lecture discusses and explains what the EC2 service is and does, and provides a demonstration on how to configure, launch and connect to an EC2 instance
- Elastic Load Balancing & Auto Scaling: This lecture explains the differences between Elastic Load Balancing and Auto Scaling and how they can be used to help manage your fleet of EC2 Compute resources
- Amazon ECS: This lecture explains how the Amazon ECS service allows you to run Docker-enabled applications packaged as containers across a cluster of EC2 instances without requiring you to manage a complex and administratively heavy cluster management system
- AWS Elastic Beanstalk: This lecture provides an overview of the AWS Elastic Beanstalk service which helps to install, distribute and deploy web applications
- AWS Lambda: This lecture explains how AWS Lambda lets your run your own code in response to events in a scalable and highly available serverless environment
- AWS Batch: This lecture looks at AWS Batch and how this service is used to manage and run batch computing workloads within AWS
- Amazon Lightsail: This lecture looks at the Amazon Lightsail service which is essentially a Virtual Private Server (VPS) backed by AWS infrastructure
If you want to learn the differences between the different Compute services, then this course is for you!
With demonstrations provided, along with links to a number of our Labs that allow you to gain hands on experience in using many of these services will give you a solid understanding of the Compute services used within AWS.
If you have thoughts or suggestions for this course, please contact Cloud Academy at email@example.com.
Hello, and welcome to this final lecture, where I just want to quickly summarize what we have learned throughout the course.
I started off by covering what is meant by compute. Whereby I explained that compute can be considered the brains and processing power required by applications and systems to carry out computational abilities via a series of instructions. So essentially, compute is closely related to common server components, which many of you will be more familiar with such as CPUs and RAM.
Following this, we then started to get into the meat of the AWS compute resources, to provide you with an understanding of the fundamentals of the different AWS compute services and features, which are:
- Elastic Cloud Compute, EC2
- Elastic Load Balancing and Auto Scaling
- the Amazon EC2 Container Service
- AWS Elastic Beanstalk
- AWS Lambda
- AWS Batch
- and finally, Amazon Lightsail
During the EC2 lecture, we learned that it is one of the most common compute services in use today, and what it provided from a compute perspective. I also discussed the different components of this service, which covered:
- Amazon Machine Images, AMIs
- Instance types
- the Instance Purchasing Options
- User Data
- Storage Options
- and Security
I then performed a demonstration that showed you how to create a new EC2 instance, from within the AWS management console.
Following EC2, we looked at how Elastic Load Balancing and Auto Scaling has a relationship with EC2, allowing you to create a highly scalable and low balance architecture. I explained that the main function of ELB is to direct and route traffic destined for your fleet of EC2 instances, across an even distribution, which helps to maintain high evaluability and resiliency of your environment.
Whereas auto scaling is a mechanism that automatically allows you to increase or decrease your resources to meet demand, based off of custom defined metrics and thresholds. I also talked through how to create an ELB using the follow steps. By defining the:
- load balancer
- assigning security groups
- configuring security settings
- configuring a health check
- adding your EC2 instances
- and adding tags
When we discussed auto-scaling, I pointed out some of the main advantages of using it. As auto-scaling provides automatic provisioning based off of custom defined thresholds, your infrastructure will start to manage itself, preventing you from having to monitor and perform manual deployments. This will ultimately provide a better experience for your users. If there is always enough capacity within your environment, it's unlikely your end user will experience performer problems, which may prevent them from using your services again. Cost reduction. With the ability to automatically reduce the number of resources you have when demand drops, you will stop paying for those resources. You only pay for an EC2 resource when it is up and running. I then demonstrated how to create an auto-scaling group from an existing launch configuration.
The next service we looked at was the Amazon ECS container service. This can be defined as a service that allows you to run Docker-enabled applications, packaged as containers across a cluster of EC2 instances, without requiring you to manage a complex and administratively heavy cluster management system. As a result, there is no need to install any management software for your cluster. Neither is there a need to install any monitoring software either.
All of this and more is taken care of by the service, allowing you to focus on building great applications and deploying them across your scalable cluster.
Following ECS, I gave an overview of elastic beanstalk, which is an AWS managed service that takes your uploaded web application code, and automatically provisions and deploys the required resources within AWS, to make the web application operational. The components that make up elastic beanstalk are:
- application versions
- environment configurations
- and configuration templates
I then covered how elastic beanstalk operates a very simple workflow process for your application deployment in four simple steps.
- Firstly, you create an application
- next, you must upload your application version of your application to elastic beanstalk
- the environment is then created by elastic beanstalk with the appropriate resources to run your code
- any management of your application can then take place
Next was an overview of AWS Lambda, which is a service that lets you run your own code in response to events in a scalable and highly evaluable serverless environment.
To reiterate again, serverless means that you do not need to worry about provisioning and managing your own compute resources to run your own code. Instead, this is managed and provisioned by AWS. Although it's named serverless, it does, of course, require servers, or at least compute power to carry out your code request. But because the AWS user does not need to be concerned with what compute power's used, or where it's coming from, it's considered serverless from the user perspective.
I explained what lambda functions were, and the elements that form them. Required resources, maximum execution timeout, IAM role, and handler name. Once we understood what lambda functions were, I covered how to create them, and the three simple steps to do so:
- Select a new blueprint
- configuring the triggers
- and configuring the function
Following lambda, I introduced AWS batch, which is used to manage and run batch computing workloads within AWS. Batch computing is primarily used in specialist use cases, which require a vast amount of compute power across a cluster of compute resources, to complete batch processing, executing a series of jobs or tasks. To understand how AWS batch works, I covered some of the key parts:
- Jobs. A job is classed as the unit of work that is to be run by AWS batch
- Job definitions. These define specific parameters for the jobs themselves
- Job queues. Jobs that are scheduled are placed into a job queue until they run
- Job scheduling. The job scheduler takes care of when a job should be run and from which compute environment
- And finally, compute environments. And these are the environments containing the compute resources to carry out the job
Finally, we looked at Amazon Lighstail, which provides a Virtual Private Server, a VPS. It has been designed to be simple, quick, and very easy to use for small scale use cases. A Lighstail VPS provides you with the following features:
- the virtual instance itself
- an operating system
- optional pre-installed applications
- solid state drives
- data transfer allowance
- DNS management
- and static IP addresses
An Amazon Lighstail instance can be launched and configured all from a single page, making this a simple solution.
You should now have a good understanding of the different AWS compute services and features available, allowing you to select the most appropriate service for your project. Each have their advantages by providing something of value that's different to others.
Be sure to give the labs a go that I've mentioned throughout this course, as they will really help you to implant what we have covered and helped you understand how some of the services are put together.
Thank you for taking the time to view this course, and if you have any feedback, positive or negative, I would very much appreciate your comments.
That now brings us to the end of this course. I wish you continued success with any future development at learning of cloud computing.
About the Author
Stuart has been working within the IT industry for two decades covering a huge range of topic areas and technologies, from data centre and network infrastructure design, to cloud architecture and implementation.
To date Stuart has created over 40 courses relating to Cloud, most within the AWS category with a heavy focus on security and compliance
He is AWS certified and accredited in addition to being a published author covering topics across the AWS landscape.
In January 2016 Stuart was awarded ‘Expert of the Year Award 2015’ from Experts Exchange for his knowledge share within cloud services to the community.
Stuart enjoys writing about cloud technologies and you will find many of his articles within our blog pages.