Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.
90
90%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
# Maximum task definition size: 1 KB (CloudFormation)
# Maximum 10 containers per task definition
# Memory limits must be set for all containers
# CPU units must be set for all containers in Fargate
Parameters:
ContainerCount:
Type: Number
Default: 1
MaxValue: 10
Description: Number of containers in task definition
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- Name: application
Memory: 512
Cpu: 256
# Maximum 10 containers allowed# Services can only update to new task definitions
# Cannot modify existing task definitions
# Create new versions for updates
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Sub "${AWS::StackName}-task"
ContainerDefinitions:
- Name: application
Image: !Ref ImageUrl
# Always create new version for updates
Service:
Type: AWS::ECS::Service
Properties:
TaskDefinition: !Ref TaskDefinition
# Service updates require new task definition version# awsvpc mode requires ENIs
# Each task consumes ENIs from subnet pool
# Plan ENI requirements for scaling
Resources:
Service:
Type: AWS::ECS::Service
Properties:
NetworkConfiguration:
AwsvpcConfiguration:
Subnets:
- !Ref PrivateSubnet1
- !Ref PrivateSubnet2
SecurityGroups:
- !Ref SecurityGroup
AssignPublicIp: DISABLED
# Each task gets ENI from subnet pool# Task IAM roles must be assumable by ecs-tasks.amazonaws.com
# awsvpc mode required for Fargate
Resources:
TaskExecutionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service: ecs-tasks.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
TaskRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service: ecs-tasks.amazonaws.com
Action: sts:AssumeRole# Fargate charges per vCPU and memory per hour
# Minimum charges apply (0.25 vCPU, 0.5 GB memory)
Parameters:
TaskCPU:
Type: String
Default: 256
AllowedValues:
- 256 # 0.25 vCPU
- 512 # 0.5 vCPU
- 1024 # 1 vCPU
- 2048 # 2 vCPU
- 4096 # 4 vCPU
Description: CPU units (affects cost)
TaskMemory:
Type: String
Default: 512
AllowedValues:
- 512 # 0.5 GB
- 1024 # 1 GB
- 2048 # 2 GB
- 3072 # 3 GB
- 4096 # 4 GB
- 5120 # 5 GB
- 6144 # 6 GB
- 7168 # 7 GB
- 8192 # 8 GB
- 9216 # 9 GB
- 10240 # 10 GB
Description: Memory (affects cost)# Data transfer between tasks in different AZs incurs cross-AZ costs
# Use same AZ for communication when possible
Resources:
Service:
Type: AWS::ECS::Service
Properties:
NetworkConfiguration:
AwsvpcConfiguration:
Subnets:
- !Ref PrivateSubnetAZ1
- !Ref PrivateSubnetAZ1 # Duplicate AZ for cost optimization# Fargate Spot can interrupt tasks with 2-minute notice
# Implement graceful shutdown handling
Resources:
Service:
Type: AWS::ECS::Service
Properties:
CapacityProviderStrategy:
- Base: 1
CapacityProvider: FARGATE_SPOT
Weight: 1
- Base: 0
CapacityProvider: FARGATE
Weight: 0
# Spot tasks can be interrupted with 2-minute notice# Failing health checks can cause rapid task replacement
# Configure appropriate grace periods
Resources:
Service:
Type: AWS::ECS::Service
Properties:
HealthCheckGracePeriodSeconds: 60
DeploymentController:
DeploymentCircuitBreaker:
Enable: true
Rollback: true
# Prevents rapid task replacement during startupResources:
Service:
Type: AWS::ECS::Service
Properties:
NetworkConfiguration:
AwsvpcConfiguration:
Subnets:
- !Ref PrivateSubnetAZ1
- !Ref PrivateSubnetAZ2
- !Ref PrivateSubnetAZ3
# Spread tasks across AZs for high availability# Use multi-stage builds to reduce image size
# Smaller images = faster cold starts
# Dockerfile example:
# FROM node:20 AS build
# WORKDIR /app
# COPY package*.json ./
# RUN npm ci --production
# FROM node:20-alpine
# COPY --from=build /app/node_modules ./node_modules
# COPY . .
# CMD ["node", "index.js"]Resources:
ScalableTarget:
Type: AWS::ApplicationAutoScaling::ScalableTarget
Properties:
MaxCapacity: 10
MinCapacity: 1
ResourceId: !Sub "service/${ClusterName}/${ServiceName}"
ScalableDimension: ecs:service:DesiredCount
ServiceNamespace: ecs
ScalingPolicy:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: !Sub "${AWS::StackName}-scaling"
PolicyType: TargetTrackingScaling
ScalingTargetId: !Ref ScalableTarget
TargetTrackingScalingPolicyConfiguration:
TargetValue: 70.0
PredefinedMetricSpecification:
PredefinedMetricType: ECSServiceAverageCPUUtilization# ENI limits, service limits, and concurrent execution limits can be increased
# Document requirements in stack outputs
Parameters:
ExpectedENI:
Type: Number
Default: 50
Description: Expected ENI usage (per subnet)
Outputs:
QuotaIncreaseRequest:
Description: Link to request quota increase
Value: !Sub "https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&serviceCode=amazon-ecs"docs
plugins
developer-kit-ai
developer-kit-aws
agents
docs
skills
aws
aws-cli-beast
aws-cost-optimization
aws-drawio-architecture-diagrams
aws-sam-bootstrap
aws-cloudformation
aws-cloudformation-auto-scaling
aws-cloudformation-bedrock
aws-cloudformation-cloudfront
aws-cloudformation-cloudwatch
aws-cloudformation-dynamodb
aws-cloudformation-ec2
aws-cloudformation-ecs
aws-cloudformation-elasticache
references
aws-cloudformation-iam
references
aws-cloudformation-lambda
aws-cloudformation-rds
aws-cloudformation-s3
aws-cloudformation-security
aws-cloudformation-task-ecs-deploy-gh
aws-cloudformation-vpc
references
developer-kit-core
agents
commands
skills
developer-kit-devops
developer-kit-java
agents
commands
docs
skills
aws-lambda-java-integration
aws-rds-spring-boot-integration
aws-sdk-java-v2-bedrock
aws-sdk-java-v2-core
aws-sdk-java-v2-dynamodb
aws-sdk-java-v2-kms
aws-sdk-java-v2-lambda
aws-sdk-java-v2-messaging
aws-sdk-java-v2-rds
aws-sdk-java-v2-s3
aws-sdk-java-v2-secrets-manager
clean-architecture
graalvm-native-image
langchain4j-ai-services-patterns
references
langchain4j-mcp-server-patterns
references
langchain4j-rag-implementation-patterns
references
langchain4j-spring-boot-integration
langchain4j-testing-strategies
langchain4j-tool-function-calling-patterns
langchain4j-vector-stores-configuration
references
qdrant
references
spring-ai-mcp-server-patterns
spring-boot-actuator
spring-boot-cache
spring-boot-crud-patterns
spring-boot-dependency-injection
spring-boot-event-driven-patterns
spring-boot-openapi-documentation
spring-boot-project-creator
spring-boot-resilience4j
spring-boot-rest-api-standards
spring-boot-saga-pattern
spring-boot-security-jwt
assets
references
scripts
spring-boot-test-patterns
spring-data-jpa
references
spring-data-neo4j
references
unit-test-application-events
unit-test-bean-validation
unit-test-boundary-conditions
unit-test-caching
unit-test-config-properties
references
unit-test-controller-layer
unit-test-exception-handler
references
unit-test-json-serialization
unit-test-mapper-converter
references
unit-test-parameterized
unit-test-scheduled-async
references
unit-test-service-layer
references
unit-test-utility-methods
unit-test-wiremock-rest-api
references
developer-kit-php
developer-kit-project-management
developer-kit-python
developer-kit-specs
commands
docs
hooks
test-templates
tests
skills
developer-kit-tools
developer-kit-typescript
agents
docs
hooks
rules
skills
aws-cdk
aws-lambda-typescript-integration
better-auth
clean-architecture
drizzle-orm-patterns
dynamodb-toolbox-patterns
references
nestjs
nestjs-best-practices
nestjs-code-review
nestjs-drizzle-crud-generator
nextjs-app-router
nextjs-authentication
nextjs-code-review
nextjs-data-fetching
nextjs-deployment
nextjs-performance
nx-monorepo
react-code-review
react-patterns
shadcn-ui
tailwind-css-patterns
tailwind-design-system
references
turborepo-monorepo
typescript-docs
typescript-security-review
zod-validation-utilities
references
github-spec-kit