AWS guidance — core services, IAM least privilege, networking, cost control, and production architecture patterns.
Scanned 9/29/2026
npx -y skills add aicodedecode/awesome-muse-skills --skill aws-pro --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Aws Pro?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aicodedecode-aws-pro)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: aws-pro
description: AWS guidance — core services, IAM least privilege, networking, cost control, and production architecture patterns.
category: development
---
## Overview
AWS is the broadest cloud platform — 200+ services, with a core set (EC2, S3, RDS, IAM, VPC, Lambda, CloudFront, Route53, EKS/ECS) covering most architectures. Its breadth is the challenge: there are five ways to do everything, pricing is complex, and IAM misconfigurations are the leading cause of cloud incidents.
The disciplines that matter: IAM least privilege, VPC networking fundamentals, choosing the right compute/storage per workload, and cost awareness from day one. This skill covers the core services, the security baseline, and architecture patterns that work — plus the cost traps to avoid.
## When to use
- Designing architecture on AWS (choosing services).
- Setting up IAM (users, roles, policies, least privilege).
- Building VPC networking (subnets, routing, security groups).
- Choosing compute (EC2, Lambda, ECS, EKS, Fargate).
- Controlling AWS costs (finding waste, budgets, alerts).
- Securing an AWS account (baseline, auditing, incident response).
- Preparing for production (multi-AZ, backups, DR).
## Core concepts
- **IAM: least privilege, always.** Roles for workloads (never long-lived access keys for apps), policies scoped to specific actions and resources, no `*` on production policies. IAM Access Analyzer finds unused permissions; credential reports find stale keys.
- **VPC fundamentals.** Your private network: public subnets (load balancers, NAT) + private subnets (apps, databases) across 2-3 AZs; route tables, internet gateway, NAT gateway. Security groups (stateful instance firewalls) + NACLs (stateless subnet firewalls) — security groups do most of the work.
- **Compute choices.** EC2 (control, steady workloads), Lambda (event-driven, spiky, short tasks), ECS/Fargate (containers without managing servers), EKS (Kubernetes when you need it). Match the abstraction to the team's operational capacity — EKS without K8s expertise is pain.
- **S3.** Object storage for everything static: versioning on, encryption on, block public access on (use CloudFront OAC for public content), lifecycle policies to Glacier for old data. S3 is also the Terraform-state, backup, and log-archive default.
- **RDS/Aurora.** Managed Postgres/MySQL: Multi-AZ for HA, read replicas for scale, automated backups + point-in-time recovery, Performance Insights for query tuning. Never run production databases on EC2 unless you have a very good reason.
- **CloudFront + Route53.** CDN for global latency and caching; Route53 for DNS with health-checked routing. CloudFront in front of S3/ALB is the standard public-web pattern.
- **Lambda well.** Small functions, right-sized memory (CPU scales with memory), VPC only when needed (it adds cold-start latency), reserved concurrency to bound blast radius, DLQs for async failures.
- **SQS/SNS/EventBridge.** Queues (SQS) for decoupling, topics (SNS) for fan-out, EventBridge for event routing between services. Prefer managed messaging over self-hosted brokers unless you need the protocol.
- **CloudWatch.** Metrics, logs, alarms — the default observability. Structured JSON logs, metric filters, composite alarms; but know its costs (custom metrics, log ingestion) and supplement with purpose-built tools at scale.
- **Organizations and accounts.** Multi-account strategy (prod/staging/dev, security, logging) with SCPs for guardrails. One account for everything is how incidents become company-wide.
- **Pricing model.** On-demand vs reserved/savings plans (steady workloads), spot (interruptible batch), graviton (ARM — cheaper and faster for many workloads). Right-size before committing to reservations.
- **Backups and DR.** AWS Backup for centralized policies; cross-region replication for S3 and RDS snapshots; define RTO/RPO per workload and test restores — untested backups are rumors.
- **Tagging.** Cost allocation tags (team, environment, service) enforced by policy — without tags, cost attribution is impossible.
- **Security baseline.** CloudTrail on (all regions, log file validation), GuardDuty for threat detection, Security Hub for posture, Config for compliance rules. Enable these before you need them.
- **Secrets Manager / Parameter Store.** Never env-var secrets into containers or bake them into AMIs; fetch at runtime with IAM-scoped access and rotation.
- **VPC endpoints.** PrivateLink endpoints for S3, DynamoDB, and other AWS services — keeps traffic off the internet and avoids NAT data-processing charges.
- **Auto Scaling done right.** Target-tracking policies on meaningful metrics (request count per target, custom app metrics) — not just CPU; warm pools for spiky workloads.
## Practical workflow
1. **Set up the account foundation.** Organizations with separate accounts (prod/staging/dev/security), CloudTrail everywhere, GuardDuty + Security Hub enabled, IAM Identity Center for human access (no IAM users for people).
2. **Build the VPC.** Public/private subnets across 3 AZs, NAT gateways (or NAT instances for dev cost savings), security groups with least-privilege rules, VPC flow logs for debugging.
```hcl
# sketch: public ALB -> private app -> private RDS, 3 AZs
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
azs = ["us-east-1a", "us-east-1b", "us-east-1c"]
public_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
private_subnets = ["10.0.11.0/24", "10.0.12.0/24", "10.0.13.0/24"]
}
```
3. **Lock down IAM.** Roles per workload with scoped policies; no static keys for apps (IRSA for EKS, instance profiles for EC2, OIDC for CI); MFA for humans; regular access reviews.
4. **Choose compute per workload.** Steady API → ECS/Fargate or EC2 ASG; spiky events → Lambda; need K8s → EKS; batch → spot fleets. Right-size with Compute Optimizer, prefer Graviton.
5. **Put data on managed services.** RDS Multi-AZ with automated backups, ElastiCache for Redis, S3 with versioning + lifecycle. Test restore procedures quarterly.
6. **Front with CloudFront + WAF.** CDN caching, TLS, WAF rules for common attacks; Route53 health checks with failover routing for multi-region.
- Cache static aggressively, dynamic selectively; invalidate deliberately — invalidations cost and signal a design smell if constant.
7. **Observe and alarm.** CloudWatch dashboards for golden signals; alarms on error rates, latency, and saturation; structured logs with correlation IDs; trace with X-Ray or OpenTelemetry.
8. **Control costs.** Budgets with alerts, Cost Explorer reviews, kill idle resources (unattached EBS, old snapshots, idle NAT/LBs), S3 lifecycle policies, compute savings plans after right-sizing.
## Common pitfalls
- **`AdministratorAccess` everywhere** — wildcard IAM is the #1 cloud security failure; least privilege from the start.
- **Long-lived access keys** — leaked in repos and logs; roles + OIDC, rotate what remains.
- **Single AZ deployments** — one AZ failure = outage; multi-AZ for everything production.
- **Public S3 buckets** — data exposure; block public access, serve via CloudFront OAC.
- **Unencrypted everything** — EBS, RDS, S3 without encryption; enable by default (it's free).
- **No CloudTrail** — flying blind after an incident; enable in all regions with log validation.
- **Oversized instances** — paying for idle CPU; right-size, then commit to savings plans.
- **Idle resource sprawl** — unattached volumes, old AMIs/snapshots, forgotten load balancers; audit regularly.
- **NAT gateway cost surprise** — per-GB data processing charges; budget for it or architect around it.
- **Lambda in VPC by default** — cold-start latency and ENI management for no benefit; only when accessing VPC resources.
- **No backups tested** — snapshots exist but restores never tried; test quarterly.
- **One account for everything** — blast radius of a compromise; multi-account with SCPs.
- **Ignoring GuardDuty findings** — threat detection enabled but unmonitored; findings need a response runbook.
- **Secrets in user-data / env vars** — visible in console and snapshots; use Secrets Manager with runtime retrieval.
- **Default VPC for production** — the default VPC's flat open design; build purpose-specific VPCs instead.
- **Cross-AZ data transfer blindness** — chatty cross-AZ traffic racking up charges; keep data-local where possible.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!