smithery/pluginagentmarketplace

aws-ec2-deployment

Launch, configure, and manage EC2 instances with best practices

Installation

$ npx skills add smithery/pluginagentmarketplace --skill aws-ec2-deployment

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/pluginagentmarketplace · top by installs.

npx skills add smithery/pluginagentmarketplace

Browse all from smithery/pluginagentmarketplace

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,800 B
  • docs SUMMARY.md 89 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

AWS EC2 Deployment Skill

Deploy and manage EC2 instances with production-ready configurations.

Quick Reference

Attribute Value
AWS Service EC2
Complexity Medium
Est. Time 5-15 min
Prerequisites VPC, Security Group, Key Pair

Parameters

Required

Parameter Type Description Validation
instance_type string EC2 instance type Valid type (m6i.large)
ami_id string AMI ID ami-[a-z0-9]{17}
subnet_id string Target subnet subnet-[a-z0-9]{17}
securitygroupids array Security groups Non-empty array

Optional

Parameter Type Default Description
key_name string null SSH key pair name
iaminstanceprofile string null IAM role ARN
user_data string null Base64 startup script
ebs_optimized bool true EBS optimization
monitoring bool true Detailed monitoring

Implementation

Launch Instance

aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type m6i.large \
  --subnet-id subnet-12345678 \
  --security-group-ids sg-12345678 \
  --key-name my-key \
  --iam-instance-profile Name=MyRole \
  --ebs-optimized \
  --monitoring Enabled=true \
  --metadata-options HttpTokens=required \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MyServer}]'

User Data Script

#!/bin/bash
set -e
yum update -y
yum install -y docker
systemctl enable docker
systemctl start docker

Retry Logic

def launch_with_retry(params, max_retries=3):
    for attempt in range(max_retries):
        try:
            return ec2.run_instances(**params)
        except ec2.exceptions.InsufficientInstanceCapacity:
            params['SubnetId'] = get_alternate_subnet()
            time.sleep(2 ** attempt)
    raise Exception("Failed to launch instance")

Troubleshooting

Common Issues

Symptom Cause Solution
InsufficientInstanceCapacity AZ full Try different AZ
InvalidAMIID AMI not in region Copy AMI
Unauthorized IAM missing Check permissions
Pending forever ENI issue Check subnet IPs

Debug Checklist

  • AMI exists in target region?
  • Subnet has available IPs?
  • Security group allows traffic?
  • Key pair exists?
  • IMDSv2 configured?

Instance Selection Guide

Workload Family Key Feature
Web/API M6i, M7g Balanced
Compute C6i, C7g High CPU
Memory R6i, X2idn High memory
GPU/ML P4d, G5 NVIDIA GPU

Cost Optimization

Strategy Savings
Reserved Instances 30-60%
Savings Plans 30-72%
Spot Instances Up to 90%
Right-sizing 10-50%

Test Template

def test_ec2_launch():
    # Arrange
    params = {
        "ImageId": get_latest_amazon_linux_ami(),
        "InstanceType": "t3.micro",
        "MaxCount": 1, "MinCount": 1
    }

    # Act
    response = ec2.run_instances(**params)
    instance_id = response['Instances'][0]['InstanceId']

    # Assert
    waiter = ec2.get_waiter('instance_running')
    waiter.wait(InstanceIds=[instance_id])

    # Cleanup
    ec2.terminate_instances(InstanceIds=[instance_id])

Assets

  • assets/ec2-userdata.sh - Sample user data script

References