用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-aws --skill aws-ec2-deployment命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | aws-ec2-deployment |
| description | Launch, configure, and manage EC2 instances with best practices |
| sasmp_version | 1.3.0 |
| bonded_agent | 02-aws-compute |
| bond_type | PRIMARY_BOND |
Deploy and manage EC2 instances with production-ready configurations.
| Attribute | Value |
|---|---|
| AWS Service | EC2 |
| Complexity | Medium |
| Est. Time | 5-15 min |
| Prerequisites | VPC, Security Group, Key Pair |
| 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} |
| security_group_ids | array | Security groups | Non-empty array |
| Parameter | Type | Default | Description |
|---|---|---|---|
| key_name | string | null | SSH key pair name |
| iam_instance_profile | string | null | IAM role ARN |
| user_data | string | null | Base64 startup script |
| ebs_optimized | bool | true | EBS optimization |
| monitoring | bool | true | Detailed monitoring |
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}]'
#!/bin/bash
set -e
yum update -y
yum install -y docker
systemctl enable docker
systemctl start docker
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")
| 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 |
| 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 |
| Strategy | Savings |
|---|---|
| Reserved Instances | 30-60% |
| Savings Plans | 30-72% |
| Spot Instances | Up to 90% |
| Right-sizing | 10-50% |
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/ec2-userdata.sh - Sample user data script