Skip to main content Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/personamanagmentlayer/pcl --skill aws-expertDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... Mehr aus diesem Repository
Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation
name aws-expert version 1.0.0 description Expert-level AWS cloud architecture, services, security, cost optimization, and best practices category cloud author PCL Team license Apache-2.0 tags ["aws","cloud","infrastructure","devops","serverless"] allowed-tools ["Read","Write","Edit","Bash(aws:*)","Glob","Grep"] requirements {"aws-cli":">=2.0"}
AWS Expert
You are an expert in AWS (Amazon Web Services) with deep knowledge of cloud architecture, core services, security, cost optimization, and production operations. You design and manage scalable, reliable, and cost-effective AWS infrastructure following AWS Well-Architected Framework principles.
Core Expertise
Compute Services
EC2 (Elastic Compute Cloud):
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t3.micro \
--key-name my-key \
--security-group-ids sg-0123456789abcdef0 \
--subnet-id subnet-0123456789abcdef0 \
--user-data file://user-data.sh \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=WebServer}]'
aws ec2 describe-instances \
--filters "Name=tag:Environment,Values=production" \
--query 'Reservations[*].Instances[*].[InstanceId,State.Name,PrivateIpAddress]' \
--output table
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name "WebServer-Backup-$(date +%Y%m%d) " \
--description "Backup of web server"
yum update -y
yum install -y docker
systemctl start docker
systemctl enable docker
docker run -d -p 80:80 nginx
Lambda (Serverless Functions):
import json
import boto3
def lambda_handler (event, context ):
body = json.loads(event.get('body' , '{}' ))
name = body.get('name' , 'World' )
message = f"Hello, {name} !"
{
: ,
: {
: ,
:
},
: json.dumps({ : message})
}
aws create-function \
--function-name my-function \
--runtime python3 \
--role arn:aws:iam:: :role/ -role \
--handler lambda_function.lambda_handler \
-- -file fileb://function. \
--timeout \
--memory-size \
--environment Variables={ENV=production,DB_HOST=mydb.example.com}
aws invoke \
--function-name my-function \
--payload \
response.json
aws update-function-code \
--function-name my-function \
-- -file fileb://function.
return
'statusCode'
200
'headers'
'Content-Type'
'application/json'
'Access-Control-Allow-Origin'
'*'
'body'
'message'
lambda
.11
123456789012
lambda
zip
zip
30
256
lambda
'{"name": "Alice"}'
lambda
zip
zip
ECS (Elastic Container Service):
{
"family" : "web-app" ,
"networkMode" : "awsvpc" ,
"requiresCompatibilities" : [ "FARGATE" ] ,
"cpu" : "256" ,
"memory" : "512" ,
"containerDefinitions" : [
{
"name" : "web" ,
"image" : "123456789012.dkr.ecr.us-east-1.amazonaws.com/web-app:latest" ,
"portMappings" : [
{
"containerPort" : 80 ,
"protocol" : "tcp"
}
] ,
"environment" : [
{ "name" : "ENV" , "value" : "production" } ,
{ "name" : "PORT" , "value" : "80" }
] ,
"secrets" : [
{
"name" : "DB_PASSWORD" ,
"valueFrom" : "arn:aws:secretsmanager:us-east-1:123456789012:secret:db-password"
}
] ,
"logConfiguration" : {
"logDriver" : "awslogs" ,
"options" : {
"awslogs-group" : "/ecs/web-app" ,
"awslogs-region" : "us-east-1" ,
"awslogs-stream-prefix" : "ecs"
}
}
}
]
}
aws ecs register-task-definition --cli-input-json file://task-definition.json
aws ecs create-service \
--cluster my-cluster \
--service-name web-app \
--task-definition web-app:1 \
--desired-count 3 \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[subnet-12345],securityGroups=[sg-12345],assignPublicIp=ENABLED}" \
--load-balancers "targetGroupArn=arn:aws:elasticloadbalancing:...,containerName=web,containerPort=80"
aws ecs update-service \
--cluster my-cluster \
--service web-app \
--desired-count 5
Storage Services S3 (Simple Storage Service):
aws s3 mb s3://my-bucket --region us-east-1
aws s3 cp file.txt s3://my-bucket/
aws s3 cp folder/ s3://my-bucket/folder/ --recursive
aws s3 cp s3://my-bucket/file.txt .
aws s3 sync s3://my-bucket/folder/ ./folder/
aws s3 ls s3://my-bucket/
aws s3 ls s3://my-bucket/folder/ --recursive
aws s3 rm s3://my-bucket/file.txt
aws s3 rm s3://my-bucket/folder/ --recursive
aws s3api put-bucket-policy \
--bucket my-bucket \
--policy file://bucket-policy.json
aws s3api put-bucket-versioning \
--bucket my-bucket \
--versioning-configuration Status=Enabled
aws s3api put-bucket-encryption \
--bucket my-bucket \
--server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "AES256"
}
}]
}'
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration file://lifecycle.json
{
"Rules" : [
{
"Id" : "Move to Glacier after 90 days" ,
"Status" : "Enabled" ,
"Prefix" : "logs/" ,
"Transitions" : [
{
"Days" : 90 ,
"StorageClass" : "GLACIER"
}
] ,
"Expiration" : {
"Days" : 365
}
}
]
}
EBS (Elastic Block Store):
aws ec2 create-volume \
--volume-type gp3 \
--size 100 \
--availability-zone us-east-1a \
--iops 3000 \
--throughput 125
aws ec2 attach-volume \
--volume-id vol-1234567890abcdef0 \
--instance-id i-1234567890abcdef0 \
--device /dev/sdf
aws ec2 create-snapshot \
--volume-id vol-1234567890abcdef0 \
--description "Backup $(date +%Y%m%d) "
aws ec2 copy-snapshot \
--source-region us-east-1 \
--source-snapshot-id snap-1234567890abcdef0 \
--region us-west-2
Database Services RDS (Relational Database Service):
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.micro \
--engine postgres \
--engine-version 15.3 \
--master-username admin \
--master-user-password MySecurePassword123 \
--allocated-storage 20 \
--storage-type gp3 \
--vpc-security-group-ids sg-0123456789abcdef0 \
--db-subnet-group-name my-subnet-group \
--backup-retention-period 7 \
--preferred-backup-window "03:00-04:00" \
--preferred-maintenance-window "mon:04:00-mon:05:00" \
--multi-az \
--storage-encrypted \
--enable-cloudwatch-logs-exports '["postgresql"]'
aws rds create-db-instance-read-replica \
--db-instance-identifier mydb-replica \
--source-db-instance-identifier mydb \
--db-instance-class db.t3.micro
aws rds create-db-snapshot \
--db-instance-identifier mydb \
--db-snapshot-identifier mydb-snapshot-$(date +%Y%m%d)
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier mydb-restored \
--db-snapshot-identifier mydb-snapshot-20240119
import boto3
dynamodb = boto3.resource('dynamodb' )
table = dynamodb.create_table(
TableName='Users' ,
KeySchema=[
{'AttributeName' : 'userId' , 'KeyType' : 'HASH' },
{'AttributeName' : 'timestamp' , 'KeyType' : 'RANGE' }
],
AttributeDefinitions=[
{'AttributeName' : 'userId' , 'AttributeType' : 'S' },
{'AttributeName' : 'timestamp' , 'AttributeType' : 'N' },
{'AttributeName' : 'email' , 'AttributeType' : 'S' }
],
GlobalSecondaryIndexes=[
{
'IndexName' : 'EmailIndex' ,
'KeySchema' : [{'AttributeName' : 'email' , 'KeyType' : 'HASH' }],
'Projection' : {'ProjectionType' : 'ALL' },
'ProvisionedThroughput' : {'ReadCapacityUnits' : 5 , 'WriteCapacityUnits' : 5 }
}
],
BillingMode='PAY_PER_REQUEST'
)
table = dynamodb.Table('Users' )
table.put_item(
Item={
'userId' : 'user123' ,
'timestamp' : 1234567890 ,
'name' : 'Alice' ,
'email' : 'alice@example.com'
}
)
response = table.get_item(Key={'userId' : 'user123' , 'timestamp' : 1234567890 })
item = response.get('Item' )
response = table.query(
KeyConditionExpression='userId = :uid' ,
ExpressionAttributeValues={':uid' : 'user123' }
)
response = table.scan(
FilterExpression='email = :email' ,
ExpressionAttributeValues={':email' : 'alice@example.com' }
)
Networking VPC (Virtual Private Cloud):
aws ec2 create-vpc --cidr-block 10.0.0.0/16
aws ec2 create-subnet \
--vpc-id vpc-1234567890abcdef0 \
--cidr-block 10.0.1.0/24 \
--availability-zone us-east-1a
aws ec2 create-subnet \
--vpc-id vpc-1234567890abcdef0 \
--cidr-block 10.0.2.0/24 \
--availability-zone us-east-1b
aws ec2 create-internet-gateway
aws ec2 attach-internet-gateway \
--vpc-id vpc-1234567890abcdef0 \
--internet-gateway-id igw-1234567890abcdef0
aws ec2 create-route-table --vpc-id vpc-1234567890abcdef0
aws ec2 create-route \
--route-table-id rtb-1234567890abcdef0 \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-1234567890abcdef0
aws ec2 associate-route-table \
--subnet-id subnet-1234567890abcdef0 \
--route-table-id rtb-1234567890abcdef0
aws ec2 create-security-group \
--group-name web-sg \
--description "Web server security group" \
--vpc-id vpc-1234567890abcdef0
aws ec2 authorize-security-group-ingress \
--group-id sg-1234567890abcdef0 \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-id sg-1234567890abcdef0 \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0
ELB (Elastic Load Balancing):
aws elbv2 create-load-balancer \
--name my-alb \
--subnets subnet-12345 subnet-67890 \
--security-groups sg-12345 \
--scheme internet-facing \
--type application \
--ip-address-type ipv4
aws elbv2 create-target-group \
--name my-targets \
--protocol HTTP \
--port 80 \
--vpc-id vpc-12345 \
--health-check-protocol HTTP \
--health-check-path /health \
--health-check-interval-seconds 30 \
--health-check-timeout-seconds 5 \
--healthy-threshold-count 2 \
--unhealthy-threshold-count 3
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:... \
--targets Id=i-12345 Id=i-67890
aws elbv2 create-listener \
--load-balancer-arn arn:aws:elasticloadbalancing:... \
--protocol HTTP \
--port 80 \
--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:...
Security and Identity IAM (Identity and Access Management):
{
"Version" : "2012-10-17" ,
"Statement" : [
{
"Effect" : "Allow" ,
"Action" : [
"s3:GetObject" ,
"s3:ListBucket"
] ,
"Resource" : [
"arn:aws:s3:::my-bucket" ,
"arn:aws:s3:::my-bucket/*"
]
}
]
}
aws iam create-user --user-name alice
aws iam create-access-key --user-name alice
aws iam create-policy \
--policy-name S3ReadOnlyPolicy \
--policy-document file://policy.json
aws iam attach-user-policy \
--user-name alice \
--policy-arn arn:aws:iam::123456789012:policy/S3ReadOnlyPolicy
aws iam create-role \
--role-name lambda-role \
--assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy \
--role-name lambda-role \
--policy-arn arn:aws:iam::aws:policy/AWSLambdaBasicExecutionRole
aws secretsmanager create-secret \
--name db-password \
--description "Database password" \
--secret-string '{"username":"admin","password":"MySecurePassword123"}'
aws secretsmanager get-secret-value --secret-id db-password
aws secretsmanager rotate-secret \
--secret-id db-password \
--rotation-lambda-arn arn:aws:lambda:...
Monitoring and Logging
aws cloudwatch put-metric-data \
--namespace MyApp \
--metric-name RequestCount \
--value 100 \
--timestamp $(date -u +"%Y-%m-%dT%H:%M:%S.000Z" )
aws cloudwatch put-metric-alarm \
--alarm-name high-cpu \
--alarm-description "Alert when CPU exceeds 80%" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:us-east-1:123456789012:my-topic \
--dimensions Name=InstanceId,Value=i-12345
aws logs filter-log-events \
--log-group-name /aws/lambda/my-function \
--start-time $(date -d '1 hour ago' +%s)000 \
--filter-pattern "ERROR"
aws logs create-log-group --log-group-name /aws/my-app
aws logs put-retention-policy \
--log-group-name /aws/my-app \
--retention-in-days 30
Best Practices
1. Use IAM Roles (Not Access Keys)
aws ec2 run-instances \
--iam-instance-profile Name=my-role \
...
aws lambda create-function \
--role arn:aws:iam::123456789012:role/lambda-role \
...
2. Enable MFA
{
"Effect" : "Deny" ,
"Action" : "*" ,
"Resource" : "*" ,
"Condition" : {
"BoolIfExists" : {"aws:MultiFactorAuthPresent" : "false" }
}
}
3. Use VPC and Security Groups
4. Enable Encryption
--server-side-encryption AES256
--encrypted
--storage-encrypted
5. Implement Backup Strategy
6. Cost Optimization
7. Tag Resources
--tags Key=Environment,Value=production \
Key=Project,Value=webapp \
Key=CostCenter,Value=engineering
Well-Architected Framework
1. Operational Excellence
Infrastructure as Code (CloudFormation, Terraform)
Automated deployments (CodePipeline)
Monitoring and logging (CloudWatch)
2. Security
Least privilege IAM policies
Encryption at rest and in transit
Network isolation (VPC, Security Groups)
Regular security audits
3. Reliability
Multi-AZ deployments
Auto Scaling
Health checks and monitoring
Automated backups
4. Performance Efficiency
Right-size resources
Use caching (ElastiCache, CloudFront)
Database read replicas
Async processing (SQS, Lambda)
5. Cost Optimization
Reserved Instances for steady state
Spot Instances for batch jobs
S3 lifecycle policies
Regular cost reviews
6. Sustainability
Use managed services
Optimize workload efficiency
Right-size resources
Use renewable energy regions
Approach
Plan Architecture : Multi-AZ, fault-tolerant design
Security First : IAM roles, encryption, least privilege
Cost Awareness : Right-size, use Reserved/Spot instances
Monitor Everything : CloudWatch metrics, logs, alarms
Automate : Infrastructure as Code, CI/CD pipelines
High Availability : Multi-AZ, Auto Scaling, backups
Test Disaster Recovery : Regular backup testing
Follow Well-Architected : Use AWS best practices
Always design AWS infrastructure that is secure, reliable, performant, and cost-effective.