Please enable JavaScript.
Coggle requires JavaScript to display documents.
AWS Containers - Coggle Diagram
AWS Containers
ECS
= a highly scalable, fast container management service
= a regional service that simplifies running containers in a highly available manner across multiple AZs within a Region
components
task definitions
= a text file (in JSON format) that describes one or more containers (up to a maximum of ten) that form the application
-
-
-
-
Docker volumes = a directory is created in /var/lib/docker/volumes on the container instance containing the volume data
ECS enables you to control the usage of swap memory space on your Linux container instances at the container level
task networking
awsvpc = task is allocated its own ENI and a primary private IPv4 address, gives task same networking properties as EC2 instances
bridge = task utilizes Docker's built-in virtual network which runs inside each EC2 instance hosting the task
host = task bypasses Docker's built-in virtual network and maps container ports directly to the ENI of the EC2 instance hosting the task. As a result, you can't run multiple instantiations of the same task on a single EC2 instance when port mappings are used
-
private registry authentication for tasks using AWS Secrets Manager enables you to store your credentials securely and then reference them in your container definition
-
tasks and scheduling
-
-
-
-
task placement constraint = a rule that is considered during task placement (distinctInstance and memberOf)
clusters
-
-
capacity providers
-
each cluster can have one or more capacity providers and an optional default capacity provider strategy
capacity provider strategy determines how the tasks are spread across the cluster's capacity providers
-
for EC2 = name + Auto Scaling Group (ASG) + settings for managed scaling and managed termination protection
capacity provider strategy consists of one or more capacity providers, optional base and weight value may be specified for finer control of a capacity provider
-
-
-
container instance
ENI trunking (awsvpcTrunking) = supports launching container instances with increased ENI density using supported Amazon EC2 instance types
container instance draining = ECS prevents new tasks from being scheduled for placement on the container instance
services
-
-
service scheduler ensures that the scheduling strategy you specify is followed and reschedules tasks when a task fails
service scheduler includes logic that throttles how often tasks are restarted if they repeatedly fail to start
-
deployment types
-
blue/green with CodeDeploy (canary, linear, all at once)
-
-
-
service discovery = uses AWS Cloud Map API actions to manage HTTP and DNS namespaces for ECS services
-
-
developer tools
-
-
-
Amazon ECS CLI
= enables to run your applications on Amazon ECS and AWS Fargate using the Docker Compose file format
Fargate
-
-
-
-
-
task definitions for Fargate support the ulimits parameter to define the resource limits to set for a container
ECS task definitions for Fargate support the awslogs, splunk, firelens, and fluentd log drivers for the log configuration
FireLens = a container log router for Amazon ECS and AWS Fargate that gives you extensibility to use the breadth of services at AWS or partner solutions for log analytics and storage
ECS task execution IAM role = optional role that you can specify with Fargate to allow your Fargate tasks to make API calls to Amazon ECR. API calls pull container images as well as calling CloudWatch to store container application logs
task storage
-
ephemeral storage for nonpersistent storage (each task gets 20 GB, AES-256 encrypted using Fargate-managed encryption key)
can optionally be configured to use Elastic Load Balancing (ALB or NLB), target type must be ip (not instance due to awsvpc network mode)
tasks for Fargate can authenticate with private image registries, including Docker Hub, using basic authentication
-
-
Fargate task is scheduled to be retired when AWS detects the irreparable failure of the underlying hardware hosting the task or if a security issue needs to be patched
-
EKS
-
-
components
-
-
-
networking
-
-
pod networking (CNI)
-
VPC NI CNI plugin allows Kubernetes pods to have the same IP address inside the pod as they do on the VPC network
-
-
-
workloads
Vertical Pod Autoscaler = automatically adjusts the CPU and memory reservations for pods to help "right size" applications (but read docs carefully)
Horizontal Pod Autoscaler = automatically scales the number of pods in a deployment, replication controller, or replica set based on that resource's CPU utilization
network load balancing = NLB or CLB (default), created when deploying Service of type LoadBalancer
application load balancing = ALB, created when deploying Kubernetes Ingress, requires AWS Load Balancer Controller
-
-
-
ECR
-
-
-
-
components
-
authorization token = client must authenticate to Amazon ECR registries as an AWS user before it can push and pull images
repository = contains Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts
-
-
features
-
-
cross-Region and cross-account replication (configured as a registry setting and is on a per-Region basis)
-
App2Container
-
-
= generates container images for one or more applications running on Windows or Linux servers that are compatible with the Open Containers Initiative (OCI)
performs tasks
creates an inventory list for the application server that identifies all running ASP.NET (Windows) and Java applications (Linux) that are candidates to containerize
-
-
-
-
optionally creates a CI/CD pipeline with AWS CodePipeline and associated services, to automate building and deploying application containers
-