skills/devops/cloud-deployments/SKILL.md
Cloud infrastructure specialist focused on deploying and managing applications across cloud providers. Use for AWS ECS/Fargate, GCP Cloud Run, DigitalOcean App Platform, OpenTofu/Pulumi IaC, VPC design, and secrets management.
npx skillsauth add simplerick0/com.ackhax.configs cloud-deploymentsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a cloud infrastructure specialist focused on deploying and managing applications across cloud providers.
# AWS Example (OpenTofu - open-source Terraform fork)
provider "aws" {
region = "us-east-1"
}
resource "aws_ecs_cluster" "main" {
name = "app-cluster"
}
resource "aws_ecs_service" "app" {
name = "app-service"
cluster = aws_ecs_cluster.main.id
task_definition = aws_ecs_task_definition.app.arn
desired_count = 2
launch_type = "FARGATE"
network_configuration {
subnets = var.private_subnets
security_groups = [aws_security_group.app.id]
}
load_balancer {
target_group_arn = aws_lb_target_group.app.arn
container_name = "app"
container_port = 8000
}
}
import pulumi
import pulumi_aws as aws
cluster = aws.ecs.Cluster("app-cluster")
service = aws.ecs.Service("app-service",
cluster=cluster.arn,
desired_count=2,
launch_type="FARGATE",
task_definition=task_definition.arn,
network_configuration=aws.ecs.ServiceNetworkConfigurationArgs(
subnets=private_subnet_ids,
security_groups=[security_group.id],
),
)
# task-definition.json
{
"family": "app",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "256",
"memory": "512",
"containerDefinitions": [{
"name": "app",
"image": "123456789.dkr.ecr.us-east-1.amazonaws.com/app:latest",
"portMappings": [{"containerPort": 8000}],
"environment": [
{"name": "DATABASE_URL", "valueFrom": "arn:aws:secretsmanager:..."}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/app",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "app"
}
}
}]
}
# Deploy to Cloud Run
gcloud run deploy app \
--image gcr.io/project/app:latest \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars "DATABASE_URL=..." \
--min-instances 1 \
--max-instances 10
# app.yaml
name: my-app
services:
- name: api
github:
repo: user/repo
branch: main
run_command: uvicorn main:app --host 0.0.0.0 --port 8080
instance_size_slug: basic-xxs
instance_count: 2
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
databases:
- name: db
engine: PG
version: "16"
Production VPC (10.0.0.0/16)
├── Public Subnets (10.0.1.0/24, 10.0.2.0/24)
│ └── Load Balancers, NAT Gateways
├── Private Subnets (10.0.10.0/24, 10.0.11.0/24)
│ └── Application containers
└── Database Subnets (10.0.20.0/24, 10.0.21.0/24)
└── RDS, ElastiCache
resource "aws_security_group" "app" {
name = "app-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 8000
to_port = 8000
protocol = "tcp"
security_groups = [aws_security_group.alb.id]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Create secret
aws secretsmanager create-secret \
--name app/production/database \
--secret-string '{"url":"postgresql://..."}'
# Reference in ECS
"secrets": [{
"name": "DATABASE_URL",
"valueFrom": "arn:aws:secretsmanager:us-east-1:123456:secret:app/production/database:url::"
}]
# Create secret
echo -n "postgresql://..." | gcloud secrets create db-url --data-file=-
# Access in Cloud Run
gcloud run services update app \
--set-secrets="DATABASE_URL=db-url:latest"
development
Manage VSCode/Cursor configuration in this dotfiles repository. Use when working with settings.json, keybindings.json, or tasks.json files, or when asked about VSCode/Cursor configuration structure.
tools
Design user interfaces and experiences for web applications without requiring design tools. Use for wireframing in text/ASCII, defining user flows, creating component hierarchies, establishing design systems, planning responsive layouts, and making accessibility decisions.
development
Testing specialist focused on comprehensive test coverage for Python applications. Use for pytest patterns, unit/integration/E2E testing, fixtures, mocking, property-based testing with Hypothesis, and factory patterns.
development
Project management adapted for solo developers working without a team. Use for personal project planning, time-boxing work sessions, managing scope creep alone, maintaining momentum on side projects, tracking progress without overhead, making decisions without external input, and staying accountable to yourself.