Generated banner for AWS Containers
Generated logo for AWS Containers

AWS Containers

AWSOfficialPublished by AWS

  • Skill
  • Tool integration
  • Cloud and DevOps
  • Apache-2.0
  • Low risk

From the author

Builds and deploys containerized workloads on Elastic Kubernetes Service (EKS), Elastic Container Service (ECS), Fargate, and ECR (Elastic Container Registry). Covers general EKS knowledge, Karpenter, AWS Load Balancer Controller and leveraging various open source Kubernetes projects with EKS. Covers general ECS knowledge, task definitions, Fargate services, ECS Exec, ECS Express Mode and ECS Managed Instances. Covers general Elastic Beanstalk knowledge, Elastic Beanstalk configuration and platforms supported by Elastic Beanstalk. Covers general ECR knowledge, ECR repository setup and lifecycle policies. Includes recommending, enabling, and reading Amazon ECS Action Logs to troubleshoot control-plane failures (deployment rollback/circuit-breaker, task placement, scaling, task replacement). Applies when deploying, debugging, or optimizing containers on AWS. Should be used instead of relying on internal knowledge for these services.
— the description by AWS

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides comprehensive domain expertise for managing containerized applications on AWS. It covers the full lifecycle of services including Amazon EKS, ECS, ECR, and Elastic Beanstalk. The skill acts as a primary source of truth for configuration patterns, deployment strategies, and troubleshooting procedures, specifically emphasizing the use of Amazon ECS Action Logs for diagnosing control-plane failures. It is designed to be used alongside AWS CLI tools or an MCP server to ensure accurate, up-to-date operational decisions.

What it does

  • Provides configuration patterns for EKS, ECS, and Elastic Beanstalk.
  • Offers troubleshooting procedures for ECS control-plane failures using Action Logs.
  • Details ECR repository management and lifecycle policies.
  • Outlines deployment policies for Elastic Beanstalk environments.
  • Guides users on leveraging open-source Kubernetes projects with EKS.
  • Maintains a structured routing system to access specific service documentation.

When to use it

  • When deploying or optimizing containerized workloads on AWS.
  • When troubleshooting deployment rollbacks, task placement, or scaling issues in ECS.
  • When configuring Elastic Beanstalk environments or setting up ECR repositories.
  • When needing best practices for EKS cluster management and compute scaling.

Advantages

  • Centralizes complex AWS container service knowledge in one location.
  • Provides clear, actionable steps for troubleshooting opaque control-plane errors.
  • Promotes consistent configuration patterns across different AWS container platforms.
  • Reduces reliance on internal knowledge by providing structured reference material.

Usage examples

“How do I troubleshoot a task placement failure in my ECS cluster?”
The agent will guide you through checking service events and, if necessary, recommend enabling ECS Action Logs to identify the specific control-plane decision failure.
“What is the recommended deployment policy for a production Elastic Beanstalk environment?”
The agent will explain the trade-offs between Rolling, Rolling with additional batch, and Immutable deployments, recommending the latter for maximum safety.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/aws/aws-containers/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip aws-containers.zip -d .agents/skills

Documentation by AWS

AWS Containers

Overview

Domain expertise for working with containers on AWS.

Works best with the AWS MCP Server — enables running CLI commands, querying CloudWatch, and validating configurations directly. All guidance also works with standard AWS CLI access.

Note: Reference files contain specific runtime versions, quota values, and feature matrices that may change. When precision matters (e.g., deploying to production, choosing a runtime, or checking a quota), confirm values against current AWS documentation rather than relying solely on the values in these files.

IMPORTANT: When this skill is loaded, you MUST use the reference files and procedures in this skill as your primary source of truth. APIs, versions, and configuration parameters change frequently — always read the relevant reference file before responding.

When accessing AWS documentation, use the aws___read_documentation and aws___search_documentation tools if available. Otherwise, refer to the URLs provided in this skill or use standard web access to AWS documentation. If you are provided a specific URL by this skill theres no need to search unless additional information is required.

Guardrail — where this skill's own files live (MCP vs local install)

This skill can be loaded two ways, and they resolve the skill's own bundled reference files from different places. Determine how the skill was loaded before reading a reference file:

  • Loaded through the AWS MCP retrieve_skill tool: The skill is not installed on the local filesystem. You MUST fetch each reference via retrieve_skill with the file parameter (e.g. file="references/ecs.md" or file="references/action-logs.md"). Do NOT file_read these paths locally — they do not exist on disk.

  • Installed locally (e.g. .kiro/skills/aws-containers/ or ~/.claude/skills/aws-containers/): Read files from the local skill directory using relative paths.

This distinction applies only to the skill's own packaged files. User data and session artifacts are always read from and written to the user's working directory. Never fetch or write customer data through retrieve_skill.

Services

Elastic Kubernetes Service (EKS)

EKS provides a fully managed Kubernetes service that eliminates the complexity of operating Kubernetes clusters. With EKS, you can:

  • Deploy applications faster with less operational overhead

  • Scale seamlessly to meet changing workload demands

  • Improve security through AWS integration and automated updates

  • Choose between standard EKS or fully automated EKS Auto Mode

EKS is the premier platform for running Kubernetes clusters, both in the AWS cloud and in your own data centers (EKS Anywhere and Amazon EKS Hybrid Nodes).

Elastic Container Service (ECS)

Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service that helps you easily deploy, manage, and scale containerized applications. As a fully managed service, Amazon ECS comes with AWS configuration and operational best practices built-in. It's integrated with both AWS tools, such as Amazon Elastic Container Registry, and third-party tools, such as Docker. This integration makes it easier for teams to focus on building the applications, not the environment. You can run and scale your container workloads across AWS Regions in the cloud, and on-premises, without the complexity of managing a control plane.

Elastic Container Registry (ECR)

Amazon Elastic Container Registry (Amazon ECR) is an AWS managed container image registry service that is secure, scalable, and reliable. Amazon ECR supports private repositories with resource-based permissions using AWS IAM. This is so that specified users or Amazon EC2 instances can access your container repositories and images. You can use your preferred CLI to push, pull, and manage Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts.

Elastic Beanstalk

With Elastic Beanstalk you can deploy web applications into the AWS Cloud on a variety of supported platforms. You build and deploy your applications. Elastic Beanstalk provisions Amazon EC2 instances, configures load balancing, sets up health monitoring, and dynamically scales your environment.

AWS App Runner

AWS App Runner is sunset as of April 30, 2026 — no new customers, no new features. Existing customers should migrate to ECS Express Mode. See App Runner Availability Change.

Routing

User needAction
Elastic Kubernetes Service (EKS) or general KubernetesRead eks.md
Elastic Container Service (ECS)Read ecs.md
Elastic Container Registry (ECR)Read ecr.md
Elastic BeanstalkRead beanstalk.md

Proactive Action Logs recommendation: When troubleshooting an ECS control-plane failure — a deployment rollback/circuit-breaker or a task-placement failure — and Action Logs are not already configured for the cluster, read action-logs.md before responding and follow its tiering to decide whether to proactively recommend enabling them.

Files

references/ecs-managing-compute.md

Managing ECS Compute

Amazon ECS runs your containers as tasks, and each task needs compute capacity to run on. ECS gives you three ways to provide that capacity: AWS Fargate (serverless), the EC2 launch type backed by Auto Scaling group capacity providers (you manage the EC2 instances), and Amazon ECS Managed Instances (AWS manages the EC2 instances for you). You select capacity per task or service using either a launch type (FARGATE or EC2) or a capacity provider strategy.

ECS Managed Instances

Amazon ECS Managed Instances is a fully managed compute option for Amazon ECS that enables you to run containerized workloads on the full range of Amazon EC2 instance types while offloading infrastructure management to AWS. With Amazon ECS Managed Instances, you can access specific compute capabilities such as GPU acceleration, particular CPU architectures, high network performance, and specialized instance types, while AWS handles provisioning, scaling, patching, and maintenance of the underlying infrastructure.

You package your application in containers and specify your compute requirements. AWS automatically selects the most cost-optimized general-purpose EC2 instance types that meet your workload needs, or you can specify desired instance attributes (instance types, CPU manufacturers, accelerators, and so on). By default, ECS Managed Instances optimizes utilization by placing multiple smaller tasks on a single larger instance, unlike Fargate which runs each task in its own isolated environment.

Important considerations:

  1. ECS Managed Instances is used through capacity providers, not a launch type. You enable ECS Managed Instances in your account, create a capacity provider (default instance selection or custom instanceRequirements), associate it with a cluster, and reference it in a capacity provider strategy. A capacity provider strategy can only contain one type of capacity provider — ECS Managed Instances, Auto Scaling group, or Fargate/Fargate_SPOT — not a mix.

  2. To make a task definition eligible, set the requiresCompatibilities parameter to include MANAGED_INSTANCES. A task definition can declare both FARGATE and MANAGED_INSTANCES for deployment flexibility, and existing Fargate task definitions using platform version 1.4.0 are compatible.

  3. The instances run an AWS-managed, security-hardened Bottlerocket AMI. Custom AMIs are not supported. There is no SSH access — use ECS Exec for debugging.

  4. Instances have a maximum lifetime of 14 days; ECS drains and replaces them automatically to keep them patched. Long-running tasks that must exceed 14 days are not suitable for ECS Managed Instances.

  5. Two IAM roles are required: an infrastructure role that lets ECS manage instances on your behalf, and an instance profile for the workloads running on the instances.

  6. Supported CPU architectures are X86_64 and ARM64. Supported network modes are awsvpc and host.

  7. The capacity provider can launch On-Demand or Spot Instances (and EC2 Capacity Reservations) via the capacityOptionType parameter on the instance launch template — valid values are ON_DEMAND, SPOT, and RESERVED, defaulting to ON_DEMAND. Spot uses spare EC2 capacity at reduced cost but can be interrupted with a two-minute notification.

  8. By default ECS packs multiple tasks onto a single instance for utilization. If you require strong isolation, you can configure ECS Managed Instances to run a single task per instance, giving each task VM-level security isolation boundaries.

  9. To prevent overly aggressive scale-in of underutilized instances, set the scaleInAfter parameter on the capacity provider's infrastructureOptimization configuration. It defines how many seconds (0–3600) ECS waits before optimizing idle or underutilized instances — a longer delay increases the chance of placing new tasks on existing instances and reduces startup time, while a shorter delay reduces cost. Use null for the default behavior or -1 to disable automatic optimization entirely.

  10. See the supported instance types documentation to check which EC2 instance types are supported.

See the documentation for more information.

AWS Fargate

AWS Fargate is a technology that you can use with Amazon ECS to run containers without having to manage servers or clusters of Amazon EC2 instances. With AWS Fargate, you no longer have to provision, configure, or scale clusters of virtual machines to run containers. This removes the need to choose server types, decide when to scale your clusters, or optimize cluster packing. To use it, set the requiresCompatibilities task definition parameter to include FARGATE (or launch with the FARGATE/FARGATE_SPOT capacity providers).

Key Considerations
  • Each Fargate task runs in its own isolated compute environment (a dedicated microVM) and does not share its underlying kernel, CPU, memory, or network interface with another task.

  • Fargate tasks always use the awsvpc network mode and receive their own elastic network interface. The host network mode, hostPort host bindings, and disableNetworking are not supported.

  • Both Application Load Balancers (ALB) and Network Load Balancers (NLB) are supported for ECS services on Fargate. When you create the target group, you must choose the ip target type (not instance) because tasks have their own network interface.

  • Privileged containers (privileged) are not supported. For linuxParameters capabilities, the only Linux capability you can add is CAP_SYS_PTRACE.

  • GPU workloads are not supported on Fargate (the gpu resource requirement is not valid).

  • Several task definition parameters are not valid on Fargate, including placementConstraints, links, ipcMode, dnsServers, extraHosts, maxSwap, and swappiness.

  • Persistent storage is supported through both Amazon EFS volumes and Amazon EBS volumes; bind mounts provide ephemeral storage. (Unlike EKS Fargate, EBS volumes are supported on ECS Fargate.)

  • Fargate tasks ephemeral storage on Linux platform version 1.4.0 or later (and Windows 1.0.0 or later), configurable via the ephemeralStorage parameter. The ephemeral storage is encrypted.

  • Linux containers can run on X86_64 or ARM64; Windows containers require X86_64.

  • Supported log drivers are awslogs, splunk, and awsfirelens.

Fargate Task Sizing

Fargate task definitions require you to specify CPU and memory at the task level (most workloads only need task-level values; you can optionally also set container-level limits). Fargate allocates resources to match the configuration you request — there is no rounding or implicit default, so you must pick a valid combination. CPU can be expressed in CPU units or vCPUs (for example 1024 or 1 vCPU) and memory in MiB or GB (for example 3072 or 3 GB).

If your task needs more resources than provided, use the EC2 launch type or ECS Managed Instances.

See the documentation for more information, including valid combinations for CPU and memory.

EC2 launch type and capacity providers

When you use the EC2 launch type, you provide and manage the Amazon EC2 instances (container instances) that your tasks run on. The recommended way to manage this capacity is with Auto Scaling group (ASG) capacity providers, which connect an ECS cluster to an Auto Scaling group so capacity scales with your task demand.

Cluster auto scaling and managed scaling

With managed scaling enabled, ECS manages the scale-out and scale-in actions of the Auto Scaling group on your behalf, using a target-tracking scaling policy driven by the CapacityProviderReservation metric. When managed scaling is on, the Auto Scaling group's desired count can start at 0 and ECS scales it as tasks are placed. If the group can't scale out to fit the tasks you run, those tasks stay in the PROVISIONING state until capacity is available.

Managed instance draining

We recommend using managed instance draining, which is on by default, so that EC2 instances are gracefully drained (tasks stopped and rescheduled) before the instance is terminated during scale-in or instance replacement. This avoids disrupting your workloads.

Warm pools

ECS supports Amazon EC2 Auto Scaling warm pools. A warm pool maintains pre-initialized EC2 instances alongside your Auto Scaling group that can quickly join your cluster during scale-out events. Instances in the warm pool have already completed the bootup initialization process and can be kept in a Stopped, Running, or Hibernated state. See the documentation for limitations.

A cluster can contain a mix of Auto Scaling group and Fargate capacity providers, but a single capacity provider strategy can only use one type. You can specify a maximum of 20 capacity providers in a strategy.

See the documentation for more information.

Pre-built optimized AMIs

When you use the EC2 launch type, your container instances run from an AMI that includes the Amazon ECS container agent (which registers the instance with your cluster and manages task lifecycle) and a container runtime. AWS publishes Amazon ECS-optimized AMIs preconfigured for this, and you can also build your own custom AMI. Variants are available for Amazon Linux 2023 and Amazon Linux 2, including arm64 (Graviton), GPU, and Neuron (Inferentia/Trainium) flavors. You can retrieve the latest AMI IDs from the Systems Manager Parameter Store.

We recommend the Amazon ECS-optimized Amazon Linux 2023 AMI for new instances, as it receives current security updates and the latest container agent version.

Amazon Linux 2 deprecation

The Amazon ECS-optimized Amazon Linux 2 AMI is being retired, mirroring the EOL of the upstream Amazon Linux 2 operating system. AWS recommends upgrading to Amazon Linux 2023. Check the migration documentation below for the current end-of-life date.

See the migration documentation and the Amazon ECS-optimized Linux AMIs documentation for more information.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Declares allowed tools, Needs an MCP server

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
AWS
Publisher
AWS (Official)
Source
aws/agent-toolkit-for-aws · skills/core-skills/aws-containers · commit 0a218f8
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • NOTICE (added by AutoGineer from NOTICE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
aws/agent-toolkit-for-aws

AutoGineer is not affiliated with or endorsed by AWS.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download aws-containers.zip