Hi folks! Welcome to Day 13 of 100 Days of AWS🎯, where we will cover the complete AWS cloud from beginner to professional. Today, we will expand our horizons in the AWS cloud by understanding the necessity for running applications in containers. challenges faced when running applications in a container. how container orchestrator help overcome this challenges. AWS ECS and EKS their benefits and differences Let’s get started🚀!
Day 12 Overview;
On Day 12 of the "100 Days of AWS" series we explored serverless computing, where applications are built on third-party managed infrastructure, allowing developers to focus on design while the cloud provider handles scaling and maintenance. Benefits include increased productivity, scalability, and cost savings. Use cases include stateless applications, batch processing, real-time analytics, and automation. The article covers serverless architecture, including Function as a Service (FaaS) and Backend as a Service (BaaS), and highlights AWS's offerings like AWS Lambda. It concludes with a summary of serverless advantages and a preview of container technology in AWS. click here to read more about this content.
What are Containers;
Containers are a tool that allows you to package an application and all of the necessary files, libraries, and dependencies for it to run.
Containers can be deployed on a machine, and since they contain everything the application needs to run, nothing else needs to be done.
Containers work based on the kernel-sharing principle.
Think of container as a small light weight virtual machine.
Container Challenges;
Container Orchestrators;
Container Orchestrators are the brain of the containerized environments.
Their responsibilities include
Deploying containers across all available servers
Load balancing requests to the containers
providing container-to-container connectivity
Restarting failed containers
Moving containers to the active host when host fails
ECS;
ECS is a fully managed container orchestration service that helps manage and scale containerized applications.
ECS is managed by AWS
Containers run on EC2 or Fargate
It is a proprietary software only available in AWS. which makes migrating to different cloud provider will be difficult.
Kubernetes;
Kubernetes is an open-source Container orchestrator.
Kubernetes cluster has two types of nodes;
Control Plane nodes - is the manager of the cluster. which watches over the cluster and makes sure the cluster is kept in a running state.
Worker nodes - responsible for actually running the containerized workloads.
EKS;
In traditional Kubernetes users are responsible for managing both the control-plane and worker nodes.
Managing control plane or master node is difficult
Running and scaling control plane
Properly Securing control plane
AWS Elastic Kubernetes Service is a managed kubernetes service
EKS manages the control plane for you
Users are still responsible for managing the worker nodes.
Unless they decide to use fargate (AWS will manage nodes)
Benefits of EKS;
Runs and scales control plane across multiple availability zones.
Scales control plane instances based on the load.
can easily integrate with other AWS services. such as,
IAM for authentication
Elastic Load balancer for balancing the traffic
ECR for container Images
ECS vs EKS;
ECS is a proprietary so migrating to another cloud provider can be difficult
EKS is Kubernetes which is open source and can be run on any platform
Keep in mind the more aws services you configure your cluster to interact with the harder it will be to move to another provider
ECS has a simpler architecture
Simpler API • Easier to ramp up new team members
Kubernetes is very complex and has a steep learning curve
With EKS you’ll have to learn Kubernetes as well as EKS specific features
Kubernetes has a larger community
More support online and More tooling like Helm/Kustomize/ArgoCD
ECS Pricing – no cost for control-plane, only pay for infrastructure running applications (EC2/Fargate, EBS)
EKS Pricing – more expensive, you have to pay for control-plane and worker-nodes/Fargate
Day 13 wrap up;
In conclusion, understanding the basics of containerization and orchestration is crucial for leveraging the full potential of cloud computing. Containers provide a lightweight and efficient way to package applications with all their dependencies, ensuring consistency across different environments. Container orchestrators like ECS and Kubernetes play a vital role in managing and scaling these containerized applications. While ECS offers simplicity and ease of use within the AWS ecosystem, Kubernetes provides flexibility and a larger community support due to its open-source nature. EKS combines the best of both worlds by offering a managed Kubernetes service, simplifying control plane management while allowing users to benefit from Kubernetes' extensive features. As you continue your journey in AWS, consider the specific needs of your applications and the trade-offs between ECS and EKS to make informed decisions.
Summary & Key Points;
Containers are a tool that allows you to package an application and all of the necessary files, libraries, and dependencies the application needs to run.
Container orchestrators deploy, manage, and scale containerized applications.
ECS is simple managed container orchestrator provided by AWS.
Kubernetes is an open source container orchestrator
EKS is a managed Kubernetes service – where AWS manages the control plane for you
Up-next on Day 14;
SQL vs No SQL Databases
Structured, Semi Structured, and Un structured Data
Types of Datastores offered by AWS