On December 12, 2017 we were fortunate enough to have Abby Fuller, Senior Technical Evangelist at AWS speak at the Weave Online User’s Group. There were several announcements made at re:Invent and to help us sort through all of those, Abby gave us a great overview. She also took a number of questions from our online audience to help clarify with us what these new services mean and how you can take advantage of them.
In the second half, Jason Smith from Container Solutions spoke. He showed us some changes that were made in the Sock Shop to take advantage of the built-in AWS services and afterwards showed how we can visualize AWS services in Weave Cloud.
Let’s talk container announcements!
There were so many announcement at AWS re:Invent but for this talk Abby only focused on the ones that are relevant to people working in the container space.
AWS started out running container workloads with ECS, however, the landscape has now grown significantly to include: Amazon EKS, Fargate mode for ECS, and Fargate mode for EKS.
Amazon Elastic Container Service (ECS)
Most people are probably already pretty familiar with ECS. ECS is Amazon’s in-house managed container service and it allows you to manage your app at the container level rather than having to manage EC2 instances. ECS also integrates with a number of other services such as ALB, Auto Scaling, Batch, Elastic Beanstalk, CloudFormation, CloudTrail, CloudWatch Events, Logs & Metrics.
Amazon Elastic Container Service for Kubernetes (EKS)
Over 60% of people who are running Kubernetes on AWS are running their containers in Kubernetes workloads on EC2 on AWS. But running and maintaining an HA Kubernetes on EC2 is not for the faint of heart. If you have the time and resources to maintain it, it can be successful, but many customers have expressed the need for some help with running their clusters and have asked, “How can I run Kubernetes like ECS?” And that is what the EKS service is for; we manage the difficult pieces for you to make Kubernetes easier to run on AWS:
- Managed Kubernetes control plane
- Highly Available cluster
- Automated version upgrades
- Integration with other AWS services (CloudTrail, CloudWatch, ELB, IAM, VPC, PrivateLink)
More announcements around EKS are expected happen throughout the next year. At the moment, it’s “bring your own cluster” with which you can sign up for the EKS preview. Abby stresses that they are not rewriting Kubernetes to create a new distribution. They plan to use standard Kubernetes, but with some managed services which help you install and maintain an HA Kubernetes cluster.
AWS have been hearing this from their customers: “Why should I manage infrastructure just to manage infrastructure?”
Some users don’t want to have to manage a cluster at all, which leads us into what Fargate is solving.
Fargate is an underlying technology for container management. You won’t have to maintain a cluster nor will you have to manage infrastructure. Everything is handled at the container level so that you can scale on demand.
This means that you don’t have to worry about all of the pieces that make up the heavy lifting for running a cluster on your own:
- Service Meshes
- Underlying infrastructure like the EC2 instances
- Cluster resources, capacity or setup
All you need to do is give your container or pod a task definition, set up a few resource limits and you’re done! This is in preview at the moment and will be released with EKS sometime in 2018.
How does this work in practice?
Basically you will have two different launch types in ECS and EKS:
- EC2 Mode -- traditional, manage your own cluster
- Fargate Mode -- managed, highly available cluster for a more hands off approach
There were a number of excellent questions asked by the audience and we encourage you to view the whole video online.
Weave Cloud & Amazon Services
Next up was Jason Smith from Container Solutions, who demoed the Sockshop in AWS. The Sockshop is now almost two years old and has grown into a demo app that can be deployed into many different environments and orchestrators. See the microservices-demo github project for more information.
The Sockshop is a mock web-store that of course sells socks! It is made up of a number of different microservices and it’s not only a great way to test your infrastructure, and your deployments, but you can also use it to test if your Kubernetes cluster is working correctly. At Container Solutions we use ‘the shop’ all the time for training sessions and to test our deployments.
AWS and the Sockshop demo
For the ECS sockshop demo and deployment we removed some of the microservices and replaced them with some of the built-in AWS services. Specifically, we removed the catalog and the orders-db services and replaced them with dynamoDB and RDS.
This means that all of the catalogue services are now talking to an RDS database, as you can see in Weave Cloud:
At Container Solutions we generally advocate as a best practice an external data storage for container state rather than storing that data in your Kubernetes cluster.
Jason then demoed how you can use Weave Cloud to visualize an order going through the entire app, including external AWS services, like DynamoDB and RDS
Abby Fuller from AWS provided us with an overview of a couple of new container workload solutions:
- Elastic Container Service for Kubernetes (EKS) -- is a new container service for Kubernetes that is much like AWS ECS and is designed to make it easier to install a HA Kubernetes cluster.
- Fargate mode -- an end to end managed cluster service that can be used in place of a DIY Kubernetes cluster with EC2 and can be used on either ECS or EKS.
Jason Smith from Container Solutions showed us how you can use the Sockshop to test your deployments. He then demoed the SockShop running in AWS using the DynamoDB and RDS data services.
Check out the Weave Cloud documentation for information on Exploring & Troubleshooting.
If you’re looking for information on how to get started with Kubernetes on AWS, check out our what you need to know page - a complete guide on AWS services and Kubernetes and Weaveworks & AWS : how we manage Kubernetes clusters.
Watch the full talk here:
Join the Weave Online User Group for more talks or view the recordings on our youtube channel.