5. Containerization with Docker
Containers are a method of operating system virtualization that allow you to run an
application and its dependencies in resource-isolated processes. Containers allow
you to easily package an application's code, configurations, and dependencies into
easy-to-use building blocks that deliver environmental consistency, operational
efficiency, developer productivity, and version control.
AWS Women in Tech Day
6. How Docker Works?
Docker provide a standard way to run
your code. Docker is an operating
system for containers. Similar to how a
virtual machine removes the need to
directly manage server hardware,
container virtualize the operating
systems of a server.
Docker is installed on each server and
provides simple commands you can
use to build, start or stop containers.
Running Docker on AWS provides
developers and admins a highly
reliable, low-cost way to build, ship
and run distributed applications any
scale.
AWS Women in Tech Day
7. Benefits of Containerization
Microservices : Containers provide process isolation that makes it easy to break apart and run
applications as independent components called microservices.
Hybrid applications: Containers let you standardize how code is deployed, making it easy to build
workflows for applications that run between on-premises and cloud environments.
Application migration to the cloud: Containers make it easy to package entire applications and
move them to the cloud without needing to make any code changes.
Batch processing: Package batch processing and ETL jobs into containers to start jobs quickly and
scale them dynamically in response to demand.
Machine learning: Use containers to quickly scale machine learning models for training and
inference and run them close to your data sources on any platform.
Platform as a service: Use containers to build platforms that remove the need for developers to
manage infrastructure and standardize how your applications are deployed and managed.
8. Why Containerization on AWS?
AWS is the #1 place for you to run containers and 80% of all containers in the cloud run on AWS.
Customers such as Samsung, Expedia, KPMG, GoDaddy, and Snap choose to run their containers on AWS
because of our security, reliability, and scalability.
What more?
Secure: AWS offers 210 security, compliance, and governance services and key features which is about
40 more than the next largest cloud provider. AWS provides strong security isolation between your
containers, ensures you are running the latest security updates, and gives you the ability to set granular
access permissions for every container.
Reliable: AWS container services run on the best global infrastructure with 69 Availability Zones (AZ)
across 22 Regions. AWS provides >2x more regions with multiple availability zones than the next largest
cloud provider (22 vs. 8). There are SLAs for all our container services giving you ease of mind.
Choice: AWS container services offer the broadest choice of services to run your containers.
Deeply Integrated with AWS: AWS container services are deeply integrated with AWS by design. This
allows your container applications to leverage the breadth and depth of the AWS cloud from
networking, security, to monitoring. AWS combines the agility of containers with the elasticity and
security of the cloud.
9. Amazon ECS
Amazon Elastic Container Service (Amazon ECS) is AWS Docker container service that handles the
orchestration and provisioning of Docker containers that makes it easy to run, stop and manage
Docker containers on a cluster.
Key Benefits:
Serverless: ECS supports Fargate to provide serverless compute for containers.
Performance at Scale: ECS powers several key services at Amazon and is built on technology
developed from many years of experience running highly scalable services
Secure: ECS launches your containers in your own Amazon VPC, allowing you to use your VPC
security groups and network ACLs.
Optimized for cost: With ECS, you can use Fargate Spot tasks or EC2 Spot instances to realize up to
90% discounts compared to on-demand prices for running stateless and fault tolerant applications.
11. ECS Terminologies
ECS Cluster: is a group of EC2 instances which has ecs-agent software available
on it.
Task Definition: is a blue print of your application that describes how a docker
container should launch.
Task: Lowest deployable unit in ECS is Task. Task Can contain one or more
containers. It refers to the running container as per Task definition.
Service: Grouping of tasks is known as Service which has a end point like load
balancer DNS which is then called by other APIs. Service has a contract that these
many number of tasks container need to run at a given point.
AWS Women in Tech Day
12. 1
Create Microservice
Create microservice and
Dockerfile and create image
Get in Action…
2
Create ECR
3
Create ECS Cluster
4
Create TASK Definition
Create Task Definition and add
container information(App blueprint)
5
Create Service
Create service to run the task
definition
6
Running App
Create ECR Repository and push
image to this repo
AWS Women in Tech Day