BagelHole

aws-ec2

Manage EC2 instances, AMIs, and auto-scaling groups. Configure security groups, key pairs, and instance types. Use when deploying compute resources on AWS.

BagelHole 28 4 Updated 4mo ago

Resources

1
GitHub

Install

npx skillscat add bagelhole/devops-security-agent-skills/aws-ec2

Install via the SkillsCat registry.

SKILL.md

AWS EC2

Deploy and manage Amazon EC2 compute instances.

Launch Instance

aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type t3.micro \
  --key-name my-key \
  --security-group-ids sg-12345678 \
  --subnet-id subnet-12345678 \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=web-server}]'

Auto Scaling

# Create launch template
aws ec2 create-launch-template \
  --launch-template-name web-template \
  --version-description v1 \
  --launch-template-data '{
    "ImageId": "ami-xxx",
    "InstanceType": "t3.micro"
  }'

# Create ASG
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name web-asg \
  --launch-template LaunchTemplateName=web-template \
  --min-size 2 --max-size 10 --desired-capacity 2 \
  --vpc-zone-identifier "subnet-xxx,subnet-yyy"

User Data

#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd

Instance Management

# List instances
aws ec2 describe-instances --filters "Name=tag:Name,Values=web*"

# Stop/Start
aws ec2 stop-instances --instance-ids i-xxx
aws ec2 start-instances --instance-ids i-xxx

# Create AMI
aws ec2 create-image --instance-id i-xxx --name "my-ami"

Best Practices

  • Use launch templates
  • Implement auto-scaling
  • Use spot instances for cost savings
  • Regular AMI updates
  • Instance metadata service v2

Related Skills