[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-labs-ecs":3,"mdc--p3bj5t-key":37,"related-org-aws-labs-ecs":1597,"related-repo-aws-labs-ecs":1776},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"ecs","deploy and configure ECS container services","This skill should be used when the user asks to \"deploy containers on ECS\", \"set up an ECS service\", \"choose between Fargate and EC2\", \"configure ECS task definitions\", \"set up ECS auto-scaling\", \"use ECS Express Mode\", \"migrate from App Runner\", or mentions ECS load balancing, deployment strategies, or container orchestration on AWS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aws-labs","AWS Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws-labs.png","awslabs",[13,17,20,23],{"name":14,"slug":15,"type":16},"Containers","containers","tag",{"name":18,"slug":19,"type":16},"Deployment","deployment",{"name":21,"slug":22,"type":16},"Infrastructure","infrastructure",{"name":24,"slug":25,"type":16},"AWS","aws",14,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups","2026-07-12T08:40:04.845668",null,15,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Official AWS Startups repository that hosts plugins, skills, tools and resources to support startup builders on AWS","https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups\u002Ftree\u002FHEAD\u002Fsolution-architecture\u002Fplugins\u002Faws-dev-toolkit\u002Fskills\u002Fecs","---\nname: ecs\ndescription: This skill should be used when the user asks to \"deploy containers on ECS\", \"set up an ECS service\", \"choose between Fargate and EC2\", \"configure ECS task definitions\", \"set up ECS auto-scaling\", \"use ECS Express Mode\", \"migrate from App Runner\", or mentions ECS load balancing, deployment strategies, or container orchestration on AWS.\n---\n\nYou are an AWS ECS specialist. When advising on ECS workloads:\n\n## Process\n\n1. Clarify the workload: stateless web service, background worker, batch job, or sidecar pattern\n2. Recommend launch type (Fargate vs EC2) based on requirements\n3. Define task definition, service configuration, and networking\n4. Configure scaling, deployment strategy, and observability\n5. Use the `awsknowledge` MCP tools (`mcp__plugin_aws-dev-toolkit_awsknowledge__aws___search_documentation`, `mcp__plugin_aws-dev-toolkit_awsknowledge__aws___read_documentation`, `mcp__plugin_aws-dev-toolkit_awsknowledge__aws___recommend`) to verify current ECS limits, pricing, or feature availability\n\n## Launch Type Selection\n\n**Default to Fargate** unless you have a specific reason to manage instances yourself. Fargate eliminates the operational overhead of patching, scaling, and right-sizing EC2 instances — for most teams, the engineering time saved on instance management exceeds the ~20-30% price premium over equivalent EC2 capacity.\n\n- **Fargate**: No instance management, per-vCPU\u002Fmemory billing, automatic security patching of the underlying host. Use Fargate Spot for fault-tolerant batch\u002Fworker tasks (up to 70% savings).\n- **EC2**: Choose when you need GPU instances, sustained CPU at >80% utilization where the price premium matters (Fargate costs ~$0.04\u002FvCPU-hour vs ~$0.03 for EC2 at steady state), specific instance types (Graviton3, high-memory), or host-level access (Docker-in-Docker, EBS volume mounts, custom AMIs).\n\n## Task Definitions\n\n- One application container per task definition, with sidecars (log routers, envoy proxies, datadog agents) in the same task definition. Reason: ECS scales, deploys, and health-checks at the task level. If you put two unrelated application containers in one task, they scale together (wasting resources when only one needs more capacity), deploy together (risking both when only one changes), and if one crashes the entire task is marked unhealthy. Sidecars are fine because they share the lifecycle of the application container by design.\n- Always set `cpu` and `memory` at the task level for Fargate. For EC2 launch type, set container-level limits.\n- Use `secrets` to pull from Secrets Manager or Parameter Store -- never bake credentials into images or environment variables.\n- Use `dependsOn` with `condition: HEALTHY` for sidecar ordering.\n- Set `essential: true` only on the primary container. Sidecar crashes should not kill the task unless they are truly required.\n- Use `readonlyRootFilesystem: true` where possible for security hardening.\n\n## Service Configuration & Networking\n\n- **awsvpc** network mode is mandatory for Fargate and recommended for EC2. Each task gets its own ENI.\n- Place tasks in private subnets with NAT Gateway or VPC endpoints for ECR\u002FS3\u002FCloudWatch Logs.\n- Use security groups at the task level -- one SG per service, allow only required ingress from the load balancer SG.\n- **Service Connect** (Cloud Map-based): preferred for service-to-service communication over manual service discovery. Provides built-in retries, timeouts, and observability.\n\n## Load Balancer Integration\n\n- **ALB**: Default for HTTP\u002FHTTPS services. Use path-based or host-based routing to multiplex services on one ALB.\n- **NLB**: Use for TCP\u002FUDP, gRPC without HTTP\u002F2 termination, extreme throughput, or static IPs.\n- Always configure health check grace period (`healthCheckGracePeriodSeconds`) to avoid premature task kills during startup -- set to at least 2x your container startup time.\n- Use `deregistrationDelay` of 30s (default 300s is usually too long) to speed up deployments.\n\n## Auto-Scaling\n\n- **Target tracking on ECSServiceAverageCPUUtilization (70%)** is the right default for most services.\n- For request-driven services, scale on `RequestCountPerTarget` from the ALB.\n- For queue workers, scale on `ApproximateNumberOfMessagesVisible` from SQS using step scaling.\n- Set `minCapacity` >= 2 for production services (multi-AZ resilience).\n- Fargate scaling is slower than EC2 (60-90s to launch) -- keep headroom with a slightly lower scaling target.\n\n## Express Mode\n\n**ECS Express Mode** deploys a production-ready, load-balanced Fargate service from a single API call with just three parameters: container image, task execution role, and infrastructure role. No additional charge. AWS recommends Express Mode as the App Runner replacement (closing to new customers April 30, 2026).\n\n**Pros:** Production-ready defaults (Canary deploys, AZ rebalancing, auto-scaling, HTTPS with ACM cert, CloudWatch logging), ALB sharing across up to 25 services per VPC, full ECS underneath with no lock-in — eject to standard ECS management anytime. Supports Console, CLI, SDKs, CloudFormation, Terraform, and MCP Server.\n\n**Cons:** HTTP\u002FHTTPS only (no TCP\u002FUDP, queue workers, or batch), Fargate only (no EC2\u002FGPU\u002FGraviton), Canary deployment locked (no rolling or Blue\u002FGreen), LB config immutable after create, single container (no sidecars via Express API), subnet lock-in per VPC for shared ALB.\n\nFor full pros\u002Fcons, defaults table, IAM roles, CLI commands, and decision matrix, consult **`references\u002Fexpress-mode.md`**.\n\nAll Express Mode resources should be provisioned via CloudFormation, CDK, or Terraform. Use the `awsknowledge` MCP tools (`mcp__plugin_aws-dev-toolkit_awsknowledge__aws___search_documentation`, `mcp__plugin_aws-dev-toolkit_awsknowledge__aws___read_documentation`, `mcp__plugin_aws-dev-toolkit_awsknowledge__aws___recommend`) or consult **`references\u002Fexpress-mode.md`** for API parameters and IaC examples.\n\n## Deployment Strategies\n\n- **Rolling update** (default): Good for most workloads. Set `minimumHealthyPercent: 100` and `maximumPercent: 200` to deploy with zero downtime.\n- **Blue\u002FGreen (CodeDeploy)**: Use for production services that need instant rollback. Requires ALB. Configure `terminateAfterMinutes` to keep the old task set alive during validation.\n- **Canary**: Use CodeDeploy with `CodeDeployDefault.ECSCanary10Percent5Minutes` for high-risk changes.\n- Circuit breaker: Always enable `deploymentCircuitBreaker` with `rollback: true` to auto-rollback failed deployments.\n\n## Provisioning\n\nAll ECS resources (clusters, task definitions, services, load balancers, auto-scaling) should be provisioned via IaC — CloudFormation, CDK, or Terraform. Never create or mutate infrastructure with imperative CLI commands. Use the `cdk-docs` or `cloudformation-docs` MCP tools for current resource properties.\n\n## Observability & Debugging CLI\n\nCLI usage should be limited to read-only operations, observability, and interactive debugging:\n\n```bash\n# Describe cluster status\naws ecs describe-clusters --clusters my-cluster --include STATISTICS ATTACHMENTS\n\n# List services in a cluster\naws ecs list-services --cluster my-cluster\n\n# Describe a service (deployment status, events, task counts)\naws ecs describe-services --cluster my-cluster --services my-svc\n\n# List running tasks\naws ecs list-tasks --cluster my-cluster --service-name my-svc --desired-status RUNNING\n\n# Describe a task (container status, stopped reason, network)\naws ecs describe-tasks --cluster my-cluster --tasks \u003Ctask-id>\n\n# Exec into a running container (requires ECS Exec enabled)\naws ecs execute-command --cluster my-cluster --task \u003Ctask-id> --container my-container --interactive --command \"\u002Fbin\u002Fsh\"\n\n# Tail logs\naws logs tail \u002Fecs\u002Fmy-task --follow\n\n# Describe task definition (inspect current config)\naws ecs describe-task-definition --task-definition my-task\n\n# Check service events for deployment issues\naws ecs describe-services --cluster my-cluster --services my-svc --query \"services[].events[:5]\"\n```\n\n## Output Format\n\n| Field                   | Details                                            |\n| ----------------------- | -------------------------------------------------- |\n| **Service name**        | ECS service name and cluster                       |\n| **Launch type**         | Fargate, Fargate Spot, EC2, or External            |\n| **Task CPU\u002FMemory**     | vCPU and memory allocation (e.g., 0.5 vCPU \u002F 1 GB) |\n| **Desired count**       | Number of tasks, min\u002Fmax for auto-scaling          |\n| **Deployment strategy** | Rolling update, Blue\u002FGreen (CodeDeploy), or Canary |\n| **Load balancer**       | ALB or NLB, target group health check config       |\n| **Auto-scaling**        | Scaling metric, target value, min\u002Fmax capacity     |\n| **Logging**             | Log driver, log group, retention period            |\n\n## Related Skills\n\n- `eks` — Kubernetes-based alternative to ECS for container orchestration\n- `ec2` — EC2 launch type compute, instance selection, and Spot strategy\n- `networking` — VPC, subnet, and security group design for ECS tasks\n- `iam` — Task execution roles and task roles for least-privilege access\n- `cloudfront` — CDN in front of ECS-backed services\n- `observability` — CloudWatch Container Insights, alarms, and dashboards\n\n## Anti-Patterns\n\n- **Using :latest tag in production**: Always use immutable image tags (git SHA or semantic version). `:latest` makes rollbacks impossible and deployments non-deterministic.\n- **One giant cluster per account**: Use separate clusters per environment (dev\u002Fstaging\u002Fprod) or per team. Cluster-level IAM and capacity provider strategies are easier to manage.\n- **Oversized task definitions**: Right-size CPU and memory. A 4 vCPU \u002F 8 GB task running at 10% utilization is burning money. Start small, scale up based on CloudWatch Container Insights metrics.\n- **Skipping health checks**: Always define container health checks in the task definition AND target group health checks. Without both, ECS cannot detect unhealthy tasks.\n- **Ignoring ECS Exec**: Enable `ExecuteCommandConfiguration` on the cluster and `enableExecuteCommand` on the service. It replaces SSH access to containers and is essential for debugging.\n- **No deployment circuit breaker**: Without it, a bad deployment will keep cycling failing tasks indefinitely, consuming capacity and generating noise.\n- **Putting secrets in environment variables**: Use the `secrets` field with Secrets Manager or SSM Parameter Store references. Environment variables are visible in the console and API.\n- **Running as root**: Set `user` in the task definition to a non-root user. Combine with `readonlyRootFilesystem` for defense in depth.\n\n## Additional Resources\n\n### Reference Files\n\nFor detailed documentation and decision guidance, consult:\n\n- **`references\u002Fexpress-mode.md`** — Full Express Mode pros\u002Fcons, defaults table, IAM roles, CLI commands, resource sharing details, Express Mode vs standard ECS decision matrix, and official AWS documentation links\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,50,57,119,125,136,160,166,253,259,292,298,346,352,408,414,424,434,444,460,500,506,590,596,617,623,628,1178,1184,1340,1346,1415,1421,1557,1563,1570,1575,1591],{"type":43,"tag":44,"props":45,"children":46},"element","p",{},[47],{"type":48,"value":49},"text","You are an AWS ECS specialist. When advising on ECS workloads:",{"type":43,"tag":51,"props":52,"children":54},"h2",{"id":53},"process",[55],{"type":48,"value":56},"Process",{"type":43,"tag":58,"props":59,"children":60},"ol",{},[61,67,72,77,82],{"type":43,"tag":62,"props":63,"children":64},"li",{},[65],{"type":48,"value":66},"Clarify the workload: stateless web service, background worker, batch job, or sidecar pattern",{"type":43,"tag":62,"props":68,"children":69},{},[70],{"type":48,"value":71},"Recommend launch type (Fargate vs EC2) based on requirements",{"type":43,"tag":62,"props":73,"children":74},{},[75],{"type":48,"value":76},"Define task definition, service configuration, and networking",{"type":43,"tag":62,"props":78,"children":79},{},[80],{"type":48,"value":81},"Configure scaling, deployment strategy, and observability",{"type":43,"tag":62,"props":83,"children":84},{},[85,87,94,96,102,104,110,111,117],{"type":48,"value":86},"Use the ",{"type":43,"tag":88,"props":89,"children":91},"code",{"className":90},[],[92],{"type":48,"value":93},"awsknowledge",{"type":48,"value":95}," MCP tools (",{"type":43,"tag":88,"props":97,"children":99},{"className":98},[],[100],{"type":48,"value":101},"mcp__plugin_aws-dev-toolkit_awsknowledge__aws___search_documentation",{"type":48,"value":103},", ",{"type":43,"tag":88,"props":105,"children":107},{"className":106},[],[108],{"type":48,"value":109},"mcp__plugin_aws-dev-toolkit_awsknowledge__aws___read_documentation",{"type":48,"value":103},{"type":43,"tag":88,"props":112,"children":114},{"className":113},[],[115],{"type":48,"value":116},"mcp__plugin_aws-dev-toolkit_awsknowledge__aws___recommend",{"type":48,"value":118},") to verify current ECS limits, pricing, or feature availability",{"type":43,"tag":51,"props":120,"children":122},{"id":121},"launch-type-selection",[123],{"type":48,"value":124},"Launch Type Selection",{"type":43,"tag":44,"props":126,"children":127},{},[128,134],{"type":43,"tag":129,"props":130,"children":131},"strong",{},[132],{"type":48,"value":133},"Default to Fargate",{"type":48,"value":135}," unless you have a specific reason to manage instances yourself. Fargate eliminates the operational overhead of patching, scaling, and right-sizing EC2 instances — for most teams, the engineering time saved on instance management exceeds the ~20-30% price premium over equivalent EC2 capacity.",{"type":43,"tag":137,"props":138,"children":139},"ul",{},[140,150],{"type":43,"tag":62,"props":141,"children":142},{},[143,148],{"type":43,"tag":129,"props":144,"children":145},{},[146],{"type":48,"value":147},"Fargate",{"type":48,"value":149},": No instance management, per-vCPU\u002Fmemory billing, automatic security patching of the underlying host. Use Fargate Spot for fault-tolerant batch\u002Fworker tasks (up to 70% savings).",{"type":43,"tag":62,"props":151,"children":152},{},[153,158],{"type":43,"tag":129,"props":154,"children":155},{},[156],{"type":48,"value":157},"EC2",{"type":48,"value":159},": Choose when you need GPU instances, sustained CPU at >80% utilization where the price premium matters (Fargate costs ~$0.04\u002FvCPU-hour vs ~$0.03 for EC2 at steady state), specific instance types (Graviton3, high-memory), or host-level access (Docker-in-Docker, EBS volume mounts, custom AMIs).",{"type":43,"tag":51,"props":161,"children":163},{"id":162},"task-definitions",[164],{"type":48,"value":165},"Task Definitions",{"type":43,"tag":137,"props":167,"children":168},{},[169,174,195,208,228,241],{"type":43,"tag":62,"props":170,"children":171},{},[172],{"type":48,"value":173},"One application container per task definition, with sidecars (log routers, envoy proxies, datadog agents) in the same task definition. Reason: ECS scales, deploys, and health-checks at the task level. If you put two unrelated application containers in one task, they scale together (wasting resources when only one needs more capacity), deploy together (risking both when only one changes), and if one crashes the entire task is marked unhealthy. Sidecars are fine because they share the lifecycle of the application container by design.",{"type":43,"tag":62,"props":175,"children":176},{},[177,179,185,187,193],{"type":48,"value":178},"Always set ",{"type":43,"tag":88,"props":180,"children":182},{"className":181},[],[183],{"type":48,"value":184},"cpu",{"type":48,"value":186}," and ",{"type":43,"tag":88,"props":188,"children":190},{"className":189},[],[191],{"type":48,"value":192},"memory",{"type":48,"value":194}," at the task level for Fargate. For EC2 launch type, set container-level limits.",{"type":43,"tag":62,"props":196,"children":197},{},[198,200,206],{"type":48,"value":199},"Use ",{"type":43,"tag":88,"props":201,"children":203},{"className":202},[],[204],{"type":48,"value":205},"secrets",{"type":48,"value":207}," to pull from Secrets Manager or Parameter Store -- never bake credentials into images or environment variables.",{"type":43,"tag":62,"props":209,"children":210},{},[211,212,218,220,226],{"type":48,"value":199},{"type":43,"tag":88,"props":213,"children":215},{"className":214},[],[216],{"type":48,"value":217},"dependsOn",{"type":48,"value":219}," with ",{"type":43,"tag":88,"props":221,"children":223},{"className":222},[],[224],{"type":48,"value":225},"condition: HEALTHY",{"type":48,"value":227}," for sidecar ordering.",{"type":43,"tag":62,"props":229,"children":230},{},[231,233,239],{"type":48,"value":232},"Set ",{"type":43,"tag":88,"props":234,"children":236},{"className":235},[],[237],{"type":48,"value":238},"essential: true",{"type":48,"value":240}," only on the primary container. Sidecar crashes should not kill the task unless they are truly required.",{"type":43,"tag":62,"props":242,"children":243},{},[244,245,251],{"type":48,"value":199},{"type":43,"tag":88,"props":246,"children":248},{"className":247},[],[249],{"type":48,"value":250},"readonlyRootFilesystem: true",{"type":48,"value":252}," where possible for security hardening.",{"type":43,"tag":51,"props":254,"children":256},{"id":255},"service-configuration-networking",[257],{"type":48,"value":258},"Service Configuration & Networking",{"type":43,"tag":137,"props":260,"children":261},{},[262,272,277,282],{"type":43,"tag":62,"props":263,"children":264},{},[265,270],{"type":43,"tag":129,"props":266,"children":267},{},[268],{"type":48,"value":269},"awsvpc",{"type":48,"value":271}," network mode is mandatory for Fargate and recommended for EC2. Each task gets its own ENI.",{"type":43,"tag":62,"props":273,"children":274},{},[275],{"type":48,"value":276},"Place tasks in private subnets with NAT Gateway or VPC endpoints for ECR\u002FS3\u002FCloudWatch Logs.",{"type":43,"tag":62,"props":278,"children":279},{},[280],{"type":48,"value":281},"Use security groups at the task level -- one SG per service, allow only required ingress from the load balancer SG.",{"type":43,"tag":62,"props":283,"children":284},{},[285,290],{"type":43,"tag":129,"props":286,"children":287},{},[288],{"type":48,"value":289},"Service Connect",{"type":48,"value":291}," (Cloud Map-based): preferred for service-to-service communication over manual service discovery. Provides built-in retries, timeouts, and observability.",{"type":43,"tag":51,"props":293,"children":295},{"id":294},"load-balancer-integration",[296],{"type":48,"value":297},"Load Balancer Integration",{"type":43,"tag":137,"props":299,"children":300},{},[301,311,321,334],{"type":43,"tag":62,"props":302,"children":303},{},[304,309],{"type":43,"tag":129,"props":305,"children":306},{},[307],{"type":48,"value":308},"ALB",{"type":48,"value":310},": Default for HTTP\u002FHTTPS services. Use path-based or host-based routing to multiplex services on one ALB.",{"type":43,"tag":62,"props":312,"children":313},{},[314,319],{"type":43,"tag":129,"props":315,"children":316},{},[317],{"type":48,"value":318},"NLB",{"type":48,"value":320},": Use for TCP\u002FUDP, gRPC without HTTP\u002F2 termination, extreme throughput, or static IPs.",{"type":43,"tag":62,"props":322,"children":323},{},[324,326,332],{"type":48,"value":325},"Always configure health check grace period (",{"type":43,"tag":88,"props":327,"children":329},{"className":328},[],[330],{"type":48,"value":331},"healthCheckGracePeriodSeconds",{"type":48,"value":333},") to avoid premature task kills during startup -- set to at least 2x your container startup time.",{"type":43,"tag":62,"props":335,"children":336},{},[337,338,344],{"type":48,"value":199},{"type":43,"tag":88,"props":339,"children":341},{"className":340},[],[342],{"type":48,"value":343},"deregistrationDelay",{"type":48,"value":345}," of 30s (default 300s is usually too long) to speed up deployments.",{"type":43,"tag":51,"props":347,"children":349},{"id":348},"auto-scaling",[350],{"type":48,"value":351},"Auto-Scaling",{"type":43,"tag":137,"props":353,"children":354},{},[355,365,378,391,403],{"type":43,"tag":62,"props":356,"children":357},{},[358,363],{"type":43,"tag":129,"props":359,"children":360},{},[361],{"type":48,"value":362},"Target tracking on ECSServiceAverageCPUUtilization (70%)",{"type":48,"value":364}," is the right default for most services.",{"type":43,"tag":62,"props":366,"children":367},{},[368,370,376],{"type":48,"value":369},"For request-driven services, scale on ",{"type":43,"tag":88,"props":371,"children":373},{"className":372},[],[374],{"type":48,"value":375},"RequestCountPerTarget",{"type":48,"value":377}," from the ALB.",{"type":43,"tag":62,"props":379,"children":380},{},[381,383,389],{"type":48,"value":382},"For queue workers, scale on ",{"type":43,"tag":88,"props":384,"children":386},{"className":385},[],[387],{"type":48,"value":388},"ApproximateNumberOfMessagesVisible",{"type":48,"value":390}," from SQS using step scaling.",{"type":43,"tag":62,"props":392,"children":393},{},[394,395,401],{"type":48,"value":232},{"type":43,"tag":88,"props":396,"children":398},{"className":397},[],[399],{"type":48,"value":400},"minCapacity",{"type":48,"value":402}," >= 2 for production services (multi-AZ resilience).",{"type":43,"tag":62,"props":404,"children":405},{},[406],{"type":48,"value":407},"Fargate scaling is slower than EC2 (60-90s to launch) -- keep headroom with a slightly lower scaling target.",{"type":43,"tag":51,"props":409,"children":411},{"id":410},"express-mode",[412],{"type":48,"value":413},"Express Mode",{"type":43,"tag":44,"props":415,"children":416},{},[417,422],{"type":43,"tag":129,"props":418,"children":419},{},[420],{"type":48,"value":421},"ECS Express Mode",{"type":48,"value":423}," deploys a production-ready, load-balanced Fargate service from a single API call with just three parameters: container image, task execution role, and infrastructure role. No additional charge. AWS recommends Express Mode as the App Runner replacement (closing to new customers April 30, 2026).",{"type":43,"tag":44,"props":425,"children":426},{},[427,432],{"type":43,"tag":129,"props":428,"children":429},{},[430],{"type":48,"value":431},"Pros:",{"type":48,"value":433}," Production-ready defaults (Canary deploys, AZ rebalancing, auto-scaling, HTTPS with ACM cert, CloudWatch logging), ALB sharing across up to 25 services per VPC, full ECS underneath with no lock-in — eject to standard ECS management anytime. Supports Console, CLI, SDKs, CloudFormation, Terraform, and MCP Server.",{"type":43,"tag":44,"props":435,"children":436},{},[437,442],{"type":43,"tag":129,"props":438,"children":439},{},[440],{"type":48,"value":441},"Cons:",{"type":48,"value":443}," HTTP\u002FHTTPS only (no TCP\u002FUDP, queue workers, or batch), Fargate only (no EC2\u002FGPU\u002FGraviton), Canary deployment locked (no rolling or Blue\u002FGreen), LB config immutable after create, single container (no sidecars via Express API), subnet lock-in per VPC for shared ALB.",{"type":43,"tag":44,"props":445,"children":446},{},[447,449,458],{"type":48,"value":448},"For full pros\u002Fcons, defaults table, IAM roles, CLI commands, and decision matrix, consult ",{"type":43,"tag":129,"props":450,"children":451},{},[452],{"type":43,"tag":88,"props":453,"children":455},{"className":454},[],[456],{"type":48,"value":457},"references\u002Fexpress-mode.md",{"type":48,"value":459},".",{"type":43,"tag":44,"props":461,"children":462},{},[463,465,470,471,476,477,482,483,488,490,498],{"type":48,"value":464},"All Express Mode resources should be provisioned via CloudFormation, CDK, or Terraform. Use the ",{"type":43,"tag":88,"props":466,"children":468},{"className":467},[],[469],{"type":48,"value":93},{"type":48,"value":95},{"type":43,"tag":88,"props":472,"children":474},{"className":473},[],[475],{"type":48,"value":101},{"type":48,"value":103},{"type":43,"tag":88,"props":478,"children":480},{"className":479},[],[481],{"type":48,"value":109},{"type":48,"value":103},{"type":43,"tag":88,"props":484,"children":486},{"className":485},[],[487],{"type":48,"value":116},{"type":48,"value":489},") or consult ",{"type":43,"tag":129,"props":491,"children":492},{},[493],{"type":43,"tag":88,"props":494,"children":496},{"className":495},[],[497],{"type":48,"value":457},{"type":48,"value":499}," for API parameters and IaC examples.",{"type":43,"tag":51,"props":501,"children":503},{"id":502},"deployment-strategies",[504],{"type":48,"value":505},"Deployment Strategies",{"type":43,"tag":137,"props":507,"children":508},{},[509,534,552,570],{"type":43,"tag":62,"props":510,"children":511},{},[512,517,519,525,526,532],{"type":43,"tag":129,"props":513,"children":514},{},[515],{"type":48,"value":516},"Rolling update",{"type":48,"value":518}," (default): Good for most workloads. Set ",{"type":43,"tag":88,"props":520,"children":522},{"className":521},[],[523],{"type":48,"value":524},"minimumHealthyPercent: 100",{"type":48,"value":186},{"type":43,"tag":88,"props":527,"children":529},{"className":528},[],[530],{"type":48,"value":531},"maximumPercent: 200",{"type":48,"value":533}," to deploy with zero downtime.",{"type":43,"tag":62,"props":535,"children":536},{},[537,542,544,550],{"type":43,"tag":129,"props":538,"children":539},{},[540],{"type":48,"value":541},"Blue\u002FGreen (CodeDeploy)",{"type":48,"value":543},": Use for production services that need instant rollback. Requires ALB. Configure ",{"type":43,"tag":88,"props":545,"children":547},{"className":546},[],[548],{"type":48,"value":549},"terminateAfterMinutes",{"type":48,"value":551}," to keep the old task set alive during validation.",{"type":43,"tag":62,"props":553,"children":554},{},[555,560,562,568],{"type":43,"tag":129,"props":556,"children":557},{},[558],{"type":48,"value":559},"Canary",{"type":48,"value":561},": Use CodeDeploy with ",{"type":43,"tag":88,"props":563,"children":565},{"className":564},[],[566],{"type":48,"value":567},"CodeDeployDefault.ECSCanary10Percent5Minutes",{"type":48,"value":569}," for high-risk changes.",{"type":43,"tag":62,"props":571,"children":572},{},[573,575,581,582,588],{"type":48,"value":574},"Circuit breaker: Always enable ",{"type":43,"tag":88,"props":576,"children":578},{"className":577},[],[579],{"type":48,"value":580},"deploymentCircuitBreaker",{"type":48,"value":219},{"type":43,"tag":88,"props":583,"children":585},{"className":584},[],[586],{"type":48,"value":587},"rollback: true",{"type":48,"value":589}," to auto-rollback failed deployments.",{"type":43,"tag":51,"props":591,"children":593},{"id":592},"provisioning",[594],{"type":48,"value":595},"Provisioning",{"type":43,"tag":44,"props":597,"children":598},{},[599,601,607,609,615],{"type":48,"value":600},"All ECS resources (clusters, task definitions, services, load balancers, auto-scaling) should be provisioned via IaC — CloudFormation, CDK, or Terraform. Never create or mutate infrastructure with imperative CLI commands. Use the ",{"type":43,"tag":88,"props":602,"children":604},{"className":603},[],[605],{"type":48,"value":606},"cdk-docs",{"type":48,"value":608}," or ",{"type":43,"tag":88,"props":610,"children":612},{"className":611},[],[613],{"type":48,"value":614},"cloudformation-docs",{"type":48,"value":616}," MCP tools for current resource properties.",{"type":43,"tag":51,"props":618,"children":620},{"id":619},"observability-debugging-cli",[621],{"type":48,"value":622},"Observability & Debugging CLI",{"type":43,"tag":44,"props":624,"children":625},{},[626],{"type":48,"value":627},"CLI usage should be limited to read-only operations, observability, and interactive debugging:",{"type":43,"tag":629,"props":630,"children":635},"pre",{"className":631,"code":632,"language":633,"meta":634,"style":634},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Describe cluster status\naws ecs describe-clusters --clusters my-cluster --include STATISTICS ATTACHMENTS\n\n# List services in a cluster\naws ecs list-services --cluster my-cluster\n\n# Describe a service (deployment status, events, task counts)\naws ecs describe-services --cluster my-cluster --services my-svc\n\n# List running tasks\naws ecs list-tasks --cluster my-cluster --service-name my-svc --desired-status RUNNING\n\n# Describe a task (container status, stopped reason, network)\naws ecs describe-tasks --cluster my-cluster --tasks \u003Ctask-id>\n\n# Exec into a running container (requires ECS Exec enabled)\naws ecs execute-command --cluster my-cluster --task \u003Ctask-id> --container my-container --interactive --command \"\u002Fbin\u002Fsh\"\n\n# Tail logs\naws logs tail \u002Fecs\u002Fmy-task --follow\n\n# Describe task definition (inspect current config)\naws ecs describe-task-definition --task-definition my-task\n\n# Check service events for deployment issues\naws ecs describe-services --cluster my-cluster --services my-svc --query \"services[].events[:5]\"\n","bash","",[636],{"type":43,"tag":88,"props":637,"children":638},{"__ignoreMap":634},[639,651,696,706,715,742,750,759,794,802,811,856,864,873,924,931,940,1022,1030,1039,1067,1075,1084,1111,1119,1128],{"type":43,"tag":640,"props":641,"children":644},"span",{"class":642,"line":643},"line",1,[645],{"type":43,"tag":640,"props":646,"children":648},{"style":647},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[649],{"type":48,"value":650},"# Describe cluster status\n",{"type":43,"tag":640,"props":652,"children":654},{"class":642,"line":653},2,[655,660,666,671,676,681,686,691],{"type":43,"tag":640,"props":656,"children":658},{"style":657},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[659],{"type":48,"value":25},{"type":43,"tag":640,"props":661,"children":663},{"style":662},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[664],{"type":48,"value":665}," ecs",{"type":43,"tag":640,"props":667,"children":668},{"style":662},[669],{"type":48,"value":670}," describe-clusters",{"type":43,"tag":640,"props":672,"children":673},{"style":662},[674],{"type":48,"value":675}," --clusters",{"type":43,"tag":640,"props":677,"children":678},{"style":662},[679],{"type":48,"value":680}," my-cluster",{"type":43,"tag":640,"props":682,"children":683},{"style":662},[684],{"type":48,"value":685}," --include",{"type":43,"tag":640,"props":687,"children":688},{"style":662},[689],{"type":48,"value":690}," STATISTICS",{"type":43,"tag":640,"props":692,"children":693},{"style":662},[694],{"type":48,"value":695}," ATTACHMENTS\n",{"type":43,"tag":640,"props":697,"children":699},{"class":642,"line":698},3,[700],{"type":43,"tag":640,"props":701,"children":703},{"emptyLinePlaceholder":702},true,[704],{"type":48,"value":705},"\n",{"type":43,"tag":640,"props":707,"children":709},{"class":642,"line":708},4,[710],{"type":43,"tag":640,"props":711,"children":712},{"style":647},[713],{"type":48,"value":714},"# List services in a cluster\n",{"type":43,"tag":640,"props":716,"children":718},{"class":642,"line":717},5,[719,723,727,732,737],{"type":43,"tag":640,"props":720,"children":721},{"style":657},[722],{"type":48,"value":25},{"type":43,"tag":640,"props":724,"children":725},{"style":662},[726],{"type":48,"value":665},{"type":43,"tag":640,"props":728,"children":729},{"style":662},[730],{"type":48,"value":731}," list-services",{"type":43,"tag":640,"props":733,"children":734},{"style":662},[735],{"type":48,"value":736}," --cluster",{"type":43,"tag":640,"props":738,"children":739},{"style":662},[740],{"type":48,"value":741}," my-cluster\n",{"type":43,"tag":640,"props":743,"children":745},{"class":642,"line":744},6,[746],{"type":43,"tag":640,"props":747,"children":748},{"emptyLinePlaceholder":702},[749],{"type":48,"value":705},{"type":43,"tag":640,"props":751,"children":753},{"class":642,"line":752},7,[754],{"type":43,"tag":640,"props":755,"children":756},{"style":647},[757],{"type":48,"value":758},"# Describe a service (deployment status, events, task counts)\n",{"type":43,"tag":640,"props":760,"children":762},{"class":642,"line":761},8,[763,767,771,776,780,784,789],{"type":43,"tag":640,"props":764,"children":765},{"style":657},[766],{"type":48,"value":25},{"type":43,"tag":640,"props":768,"children":769},{"style":662},[770],{"type":48,"value":665},{"type":43,"tag":640,"props":772,"children":773},{"style":662},[774],{"type":48,"value":775}," describe-services",{"type":43,"tag":640,"props":777,"children":778},{"style":662},[779],{"type":48,"value":736},{"type":43,"tag":640,"props":781,"children":782},{"style":662},[783],{"type":48,"value":680},{"type":43,"tag":640,"props":785,"children":786},{"style":662},[787],{"type":48,"value":788}," --services",{"type":43,"tag":640,"props":790,"children":791},{"style":662},[792],{"type":48,"value":793}," my-svc\n",{"type":43,"tag":640,"props":795,"children":797},{"class":642,"line":796},9,[798],{"type":43,"tag":640,"props":799,"children":800},{"emptyLinePlaceholder":702},[801],{"type":48,"value":705},{"type":43,"tag":640,"props":803,"children":805},{"class":642,"line":804},10,[806],{"type":43,"tag":640,"props":807,"children":808},{"style":647},[809],{"type":48,"value":810},"# List running tasks\n",{"type":43,"tag":640,"props":812,"children":814},{"class":642,"line":813},11,[815,819,823,828,832,836,841,846,851],{"type":43,"tag":640,"props":816,"children":817},{"style":657},[818],{"type":48,"value":25},{"type":43,"tag":640,"props":820,"children":821},{"style":662},[822],{"type":48,"value":665},{"type":43,"tag":640,"props":824,"children":825},{"style":662},[826],{"type":48,"value":827}," list-tasks",{"type":43,"tag":640,"props":829,"children":830},{"style":662},[831],{"type":48,"value":736},{"type":43,"tag":640,"props":833,"children":834},{"style":662},[835],{"type":48,"value":680},{"type":43,"tag":640,"props":837,"children":838},{"style":662},[839],{"type":48,"value":840}," --service-name",{"type":43,"tag":640,"props":842,"children":843},{"style":662},[844],{"type":48,"value":845}," my-svc",{"type":43,"tag":640,"props":847,"children":848},{"style":662},[849],{"type":48,"value":850}," --desired-status",{"type":43,"tag":640,"props":852,"children":853},{"style":662},[854],{"type":48,"value":855}," RUNNING\n",{"type":43,"tag":640,"props":857,"children":859},{"class":642,"line":858},12,[860],{"type":43,"tag":640,"props":861,"children":862},{"emptyLinePlaceholder":702},[863],{"type":48,"value":705},{"type":43,"tag":640,"props":865,"children":867},{"class":642,"line":866},13,[868],{"type":43,"tag":640,"props":869,"children":870},{"style":647},[871],{"type":48,"value":872},"# Describe a task (container status, stopped reason, network)\n",{"type":43,"tag":640,"props":874,"children":875},{"class":642,"line":26},[876,880,884,889,893,897,902,908,913,919],{"type":43,"tag":640,"props":877,"children":878},{"style":657},[879],{"type":48,"value":25},{"type":43,"tag":640,"props":881,"children":882},{"style":662},[883],{"type":48,"value":665},{"type":43,"tag":640,"props":885,"children":886},{"style":662},[887],{"type":48,"value":888}," describe-tasks",{"type":43,"tag":640,"props":890,"children":891},{"style":662},[892],{"type":48,"value":736},{"type":43,"tag":640,"props":894,"children":895},{"style":662},[896],{"type":48,"value":680},{"type":43,"tag":640,"props":898,"children":899},{"style":662},[900],{"type":48,"value":901}," --tasks",{"type":43,"tag":640,"props":903,"children":905},{"style":904},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[906],{"type":48,"value":907}," \u003C",{"type":43,"tag":640,"props":909,"children":910},{"style":662},[911],{"type":48,"value":912},"task-i",{"type":43,"tag":640,"props":914,"children":916},{"style":915},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[917],{"type":48,"value":918},"d",{"type":43,"tag":640,"props":920,"children":921},{"style":904},[922],{"type":48,"value":923},">\n",{"type":43,"tag":640,"props":925,"children":926},{"class":642,"line":30},[927],{"type":43,"tag":640,"props":928,"children":929},{"emptyLinePlaceholder":702},[930],{"type":48,"value":705},{"type":43,"tag":640,"props":932,"children":934},{"class":642,"line":933},16,[935],{"type":43,"tag":640,"props":936,"children":937},{"style":647},[938],{"type":48,"value":939},"# Exec into a running container (requires ECS Exec enabled)\n",{"type":43,"tag":640,"props":941,"children":943},{"class":642,"line":942},17,[944,948,952,957,961,965,970,974,978,982,987,992,997,1002,1007,1012,1017],{"type":43,"tag":640,"props":945,"children":946},{"style":657},[947],{"type":48,"value":25},{"type":43,"tag":640,"props":949,"children":950},{"style":662},[951],{"type":48,"value":665},{"type":43,"tag":640,"props":953,"children":954},{"style":662},[955],{"type":48,"value":956}," execute-command",{"type":43,"tag":640,"props":958,"children":959},{"style":662},[960],{"type":48,"value":736},{"type":43,"tag":640,"props":962,"children":963},{"style":662},[964],{"type":48,"value":680},{"type":43,"tag":640,"props":966,"children":967},{"style":662},[968],{"type":48,"value":969}," --task",{"type":43,"tag":640,"props":971,"children":972},{"style":904},[973],{"type":48,"value":907},{"type":43,"tag":640,"props":975,"children":976},{"style":662},[977],{"type":48,"value":912},{"type":43,"tag":640,"props":979,"children":980},{"style":915},[981],{"type":48,"value":918},{"type":43,"tag":640,"props":983,"children":984},{"style":904},[985],{"type":48,"value":986},">",{"type":43,"tag":640,"props":988,"children":989},{"style":662},[990],{"type":48,"value":991}," --container",{"type":43,"tag":640,"props":993,"children":994},{"style":662},[995],{"type":48,"value":996}," my-container",{"type":43,"tag":640,"props":998,"children":999},{"style":662},[1000],{"type":48,"value":1001}," --interactive",{"type":43,"tag":640,"props":1003,"children":1004},{"style":662},[1005],{"type":48,"value":1006}," --command",{"type":43,"tag":640,"props":1008,"children":1009},{"style":904},[1010],{"type":48,"value":1011}," \"",{"type":43,"tag":640,"props":1013,"children":1014},{"style":662},[1015],{"type":48,"value":1016},"\u002Fbin\u002Fsh",{"type":43,"tag":640,"props":1018,"children":1019},{"style":904},[1020],{"type":48,"value":1021},"\"\n",{"type":43,"tag":640,"props":1023,"children":1025},{"class":642,"line":1024},18,[1026],{"type":43,"tag":640,"props":1027,"children":1028},{"emptyLinePlaceholder":702},[1029],{"type":48,"value":705},{"type":43,"tag":640,"props":1031,"children":1033},{"class":642,"line":1032},19,[1034],{"type":43,"tag":640,"props":1035,"children":1036},{"style":647},[1037],{"type":48,"value":1038},"# Tail logs\n",{"type":43,"tag":640,"props":1040,"children":1042},{"class":642,"line":1041},20,[1043,1047,1052,1057,1062],{"type":43,"tag":640,"props":1044,"children":1045},{"style":657},[1046],{"type":48,"value":25},{"type":43,"tag":640,"props":1048,"children":1049},{"style":662},[1050],{"type":48,"value":1051}," logs",{"type":43,"tag":640,"props":1053,"children":1054},{"style":662},[1055],{"type":48,"value":1056}," tail",{"type":43,"tag":640,"props":1058,"children":1059},{"style":662},[1060],{"type":48,"value":1061}," \u002Fecs\u002Fmy-task",{"type":43,"tag":640,"props":1063,"children":1064},{"style":662},[1065],{"type":48,"value":1066}," --follow\n",{"type":43,"tag":640,"props":1068,"children":1070},{"class":642,"line":1069},21,[1071],{"type":43,"tag":640,"props":1072,"children":1073},{"emptyLinePlaceholder":702},[1074],{"type":48,"value":705},{"type":43,"tag":640,"props":1076,"children":1078},{"class":642,"line":1077},22,[1079],{"type":43,"tag":640,"props":1080,"children":1081},{"style":647},[1082],{"type":48,"value":1083},"# Describe task definition (inspect current config)\n",{"type":43,"tag":640,"props":1085,"children":1087},{"class":642,"line":1086},23,[1088,1092,1096,1101,1106],{"type":43,"tag":640,"props":1089,"children":1090},{"style":657},[1091],{"type":48,"value":25},{"type":43,"tag":640,"props":1093,"children":1094},{"style":662},[1095],{"type":48,"value":665},{"type":43,"tag":640,"props":1097,"children":1098},{"style":662},[1099],{"type":48,"value":1100}," describe-task-definition",{"type":43,"tag":640,"props":1102,"children":1103},{"style":662},[1104],{"type":48,"value":1105}," --task-definition",{"type":43,"tag":640,"props":1107,"children":1108},{"style":662},[1109],{"type":48,"value":1110}," my-task\n",{"type":43,"tag":640,"props":1112,"children":1114},{"class":642,"line":1113},24,[1115],{"type":43,"tag":640,"props":1116,"children":1117},{"emptyLinePlaceholder":702},[1118],{"type":48,"value":705},{"type":43,"tag":640,"props":1120,"children":1122},{"class":642,"line":1121},25,[1123],{"type":43,"tag":640,"props":1124,"children":1125},{"style":647},[1126],{"type":48,"value":1127},"# Check service events for deployment issues\n",{"type":43,"tag":640,"props":1129,"children":1131},{"class":642,"line":1130},26,[1132,1136,1140,1144,1148,1152,1156,1160,1165,1169,1174],{"type":43,"tag":640,"props":1133,"children":1134},{"style":657},[1135],{"type":48,"value":25},{"type":43,"tag":640,"props":1137,"children":1138},{"style":662},[1139],{"type":48,"value":665},{"type":43,"tag":640,"props":1141,"children":1142},{"style":662},[1143],{"type":48,"value":775},{"type":43,"tag":640,"props":1145,"children":1146},{"style":662},[1147],{"type":48,"value":736},{"type":43,"tag":640,"props":1149,"children":1150},{"style":662},[1151],{"type":48,"value":680},{"type":43,"tag":640,"props":1153,"children":1154},{"style":662},[1155],{"type":48,"value":788},{"type":43,"tag":640,"props":1157,"children":1158},{"style":662},[1159],{"type":48,"value":845},{"type":43,"tag":640,"props":1161,"children":1162},{"style":662},[1163],{"type":48,"value":1164}," --query",{"type":43,"tag":640,"props":1166,"children":1167},{"style":904},[1168],{"type":48,"value":1011},{"type":43,"tag":640,"props":1170,"children":1171},{"style":662},[1172],{"type":48,"value":1173},"services[].events[:5]",{"type":43,"tag":640,"props":1175,"children":1176},{"style":904},[1177],{"type":48,"value":1021},{"type":43,"tag":51,"props":1179,"children":1181},{"id":1180},"output-format",[1182],{"type":48,"value":1183},"Output Format",{"type":43,"tag":1185,"props":1186,"children":1187},"table",{},[1188,1207],{"type":43,"tag":1189,"props":1190,"children":1191},"thead",{},[1192],{"type":43,"tag":1193,"props":1194,"children":1195},"tr",{},[1196,1202],{"type":43,"tag":1197,"props":1198,"children":1199},"th",{},[1200],{"type":48,"value":1201},"Field",{"type":43,"tag":1197,"props":1203,"children":1204},{},[1205],{"type":48,"value":1206},"Details",{"type":43,"tag":1208,"props":1209,"children":1210},"tbody",{},[1211,1228,1244,1260,1276,1292,1308,1324],{"type":43,"tag":1193,"props":1212,"children":1213},{},[1214,1223],{"type":43,"tag":1215,"props":1216,"children":1217},"td",{},[1218],{"type":43,"tag":129,"props":1219,"children":1220},{},[1221],{"type":48,"value":1222},"Service name",{"type":43,"tag":1215,"props":1224,"children":1225},{},[1226],{"type":48,"value":1227},"ECS service name and cluster",{"type":43,"tag":1193,"props":1229,"children":1230},{},[1231,1239],{"type":43,"tag":1215,"props":1232,"children":1233},{},[1234],{"type":43,"tag":129,"props":1235,"children":1236},{},[1237],{"type":48,"value":1238},"Launch type",{"type":43,"tag":1215,"props":1240,"children":1241},{},[1242],{"type":48,"value":1243},"Fargate, Fargate Spot, EC2, or External",{"type":43,"tag":1193,"props":1245,"children":1246},{},[1247,1255],{"type":43,"tag":1215,"props":1248,"children":1249},{},[1250],{"type":43,"tag":129,"props":1251,"children":1252},{},[1253],{"type":48,"value":1254},"Task CPU\u002FMemory",{"type":43,"tag":1215,"props":1256,"children":1257},{},[1258],{"type":48,"value":1259},"vCPU and memory allocation (e.g., 0.5 vCPU \u002F 1 GB)",{"type":43,"tag":1193,"props":1261,"children":1262},{},[1263,1271],{"type":43,"tag":1215,"props":1264,"children":1265},{},[1266],{"type":43,"tag":129,"props":1267,"children":1268},{},[1269],{"type":48,"value":1270},"Desired count",{"type":43,"tag":1215,"props":1272,"children":1273},{},[1274],{"type":48,"value":1275},"Number of tasks, min\u002Fmax for auto-scaling",{"type":43,"tag":1193,"props":1277,"children":1278},{},[1279,1287],{"type":43,"tag":1215,"props":1280,"children":1281},{},[1282],{"type":43,"tag":129,"props":1283,"children":1284},{},[1285],{"type":48,"value":1286},"Deployment strategy",{"type":43,"tag":1215,"props":1288,"children":1289},{},[1290],{"type":48,"value":1291},"Rolling update, Blue\u002FGreen (CodeDeploy), or Canary",{"type":43,"tag":1193,"props":1293,"children":1294},{},[1295,1303],{"type":43,"tag":1215,"props":1296,"children":1297},{},[1298],{"type":43,"tag":129,"props":1299,"children":1300},{},[1301],{"type":48,"value":1302},"Load balancer",{"type":43,"tag":1215,"props":1304,"children":1305},{},[1306],{"type":48,"value":1307},"ALB or NLB, target group health check config",{"type":43,"tag":1193,"props":1309,"children":1310},{},[1311,1319],{"type":43,"tag":1215,"props":1312,"children":1313},{},[1314],{"type":43,"tag":129,"props":1315,"children":1316},{},[1317],{"type":48,"value":1318},"Auto-scaling",{"type":43,"tag":1215,"props":1320,"children":1321},{},[1322],{"type":48,"value":1323},"Scaling metric, target value, min\u002Fmax capacity",{"type":43,"tag":1193,"props":1325,"children":1326},{},[1327,1335],{"type":43,"tag":1215,"props":1328,"children":1329},{},[1330],{"type":43,"tag":129,"props":1331,"children":1332},{},[1333],{"type":48,"value":1334},"Logging",{"type":43,"tag":1215,"props":1336,"children":1337},{},[1338],{"type":48,"value":1339},"Log driver, log group, retention period",{"type":43,"tag":51,"props":1341,"children":1343},{"id":1342},"related-skills",[1344],{"type":48,"value":1345},"Related Skills",{"type":43,"tag":137,"props":1347,"children":1348},{},[1349,1360,1371,1382,1393,1404],{"type":43,"tag":62,"props":1350,"children":1351},{},[1352,1358],{"type":43,"tag":88,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":48,"value":1357},"eks",{"type":48,"value":1359}," — Kubernetes-based alternative to ECS for container orchestration",{"type":43,"tag":62,"props":1361,"children":1362},{},[1363,1369],{"type":43,"tag":88,"props":1364,"children":1366},{"className":1365},[],[1367],{"type":48,"value":1368},"ec2",{"type":48,"value":1370}," — EC2 launch type compute, instance selection, and Spot strategy",{"type":43,"tag":62,"props":1372,"children":1373},{},[1374,1380],{"type":43,"tag":88,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":48,"value":1379},"networking",{"type":48,"value":1381}," — VPC, subnet, and security group design for ECS tasks",{"type":43,"tag":62,"props":1383,"children":1384},{},[1385,1391],{"type":43,"tag":88,"props":1386,"children":1388},{"className":1387},[],[1389],{"type":48,"value":1390},"iam",{"type":48,"value":1392}," — Task execution roles and task roles for least-privilege access",{"type":43,"tag":62,"props":1394,"children":1395},{},[1396,1402],{"type":43,"tag":88,"props":1397,"children":1399},{"className":1398},[],[1400],{"type":48,"value":1401},"cloudfront",{"type":48,"value":1403}," — CDN in front of ECS-backed services",{"type":43,"tag":62,"props":1405,"children":1406},{},[1407,1413],{"type":43,"tag":88,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":48,"value":1412},"observability",{"type":48,"value":1414}," — CloudWatch Container Insights, alarms, and dashboards",{"type":43,"tag":51,"props":1416,"children":1418},{"id":1417},"anti-patterns",[1419],{"type":48,"value":1420},"Anti-Patterns",{"type":43,"tag":137,"props":1422,"children":1423},{},[1424,1448,1458,1468,1478,1504,1514,1531],{"type":43,"tag":62,"props":1425,"children":1426},{},[1427,1438,1440,1446],{"type":43,"tag":129,"props":1428,"children":1429},{},[1430,1432,1436],{"type":48,"value":1431},"Using ",{"type":43,"tag":1433,"props":1434,"children":1435},"latest",{},[],{"type":48,"value":1437}," tag in production",{"type":48,"value":1439},": Always use immutable image tags (git SHA or semantic version). ",{"type":43,"tag":88,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":48,"value":1445},":latest",{"type":48,"value":1447}," makes rollbacks impossible and deployments non-deterministic.",{"type":43,"tag":62,"props":1449,"children":1450},{},[1451,1456],{"type":43,"tag":129,"props":1452,"children":1453},{},[1454],{"type":48,"value":1455},"One giant cluster per account",{"type":48,"value":1457},": Use separate clusters per environment (dev\u002Fstaging\u002Fprod) or per team. Cluster-level IAM and capacity provider strategies are easier to manage.",{"type":43,"tag":62,"props":1459,"children":1460},{},[1461,1466],{"type":43,"tag":129,"props":1462,"children":1463},{},[1464],{"type":48,"value":1465},"Oversized task definitions",{"type":48,"value":1467},": Right-size CPU and memory. A 4 vCPU \u002F 8 GB task running at 10% utilization is burning money. Start small, scale up based on CloudWatch Container Insights metrics.",{"type":43,"tag":62,"props":1469,"children":1470},{},[1471,1476],{"type":43,"tag":129,"props":1472,"children":1473},{},[1474],{"type":48,"value":1475},"Skipping health checks",{"type":48,"value":1477},": Always define container health checks in the task definition AND target group health checks. Without both, ECS cannot detect unhealthy tasks.",{"type":43,"tag":62,"props":1479,"children":1480},{},[1481,1486,1488,1494,1496,1502],{"type":43,"tag":129,"props":1482,"children":1483},{},[1484],{"type":48,"value":1485},"Ignoring ECS Exec",{"type":48,"value":1487},": Enable ",{"type":43,"tag":88,"props":1489,"children":1491},{"className":1490},[],[1492],{"type":48,"value":1493},"ExecuteCommandConfiguration",{"type":48,"value":1495}," on the cluster and ",{"type":43,"tag":88,"props":1497,"children":1499},{"className":1498},[],[1500],{"type":48,"value":1501},"enableExecuteCommand",{"type":48,"value":1503}," on the service. It replaces SSH access to containers and is essential for debugging.",{"type":43,"tag":62,"props":1505,"children":1506},{},[1507,1512],{"type":43,"tag":129,"props":1508,"children":1509},{},[1510],{"type":48,"value":1511},"No deployment circuit breaker",{"type":48,"value":1513},": Without it, a bad deployment will keep cycling failing tasks indefinitely, consuming capacity and generating noise.",{"type":43,"tag":62,"props":1515,"children":1516},{},[1517,1522,1524,1529],{"type":43,"tag":129,"props":1518,"children":1519},{},[1520],{"type":48,"value":1521},"Putting secrets in environment variables",{"type":48,"value":1523},": Use the ",{"type":43,"tag":88,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":48,"value":205},{"type":48,"value":1530}," field with Secrets Manager or SSM Parameter Store references. Environment variables are visible in the console and API.",{"type":43,"tag":62,"props":1532,"children":1533},{},[1534,1539,1541,1547,1549,1555],{"type":43,"tag":129,"props":1535,"children":1536},{},[1537],{"type":48,"value":1538},"Running as root",{"type":48,"value":1540},": Set ",{"type":43,"tag":88,"props":1542,"children":1544},{"className":1543},[],[1545],{"type":48,"value":1546},"user",{"type":48,"value":1548}," in the task definition to a non-root user. Combine with ",{"type":43,"tag":88,"props":1550,"children":1552},{"className":1551},[],[1553],{"type":48,"value":1554},"readonlyRootFilesystem",{"type":48,"value":1556}," for defense in depth.",{"type":43,"tag":51,"props":1558,"children":1560},{"id":1559},"additional-resources",[1561],{"type":48,"value":1562},"Additional Resources",{"type":43,"tag":1564,"props":1565,"children":1567},"h3",{"id":1566},"reference-files",[1568],{"type":48,"value":1569},"Reference Files",{"type":43,"tag":44,"props":1571,"children":1572},{},[1573],{"type":48,"value":1574},"For detailed documentation and decision guidance, consult:",{"type":43,"tag":137,"props":1576,"children":1577},{},[1578],{"type":43,"tag":62,"props":1579,"children":1580},{},[1581,1589],{"type":43,"tag":129,"props":1582,"children":1583},{},[1584],{"type":43,"tag":88,"props":1585,"children":1587},{"className":1586},[],[1588],{"type":48,"value":457},{"type":48,"value":1590}," — Full Express Mode pros\u002Fcons, defaults table, IAM roles, CLI commands, resource sharing details, Express Mode vs standard ECS decision matrix, and official AWS documentation links",{"type":43,"tag":1592,"props":1593,"children":1594},"style",{},[1595],{"type":48,"value":1596},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1598,"total":1775},[1599,1617,1638,1648,1661,1674,1684,1694,1715,1730,1745,1760],{"slug":1600,"name":1600,"fn":1601,"description":1602,"org":1603,"tags":1604,"stars":1614,"repoUrl":1615,"updatedAt":1616},"agentcore-investigation","investigate Bedrock AgentCore runtime sessions","Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session\u002Ftrace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1605,1606,1609,1612],{"name":24,"slug":25,"type":16},{"name":1607,"slug":1608,"type":16},"Debugging","debugging",{"name":1610,"slug":1611,"type":16},"Logs","logs",{"name":1613,"slug":1412,"type":16},"Observability",9427,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fmcp","2026-07-12T08:37:22.601527",{"slug":1618,"name":1619,"fn":1620,"description":1621,"org":1622,"tags":1623,"stars":1614,"repoUrl":1615,"updatedAt":1637},"amazon-aurora-dsql","amazon aurora dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, create DSQL table, DSQL schema, migrate to DSQL, distributed SQL database, serverless PostgreSQL-compatible database, DSQL query plan, DSQL EXPLAIN ANALYZE, why is my DSQL query slow, DSQL foreign key, DSQL OCC retry, DSQL multi-region, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1624,1627,1628,1631,1634],{"name":1625,"slug":1626,"type":16},"Aurora","aurora",{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},"Database","database",{"name":1632,"slug":1633,"type":16},"Serverless","serverless",{"name":1635,"slug":1636,"type":16},"SQL","sql","2026-07-12T08:36:45.053393",{"slug":1639,"name":1640,"fn":1620,"description":1621,"org":1641,"tags":1642,"stars":1614,"repoUrl":1615,"updatedAt":1647},"aurora-dsql","aurora dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1643,1644,1645,1646],{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},{"name":1632,"slug":1633,"type":16},{"name":1635,"slug":1636,"type":16},"2026-07-12T08:36:42.694299",{"slug":1649,"name":1650,"fn":1620,"description":1621,"org":1651,"tags":1652,"stars":1614,"repoUrl":1615,"updatedAt":1660},"aws-dsql","aws dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1653,1654,1655,1658,1659],{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},{"name":1656,"slug":1657,"type":16},"Migration","migration",{"name":1632,"slug":1633,"type":16},{"name":1635,"slug":1636,"type":16},"2026-07-12T08:36:38.584057",{"slug":1662,"name":1663,"fn":1620,"description":1621,"org":1664,"tags":1665,"stars":1614,"repoUrl":1615,"updatedAt":1673},"distributed-postgres","distributed postgres",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1666,1667,1668,1671,1672],{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},{"name":1669,"slug":1670,"type":16},"PostgreSQL","postgresql",{"name":1632,"slug":1633,"type":16},{"name":1635,"slug":1636,"type":16},"2026-07-12T08:36:46.530743",{"slug":1675,"name":1676,"fn":1620,"description":1621,"org":1677,"tags":1678,"stars":1614,"repoUrl":1615,"updatedAt":1683},"distributed-sql","distributed sql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1679,1680,1681,1682],{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},{"name":1632,"slug":1633,"type":16},{"name":1635,"slug":1636,"type":16},"2026-07-12T08:36:48.104182",{"slug":1685,"name":1685,"fn":1620,"description":1621,"org":1686,"tags":1687,"stars":1614,"repoUrl":1615,"updatedAt":1693},"dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1688,1689,1690,1691,1692],{"name":24,"slug":25,"type":16},{"name":1629,"slug":1630,"type":16},{"name":1656,"slug":1657,"type":16},{"name":1632,"slug":1633,"type":16},{"name":1635,"slug":1636,"type":16},"2026-07-12T08:36:36.374512",{"slug":1695,"name":1695,"fn":1696,"description":1697,"org":1698,"tags":1699,"stars":1712,"repoUrl":1713,"updatedAt":1714},"cost-efficiency-analyzer","analyze cost efficiency and expenses","Analyzes cost structure, cost efficiency, and expense management from P&L data. Use when the user asks about costs, expenses, COGS, operating expenses, cost ratios, cost control, spending efficiency, margin compression from cost side, or wants to understand where money is going. Also use for \"are we spending too much\", \"cost breakdown\", \"expense analysis\", or \"how efficient are our operations\". NOT for revenue or top-line analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1700,1703,1706,1709],{"name":1701,"slug":1702,"type":16},"Accounting","accounting",{"name":1704,"slug":1705,"type":16},"Analytics","analytics",{"name":1707,"slug":1708,"type":16},"Cost Optimization","cost-optimization",{"name":1710,"slug":1711,"type":16},"Finance","finance",3176,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fagentcore-samples","2026-07-12T08:40:03.29555",{"slug":1716,"name":1716,"fn":1717,"description":1718,"org":1719,"tags":1720,"stars":1712,"repoUrl":1713,"updatedAt":1729},"executive-financial-briefing","generate executive financial briefings","Generates a concise executive-level financial briefing or summary suitable for a CEO, CFO, or board presentation. Use when the user asks for a summary, briefing, executive summary, board update, financial overview, financial health check, or \"how is the business doing\". Covers the full P&L picture in one page. Also use for \"give me the highlights\", \"what do I need to know\", or \"quick financial update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1721,1722,1723,1726],{"name":24,"slug":25,"type":16},{"name":1710,"slug":1711,"type":16},{"name":1724,"slug":1725,"type":16},"Management","management",{"name":1727,"slug":1728,"type":16},"Reporting","reporting","2026-07-12T08:40:02.066471",{"slug":1731,"name":1731,"fn":1732,"description":1733,"org":1734,"tags":1735,"stars":1712,"repoUrl":1713,"updatedAt":1744},"multi-quarter-trend-analysis","analyze multi-quarter financial trends","Analyzes financial trends across multiple quarters by comparing P&L metrics over time. Use when the user wants to see trends, patterns, trajectories, or directional movement across 3 or more quarters. Also use for \"how are we trending\", \"show me the trend\", \"track performance over time\", \"quarter over quarter comparison across all quarters\", or any multi-period longitudinal analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1736,1737,1738,1741],{"name":1704,"slug":1705,"type":16},{"name":1710,"slug":1711,"type":16},{"name":1739,"slug":1740,"type":16},"Financial Statements","financial-statements",{"name":1742,"slug":1743,"type":16},"Variance Analysis","variance-analysis","2026-07-12T08:40:00.79141",{"slug":1746,"name":1746,"fn":1747,"description":1748,"org":1749,"tags":1750,"stars":1712,"repoUrl":1713,"updatedAt":1759},"pdf","process and manipulate PDF documents","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1751,1754,1757],{"name":1752,"slug":1753,"type":16},"Automation","automation",{"name":1755,"slug":1756,"type":16},"Documents","documents",{"name":1758,"slug":1746,"type":16},"PDF","2026-07-12T08:41:44.135656",{"slug":1761,"name":1761,"fn":1762,"description":1763,"org":1764,"tags":1765,"stars":1712,"repoUrl":1713,"updatedAt":1774},"quarterly-kpi-calculator","calculate quarterly financial KPIs","Calculates quarterly financial KPIs from P&L data. P&L figures can be provided directly by the user or fetched from the financial data MCP server. Use when the user wants KPI calculations such as Gross Margin %, EBITDA Margin %, Operating Expense Ratio, or Revenue Growth % QoQ. Also use for quarterly performance review, P&L analysis, or interpreting financial ratios against benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1766,1767,1770,1771],{"name":1701,"slug":1702,"type":16},{"name":1768,"slug":1769,"type":16},"Data Analysis","data-analysis",{"name":1710,"slug":1711,"type":16},{"name":1772,"slug":1773,"type":16},"KPI","kpi","2026-07-12T08:39:59.54971",150,{"items":1777,"total":1868},[1778,1792,1807,1819,1829,1842,1853],{"slug":1779,"name":1779,"fn":1780,"description":1781,"org":1782,"tags":1783,"stars":26,"repoUrl":27,"updatedAt":1791},"agentcore","design Amazon Bedrock AgentCore architectures","Deep-dive into Amazon Bedrock AgentCore platform design, service selection, deployment, and production operations. This skill should be used when the user asks to \"design an AgentCore architecture\", \"deploy agents on AgentCore\", \"configure AgentCore Runtime\", \"set up AgentCore Memory\", \"use AgentCore Gateway\", \"configure AgentCore Identity\", \"set up AgentCore Policy\", \"plan agent observability\", \"evaluate agent quality\", \"move agent PoC to production\", or mentions AgentCore, AgentCore Runtime, AgentCore Memory, AgentCore Gateway, AgentCore Identity, AgentCore Policy, AgentCore Evaluations, AgentCore Code Interpreter, AgentCore Browser, A2A protocol, or multi-agent orchestration on AWS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1784,1787,1790],{"name":1785,"slug":1786,"type":16},"Agents","agents",{"name":1788,"slug":1789,"type":16},"Architecture","architecture",{"name":24,"slug":25,"type":16},"2026-07-12T08:40:11.108951",{"slug":1793,"name":1793,"fn":1794,"description":1795,"org":1796,"tags":1797,"stars":26,"repoUrl":27,"updatedAt":1806},"aidlc-lite","develop AI applications on AWS","Lightweight AI development lifecycle for building on AWS. A simplified take on the AI-DLC philosophy — think together, then build fast. Acts as a design partner that understands intent, proposes alternatives with trade-offs, and ships working code without the ceremony of full requirements\u002Fdesign\u002Fspec documents. Use when a founder says \"build X on AWS\", \"add Y to my stack\", \"scaffold an API\", or \"write the CDK for Z\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1798,1799,1802,1803],{"name":1785,"slug":1786,"type":16},{"name":1800,"slug":1801,"type":16},"AI Infrastructure","ai-infrastructure",{"name":24,"slug":25,"type":16},{"name":1804,"slug":1805,"type":16},"Engineering","engineering","2026-07-12T08:40:40.204103",{"slug":1808,"name":1808,"fn":1809,"description":1810,"org":1811,"tags":1812,"stars":26,"repoUrl":27,"updatedAt":1818},"architect-for-startups","advise on AWS architecture for startups","AWS architecture advisor tailored specifically for startups. Alters AWS architecture recommendations based on startup stage (pre-revenue through Series B+), team size, runway, and credits. ALWAYS use when asked about building on AWS, choosing services, planning infrastructure, managing costs with credits, or preparing architecture for fundraising.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1813,1814,1815],{"name":1788,"slug":1789,"type":16},{"name":24,"slug":25,"type":16},{"name":1816,"slug":1817,"type":16},"Strategy","strategy","2026-07-12T08:41:33.557354",{"slug":1820,"name":1820,"fn":1821,"description":1822,"org":1823,"tags":1824,"stars":26,"repoUrl":27,"updatedAt":1828},"aws-architect","design and review AWS architectures","Design and review AWS architectures following Well-Architected Framework principles. Use when planning new infrastructure, reviewing existing architectures, evaluating trade-offs between AWS services, or when asked about AWS best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1825,1826,1827],{"name":1788,"slug":1789,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},"2026-07-12T08:40:57.630086",{"slug":1830,"name":1830,"fn":1831,"description":1832,"org":1833,"tags":1834,"stars":26,"repoUrl":27,"updatedAt":1841},"aws-compare","compare AWS architecture options","Compare 2-3 AWS architecture options side-by-side across cost, complexity, performance, security, and operational burden. Use when evaluating trade-offs between approaches or when the user is deciding between options.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1835,1836,1837,1838],{"name":1788,"slug":1789,"type":16},{"name":24,"slug":25,"type":16},{"name":1707,"slug":1708,"type":16},{"name":1839,"slug":1840,"type":16},"Security","security","2026-07-12T08:40:23.960287",{"slug":1843,"name":1843,"fn":1844,"description":1845,"org":1846,"tags":1847,"stars":26,"repoUrl":27,"updatedAt":1852},"aws-debug","debug AWS infrastructure and deployment failures","Debug AWS infrastructure issues, deployment failures, and runtime errors. Use when troubleshooting CloudFormation stack failures, Lambda errors, ECS task failures, permission issues, networking problems, or any AWS service misbehavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1848,1849,1850,1851],{"name":24,"slug":25,"type":16},{"name":1607,"slug":1608,"type":16},{"name":18,"slug":19,"type":16},{"name":1613,"slug":1412,"type":16},"2026-07-12T08:40:16.767171",{"slug":1854,"name":1854,"fn":1855,"description":1856,"org":1857,"tags":1858,"stars":26,"repoUrl":27,"updatedAt":1867},"aws-diagram","generate AWS architecture diagrams","Generate AWS architecture diagrams in Mermaid or ASCII from a description, existing IaC, or conversation context. Use when the user wants to visualize an architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1859,1860,1861,1864],{"name":1788,"slug":1789,"type":16},{"name":24,"slug":25,"type":16},{"name":1862,"slug":1863,"type":16},"Diagrams","diagrams",{"name":1865,"slug":1866,"type":16},"Visualization","visualization","2026-07-12T08:40:43.26341",42]