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 firstname.lastname@example.org.
Hello and welcome to this short lecture which will provide a high level overview of the Amazon EC2 Container Service. Commonly known as Amazon ECS.
This 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. The burden of managing your own cluster management system is abstracted with the Amazon ECS Service, by passing that responsibility over to the service itself.
If you are new to some of these terms such as Docker and Containers, then let me, quickly in a single sentence define what they are to help you understand the service a little easier.
Docker is a piece of software that allows you to automate the installation and distribution of applications inside Linux Containers.
So what are Containers? A Container holds everything that an application requires to enable it to run from within its isolated Container package. This may include system libraries, code, system tools, run time, etc. But it does not include an operating system like a virtual machine does. And so reduces the overhead of the actual container itself.
Containers are decoupled from the underlying OS, making Container applications very portable, lightweight, flexible, and scalable across a Cloud environment. This ensures that the application will always run as expected, regardless of its deployment location.
With this in mind, if you are already using Docker or have existing Containerized applications packaged locally, then these will work seamlessly on Amazon ECS.
But let's take a deeper look at the EC2 Container Service. And some of the additional functions that it provides. As I mentioned before, EC2 Container Services removes the need for you to manage your own cluster management system. This is usually very time consuming and requires a lot of overhead to continually monitor it, maintain it, and scale. With Amazon ECS 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.
Monitoring is taken care of through the use of AWS CloudWatch, which will monitor metrics against your containers and your clusters. Those of you who have used CloudWatch before will be aware that you can easily create alarms based off of these metrics, providing you notification of when specific events occur, such as your cluster size scanning up or down.
An Amazon ECS Cluster is comprised of a collection of EC2 instances. As such, some of the functionality and features that we have already discussed in this course, can be used with these instances. For example, security groups to implement instance level security at the port and protocol level, along with ELB and auto scaling, which we looked into in the previous lecture. Although these EC2 instances form a cluster, they still operate in much the same way as a single EC2 instance.
So, for example, should you need to connect to one of the instances themselves, you could still use the same familiar methods, such as initiating and SSH connection. The clusters themselves act as a resource pool, aggregating resources such as CPU and memory.
The cluster is dynamically scalable. Meaning you can start your cluster as a single, small instance. But it can dynamically scale to thousands of large instances. Multiple instance types can be used within the cluster if required.
Although the cluster is dynamically scalable, it's important to point out that it can only scale within a single region.
Amazon ECS is region specific. So it can span multiple availability zones but it cannot span multiple regions. With ECS you can schedule your Containers to be deployed across your cluster based on different requirements, such as resource requirements or specific availability requirements, through the use of multiple availability zones. The instances within the Amazon ECS Cluster also have a Docker daemon and an ECS Agent installed. These agents communicate with each other, allowing Amazon ECS commands to be translated into Docker commands.
That brings us to the end of this lecture on the Amazon EC2 Container Service.
Additionally, if you would like additional information on Docker, please see our existing course, Introduction to Docker.
Coming up in the next lecture, we will focus on another compute service, AWS Elastic Beanstalk.
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.