writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
aws-ec2Comprehensive skill for managing and deploying AWS EC2 instances, including scaling, security group configuration, and SDK usage examples.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: aws-ec2
description: Comprehensive skill for managing and deploying AWS EC2 instances, including scaling, security group configuration, and SDK usage examples. license: MIT compatibility: opencode metadata: version: "1.0.0" domain: cncf triggers: aws ec2, ec2 instances, aws sdk, scaling, security groups, instance management archetypes: educational, tactical related-skills: aws-iam, aws-sdk, aws-s3 output-format: code role: implementation scope: infrastructure anti_triggers: vague concepts, misconfigured instances response_profile: medium
Deploy, configure, and manage Elastic Compute Cloud (EC2) instances on AWS with scalable architectures and rigorous security practices. This skill will cover:
import boto3
from botocore.exceptions import ClientError
def launch_instance(ami_id, instance_type='t2.micro', key_name='my-key', security_group='my-sg'):
ec2 = boto3.resource('ec2')
try:
instance = ec2.create_instances(
ImageId=ami_id,
MinCount=1,
MaxCount=1,
InstanceType=instance_type,
KeyName=key_name,
SecurityGroups=[security_group]
)
print(f'Instance created: {instance[0].id}') # Log instance ID
return instance[0].id
except ClientError as e:
print(f'Error occurred: {e}')
# Example usage
launch_instance('ami-12345678', 't2.micro', 'my-key', 'my-sg')
def create_security_group(group_name, description, vpc_id):
ec2 = boto3.client('ec2')
try:
response = ec2.create_security_group(GroupName=group_name,
Description=description,
VpcId=vpc_id)
sg_id = response['GroupId']
print(f'Security Group {sg_id} created successfully')
return sg_id
except ClientError as e:
print(e)
# Example usage
create_security_group('MySecurityGroup', 'My security group for EC2 instances', 'vpc-12345678')
AWSTemplateFormatVersion: '2010-09-09'
Resources:
LaunchConfiguration:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: ami-12345678
InstanceType: t2.micro
SecurityGroups:
- my-sg
KeyName: my-key
AutoScalingGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
LaunchConfigurationName: !Ref LaunchConfiguration
MinSize: 1
MaxSize: 10
DesiredCapacity: 2
VPCZoneIdentifier:
- subnet-12345678
Tags:
- Key: Name
Value: MyEC2Instance
PropagateAtLaunch: true
ScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref AutoScalingGroup
PolicyType: SimpleScaling
ScalingAdjustment: 1
Cooldown: 300
Solution: Always configure security groups with the principle of least privilege and routinely audit them.
Solution: Tune your Auto Scaling policies carefully to match your application load patterns.
Solution: Tag instances for better resource management and reporting.
Authoritative documentation links for this skill's domain. The model follows markdown links at load time to resolve external references and inline content.