Storage and Databases
Services at a glance
In this course we learn to recognize and explain AWS compute and storage fundamentals, and to recognise and explain the family of AWS services relevant to the certified developer 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 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
AWS Elastic Beanstalk
Storage and database
Amazon Simple Storage Service (S3)
Amazon Elastic Block Store (EBS)
AWS Relational Database Service (RDS)
Other Database Services
Elastic Cloud Compute (EC2)
Elastic Load Balancing (ELB)
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 center and network infrastructure design, to cloud architecture and implementation.
To date, Stuart has created 80+ courses relating to Cloud, mostly within the AWS category and 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.