Generated banner for Deploy
Generated logo for Deploy

Deploy

AWS LabsOfficialPublished by AWS Labs

  • Skill
  • Workflow
  • Cloud and DevOps
  • Apache-2.0
  • No issues found

From the author

Deploy applications to AWS. Triggers on phrases like: deploy to AWS, host on AWS, run this on AWS, AWS architecture, estimate AWS cost, generate infrastructure. Analyzes any codebase and deploys to optimal AWS services.
— the description by AWS Labs

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

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/awslabs/deploy/download
  2. Unzip 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

  1. Analyze - Scan codebase for framework, database, dependencies

  2. Recommend - Select AWS services, concisely explain rationale

  3. Estimate - Show monthly cost before proceeding

  4. Generate - Write IaC code with security defaults applied

  5. 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

Files

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

ComponentDefault (Dev)Default (Prod)Override Trigger
S3 bucketsSSE-S3 (AES-256)SSE-KMS (customer-managed)"no encryption"
RDS/AuroraEncrypted (AWS-managed key)Encrypted (CMK)-
Amazon DocumentDBEncrypted (AWS-managed key)Encrypted (CMK)-
EBS volumesEncryptedEncrypted-
ALBTLS 1.2+ onlyTLS 1.2+ only-
Secrets ManagerAWS-managed keyCMK-
CloudFrontTLS 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

SettingDefault
Block Public AccessEnabled (all 4 settings)
Bucket PolicyDeny by default
Object OwnershipBucket owner enforced
VersioningEnabled for production
Access LoggingEnabled 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

ComponentDefault (Dev)Default (Prod)
Fargate tasksPrivate subnet + NAT GatewayPrivate subnet + NAT Gateway
ALBPublic subnetPublic subnet
RDS/AuroraPrivate subnet (no public IP)Private subnet (no public IP)
Amazon DocumentDBPrivate subnet (no public IP)Private subnet (no public IP)
LambdaVPC-attached if DB access neededVPC-attached if DB access needed
EB web instancesPrivate subnet + ALB in publicPrivate subnet + ALB in public
EB worker instancesPrivate subnet + NAT GatewayPrivate 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

PatternDefault
Task/function rolesLeast privilege (only resources explicitly used)
Service-linked rolesUse AWS-managed where available
Cross-service accessVia IAM roles, never access keys
Admin accessNot created (user manages separately)
EB instance profileLeast privilege (S3 for deploys, CloudWatch, ECR if Docker)
EB service roleAWS-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

ComponentDefault InboundDefault Outbound
ALB443 from 0.0.0.0/0Fargate SG only
FargateALB SG only (on app port)443 (HTTPS), DB SG
RDS/AuroraFargate SG only (on DB port)None
Amazon DocumentDBFargate SG only (port 27017)None
Lambda (VPC)None443, DB SG
EB ALB443 from 0.0.0.0/0EB instances SG only
EB web instancesEB ALB SG only (on app port)443 (HTTPS), DB SG
EB worker instancesNone (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 TypeDefault StorageAccess Pattern
Database credentialsSecrets ManagerIAM role + GetSecretValue
API keysSecrets ManagerIAM role + GetSecretValue
Config values (non-secret)Parameter StoreIAM role + GetParameter
Environment-specificSecrets 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:

ToolPurpose
cfn-nagCloudFormation security linting (AWS-native)
checkovMulti-framework IaC scanner (CDK, CloudFormation, Terraform)
cdk-nagCDK-specific security checks via Aspects
tfsecTerraform security scanner

Recommend running checkov or cfn-nag on generated templates before cdk deploy.

Quality Gates

Before deployment, run available checks:

  1. Unit tests (if test suite exists)

  2. Static code analysis (linters, type checkers)

  3. IaC security scan

  4. Secret detection scan

Logging & Monitoring

ComponentDefault (Dev)Default (Prod)
CloudTrailAccount-level (shared)Account-level (shared)
VPC Flow LogsDisabledEnabled (S3 destination)
ALB Access LogsDisabledEnabled (S3 destination)
Container logsCloudWatch LogsCloudWatch Logs
RDS/Aurora logsError log onlyError + slow query + audit
Amazon DocumentDB logsProfiler (slow ops)Profiler + audit
S3 Access LogsDisabledEnabled
EB application logsCloudWatch Logs agentCloudWatch Logs + enhanced health
EB platform logsDisabledEnabled (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 checkov or cfn-nag before deployment

MCP References

  • awsknowledge topics: vpc_patterns, iam_best_practices, security

  • awsiac for 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