| name | aws-infra |
| description | Manage AWS infrastructure (CloudFormation, Cloud Control API, ECS, EKS, Serverless) without MCP. Use when the user asks to create/list/manage AWS resources, deploy stacks, or manage containers. |
AWS Infrastructure Management / AWS ์ธํ๋ผ ๊ด๋ฆฌ
MCP ์์ด boto3/CLI๋ก ์ง์ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
When to Use / ์ฌ์ฉ ์์
- "AWS ๋ฆฌ์์ค ๋ชฉ๋ก" / "List AWS resources"
- "CloudFormation ์คํ ๊ด๋ฆฌ" / "Manage CF stacks"
- "EKS ํด๋ฌ์คํฐ ์ ๋ณด" / "EKS cluster info"
- "ECS ์๋น์ค ์ํ" / "ECS service status"
Cloud Control API (Any Resource) / ๋ชจ๋ ๋ฆฌ์์ค
List/Get/Create Resources / ๋ฆฌ์์ค ์กฐํ/์์ฑ
import boto3
cc = boto3.client('cloudcontrol')
cc.list_resources(TypeName='AWS::S3::Bucket')
cc.get_resource(TypeName='AWS::S3::Bucket', Identifier='my-bucket')
import json
cc.create_resource(
TypeName='AWS::S3::Bucket',
DesiredState=json.dumps({"BucketName": "my-new-bucket"})
)
aws cloudcontrol list-resources --type-name AWS::EC2::VPC
aws cloudcontrol list-resources --type-name AWS::Lambda::Function
aws cloudcontrol list-resources --type-name AWS::RDS::DBInstance
CloudFormation / ์คํ ๊ด๋ฆฌ
Stack Operations / ์คํ ์์
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE
aws cloudformation describe-stacks --stack-name my-stack
aws cloudformation describe-stack-events --stack-name my-stack --max-items 20
cf = boto3.client('cloudformation')
cf.list_stacks(StackStatusFilter=['CREATE_COMPLETE', 'UPDATE_COMPLETE'])
cf.describe_stacks(StackName='my-stack')
EKS / Kubernetes ํด๋ฌ์คํฐ
Cluster Management / ํด๋ฌ์คํฐ ๊ด๋ฆฌ
aws eks list-clusters
aws eks describe-cluster --name my-cluster
aws eks list-nodegroups --cluster-name my-cluster
aws eks update-kubeconfig --name my-cluster --region ap-northeast-2
eks = boto3.client('eks')
eks.list_clusters()
eks.describe_cluster(name='my-cluster')
cw = boto3.client('cloudwatch')
cw.get_metric_data(
MetricDataQueries=[{
'Id': 'pods',
'MetricStat': {
'Metric': {'Namespace': 'ContainerInsights', 'MetricName': 'pod_number_of_running_pods',
'Dimensions': [{'Name': 'ClusterName', 'Value': 'my-cluster'}]},
'Period': 300, 'Stat': 'Average'
}
}],
StartTime=datetime.utcnow() - timedelta(hours=1),
EndTime=datetime.utcnow()
)
ECS / ์ปจํ
์ด๋ ์๋น์ค
Service Management / ์๋น์ค ๊ด๋ฆฌ
aws ecs list-clusters
aws ecs list-services --cluster my-cluster
aws ecs describe-services --cluster my-cluster --services my-service
aws ecs list-tasks --cluster my-cluster --service-name my-service
ecs = boto3.client('ecs')
ecs.list_clusters()
ecs.list_services(cluster='my-cluster')
ecs.describe_services(cluster='my-cluster', services=['my-service'])
Lambda / ์๋ฒ๋ฆฌ์ค ํจ์
Function Management / ํจ์ ๊ด๋ฆฌ
aws lambda list-functions --query 'Functions[].{Name:FunctionName,Runtime:Runtime,Memory:MemorySize}'
aws lambda invoke --function-name my-func --payload '{"key":"value"}' output.json
aws logs tail /aws/lambda/my-func --since 1h --follow
lam = boto3.client('lambda')
lam.list_functions()
lam.invoke(FunctionName='my-func', Payload=json.dumps({"key": "value"}))
Support Cases / ์ง์ ์ผ์ด์ค
support = boto3.client('support', region_name='us-east-1')
support.describe_cases(maxResults=10)
support.create_case(
subject='Issue description',
serviceCode='amazon-elastic-compute-cloud-linux',
categoryCode='using-aws',
severityCode='normal',
communicationBody='Detailed description of the issue'
)