AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The deploy skill streamlines the process of moving applications to AWS by minimizing cognitive burden. It analyzes a codebase to identify the framework and dependencies, recommends appropriate AWS services based on established defaults, provides a monthly cost estimate, and generates secure infrastructure-as-code. The skill prioritizes cost-conscious dev-sized environments by default and integrates with specialized MCP servers for architecture knowledge, pricing, and IaC best practices.
What it does
- Scans codebases to determine the optimal AWS service stack.
- Provides monthly cost estimates for proposed infrastructure before deployment.
- Generates infrastructure-as-code with built-in security defaults.
- Performs automated security scans on generated IaC.
- Selects services based on a predefined matrix of web, database, and background task patterns.
- Handles migrations from platforms like Heroku or Render to Elastic Beanstalk.
When to use it
- When you need to deploy a new application to AWS but want to avoid manual infrastructure configuration.
- When you need a cost estimate for an AWS architecture before committing to deployment.
- When you want to ensure your infrastructure follows security best practices like encryption and least privilege.
- When migrating an existing application from a managed platform to AWS.
Advantages
- Reduces cognitive load by automating service selection and IaC generation.
- Ensures cost transparency by requiring estimates before deployment.
- Applies security defaults automatically to all generated infrastructure.
- Maintains consistency by using a standardized service selection matrix.
- Avoids deprecated services by enforcing current AWS recommendations.
Usage examples
- “Deploy my Django application to AWS.”
- The agent analyzes the Django codebase, recommends Fargate with an ALB, provides a monthly cost estimate, and generates the necessary IaC.
- “Estimate AWS cost for a static site.”
- The agent identifies the site as a static SPA, recommends Amplify Hosting, and provides a cost breakdown.
- “Generate infrastructure for my Node.js API.”
- The agent selects Fargate, calculates the monthly cost, and produces secure IaC templates.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/awslabs/deploy/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip deploy.zip -d .agents/skills
Documentation by AWS Labs
Deploy on AWS
Take any application and deploy it to AWS with minimal user decisions.
Philosophy
Minimize cognitive burden. User has code, wants it on AWS. Pick the most straightforward services. Don't ask questions with obvious answers.
Workflow
Analyze - Scan codebase for framework, database, dependencies
Recommend - Select AWS services, concisely explain rationale
Estimate - Show monthly cost before proceeding
Generate - Write IaC code with security defaults applied
Deploy - Run security checks, then execute with user confirmation
Defaults
See defaults.md for the complete service selection matrix.
Core principle: Default to dev-sized (cost-conscious: small instance sizes, minimal redundancy, and non-HA/single-AZ defaults) unless user says "production-ready".
MCP Servers
awsknowledge
Consult for architecture decisions. Use when choosing between AWS services or validating that a service fits the use case. Helps answer "what's the right AWS service for X?"
Key topics: general for architecture, amplify_docs for static sites/SPAs,
cdk_docs and cdk_constructs for IaC patterns.
awspricing
Get cost estimates. Always present costs before generating IaC so user can adjust before committing. See cost-estimation.md for query patterns.
awsiac
Consult for IaC best practices. Use when writing CDK/CloudFormation/Terraform to ensure patterns follow AWS recommendations.
Principles
Concisely explain why each service was chosen
Always show cost estimate before generating code
Apply security defaults automatically (encryption, private subnets, least privilege)
Run IaC security scans (cfn-nag, checkov) before deployment
Don't ask "Lambda or Fargate?" - just pick the obvious one
If genuinely ambiguous, then ask
Never recommend AWS App Runner — it is in maintenance mode. Use ECS Express Mode instead.
When user explicitly requests a managed application platform or signals low infrastructure involvement, route to Elastic Beanstalk
References
Elastic Beanstalk skill
Files
- ATTRIBUTION.mdAdded by AutoGineer897 B
- LICENSELicence file added by AutoGineer9.9 KiB
- NOTICELicence file added by AutoGineer89 B
- SKILL.md2.6 KiB
- references/cost-estimation.md6.8 KiB
- references/defaults.md6.3 KiB
- references/security.md9.4 KiB
references/security.md
Security Defaults
Security configurations applied by default. Override only when explicitly requested.
Philosophy
Secure by default, right-sized by environment. Dev environments allow more permissive access for debugging. Production environments enforce strict boundaries.
Secure-by-Default Checklist
Apply these patterns automatically when generating IaC:
[ ] Private S3 buckets - Block all public access unless explicitly serving static content
[ ] Encryption at rest - Enable for all storage (S3, RDS, EBS, Secrets Manager)
[ ] HTTPS enforcement - TLS 1.2+ with automatic HTTP→HTTPS redirect
[ ] Origin Access Control - CloudFront accesses S3 via AWS internal network, not public URLs
[ ] IAM least privilege - Minimal required permissions per service, no wildcards
[ ] Security scanning - Detect exposed secrets before deployment
[ ] Quality gates - Run available tests and static analysis before deploy
Encryption
| Component | Default (Dev) | Default (Prod) | Override Trigger |
|---|---|---|---|
| S3 buckets | SSE-S3 (AES-256) | SSE-KMS (customer-managed) | "no encryption" |
| RDS/Aurora | Encrypted (AWS-managed key) | Encrypted (CMK) | - |
| Amazon DocumentDB | Encrypted (AWS-managed key) | Encrypted (CMK) | - |
| EBS volumes | Encrypted | Encrypted | - |
| ALB | TLS 1.2+ only | TLS 1.2+ only | - |
| Secrets Manager | AWS-managed key | CMK | - |
| CloudFront | TLS 1.2+ | TLS 1.2+ | - |
Why SSE-S3 for dev, SSE-KMS for prod
SSE-S3 is zero-config and free. Production benefits from CMK for audit trails, key rotation control, and cross-account access patterns.
S3 Security
| Setting | Default |
|---|---|
| Block Public Access | Enabled (all 4 settings) |
| Bucket Policy | Deny by default |
| Object Ownership | Bucket owner enforced |
| Versioning | Enabled for production |
| Access Logging | Enabled for production |
CloudFront + S3 Pattern
When serving static content via CloudFront:
S3 bucket remains private (no public access)
Use Origin Access Control (OAC) - CloudFront accesses S3 via internal AWS network
Do NOT use legacy Origin Access Identity (OAI)
VPC Placement
| Component | Default (Dev) | Default (Prod) |
|---|---|---|
| Fargate tasks | Private subnet + NAT Gateway | Private subnet + NAT Gateway |
| ALB | Public subnet | Public subnet |
| RDS/Aurora | Private subnet (no public IP) | Private subnet (no public IP) |
| Amazon DocumentDB | Private subnet (no public IP) | Private subnet (no public IP) |
| Lambda | VPC-attached if DB access needed | VPC-attached if DB access needed |
| EB web instances | Private subnet + ALB in public | Private subnet + ALB in public |
| EB worker instances | Private subnet + NAT Gateway | Private subnet + NAT Gateway |
Why private subnets for compute
Public IPs on compute resources invite direct attack. Route outbound traffic through NAT Gateway. ALB is the only public-facing component.
Dev simplification
For dev, a single-AZ VPC with 1 public + 1 private subnet is sufficient.
Use awsknowledge topic vpc_patterns for multi-AZ production layouts.
IAM
| Pattern | Default |
|---|---|
| Task/function roles | Least privilege (only resources explicitly used) |
| Service-linked roles | Use AWS-managed where available |
| Cross-service access | Via IAM roles, never access keys |
| Admin access | Not created (user manages separately) |
| EB instance profile | Least privilege (S3 for deploys, CloudWatch, ECR if Docker) |
| EB service role | AWS-managed (aws-elasticbeanstalk-service-role) |
Principle: Explicit grants only
Never use * for resources or actions unless unavoidable (e.g., S3 bucket
contents require s3:GetObject on bucket/*). Enumerate specific ARNs.
Use conditions where possible.
Consult awsiac MCP for IAM policy patterns by service.
Security Groups
| Component | Default Inbound | Default Outbound |
|---|---|---|
| ALB | 443 from 0.0.0.0/0 | Fargate SG only |
| Fargate | ALB SG only (on app port) | 443 (HTTPS), DB SG |
| RDS/Aurora | Fargate SG only (on DB port) | None |
| Amazon DocumentDB | Fargate SG only (port 27017) | None |
| Lambda (VPC) | None | 443, DB SG |
| EB ALB | 443 from 0.0.0.0/0 | EB instances SG only |
| EB web instances | EB ALB SG only (on app port) | 443 (HTTPS), DB SG |
| EB worker instances | None (SQS daemon on localhost) | 443 (HTTPS), DB SG |
Why deny-by-default
Start with no access, add only what's needed. Outbound 443 allows AWS API calls and package downloads. Lock down further for compliance if needed.
Secrets Management
| Secret Type | Default Storage | Access Pattern |
|---|---|---|
| Database credentials | Secrets Manager | IAM role + GetSecretValue |
| API keys | Secrets Manager | IAM role + GetSecretValue |
| Config values (non-secret) | Parameter Store | IAM role + GetParameter |
| Environment-specific | Secrets Manager with env prefix | /app/{env}/secret-name |
Why Secrets Manager over Parameter Store for secrets
Secrets Manager provides automatic rotation, cross-account sharing, and audit logging. Parameter Store SecureString works but lacks rotation.
Always inject secrets at runtime, never bake into images.
Pre-Deployment Security Checks
Secret Detection
Before deployment, scan for exposed secrets:
Check for hardcoded credentials, API keys, tokens
Use git-secrets, truffleHog, or detect-secrets
Fail deployment if secrets detected in codebase
IaC Security Scanning
Validate generated IaC before deployment:
| Tool | Purpose |
|---|---|
| cfn-nag | CloudFormation security linting (AWS-native) |
| checkov | Multi-framework IaC scanner (CDK, CloudFormation, Terraform) |
| cdk-nag | CDK-specific security checks via Aspects |
| tfsec | Terraform security scanner |
Recommend running checkov or cfn-nag on generated templates before cdk deploy.
Quality Gates
Before deployment, run available checks:
Unit tests (if test suite exists)
Static code analysis (linters, type checkers)
IaC security scan
Secret detection scan
Logging & Monitoring
| Component | Default (Dev) | Default (Prod) |
|---|---|---|
| CloudTrail | Account-level (shared) | Account-level (shared) |
| VPC Flow Logs | Disabled | Enabled (S3 destination) |
| ALB Access Logs | Disabled | Enabled (S3 destination) |
| Container logs | CloudWatch Logs | CloudWatch Logs |
| RDS/Aurora logs | Error log only | Error + slow query + audit |
| Amazon DocumentDB logs | Profiler (slow ops) | Profiler + audit |
| S3 Access Logs | Disabled | Enabled |
| EB application logs | CloudWatch Logs agent | CloudWatch Logs + enhanced health |
| EB platform logs | Disabled | Enabled (CloudWatch Logs) |
Why minimal logging in dev
Logging has cost. Dev environments rarely need audit trails. Enable VPC Flow Logs and ALB logs for production debugging and compliance.
Production Hardening Checklist
When user requests "production" or "prod", additionally enable:
[ ] Multi-AZ for all stateful services
[ ] VPC Flow Logs
[ ] ALB Access Logs
[ ] S3 Access Logs
[ ] RDS Performance Insights
[ ] Amazon DocumentDB profiler + audit logs exported to CloudWatch Logs
[ ] AWS WAF on ALB (if public-facing web app)
[ ] GuardDuty (recommend, don't auto-enable)
[ ] Run
checkovorcfn-nagbefore deployment
MCP References
awsknowledgetopics:vpc_patterns,iam_best_practices,securityawsiacfor CDK security constructs (L2 constructs apply many defaults)
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: Needs an MCP server
Security
No issues found by our static scan· No issues found
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 Labs
- Publisher
- AWS Labs (Official)
- Source
- awslabs/agent-plugins · plugins/deploy-on-aws/skills/deploy · commit fbefb37
- 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
AutoGineer is not affiliated with or endorsed by AWS Labs or AWS Labs.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download deploy.zip