Day 13 of 100 Days of AWS: Computing Basics Part III

Day 13 of 100 Days of AWS: Computing Basics Part III

·

5 min read

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