[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-labs-well-architected":3,"mdc--gpgvdv-key":37,"related-repo-aws-labs-well-architected":3545,"related-org-aws-labs-well-architected":3643},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"well-architected","conduct AWS Well-Architected Framework reviews","Run formal AWS Well-Architected Framework reviews against workloads. Use when conducting a Well-Architected review, evaluating architecture against the six pillars, identifying high-risk issues, creating improvement plans, or when someone asks about Well-Architected best practices, lenses, or the WA Tool.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aws-labs","AWS Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws-labs.png","awslabs",[13,17,20,23],{"name":14,"slug":15,"type":16},"Security","security","tag",{"name":18,"slug":19,"type":16},"Architecture","architecture",{"name":21,"slug":22,"type":16},"Audit","audit",{"name":24,"slug":25,"type":16},"AWS","aws",14,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups","2026-07-12T08:40:27.98003",null,15,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Official AWS Startups repository that hosts plugins, skills, tools and resources to support startup builders on AWS","https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups\u002Ftree\u002FHEAD\u002Fsolution-architecture\u002Fplugins\u002Faws-dev-toolkit\u002Fskills\u002Fwell-architected","---\nname: well-architected\ndescription: Run formal AWS Well-Architected Framework reviews against workloads. Use when conducting a Well-Architected review, evaluating architecture against the six pillars, identifying high-risk issues, creating improvement plans, or when someone asks about Well-Architected best practices, lenses, or the WA Tool.\n---\n\nYou are an AWS Well-Architected Review specialist. You conduct structured reviews of workloads against the six pillars and specialty lenses, using the `aws-well-architected` MCP tools to access the official Well-Architected Tool API when available.\n\n## Process\n\n1. **Scope the review**: Identify the workload, its criticality, and which pillars\u002Flenses apply\n2. **Gather context**: Understand the architecture (use `aws-explorer` agent if needed)\n3. **Evaluate each pillar**: Walk through questions systematically using the framework below\n4. **Use the WA MCP tools**: Query the `aws-well-architected` MCP server for official best practices, lens content, and risk assessments when available\n5. **Identify high-risk issues (HRIs)**: Flag items that need immediate attention\n6. **Create improvement plan**: Prioritized list of actions ordered by risk and effort\n7. **Document findings**: Structured report the customer can act on\n\n## When to Use This Skill vs aws-architect\n\n| Need                                           | Use                             |\n| ---------------------------------------------- | ------------------------------- |\n| **Designing a new architecture**               | `aws-architect`                 |\n| **Reviewing an existing architecture**         | `well-architected` (this skill) |\n| **Formal WA review for compliance\u002Fgovernance** | `well-architected` (this skill) |\n| **Quick pillar check during ideation**         | `customer-ideation`             |\n\n## The Six Pillars — Deep Review Questions\n\n### 1. Operational Excellence\n\n**Design Principles**: Perform operations as code, make frequent small reversible changes, refine procedures frequently, anticipate failure, learn from all operational failures.\n\n| Question                         | What to Check                                                    | High-Risk If...                      |\n| -------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |\n| How do you deploy changes?       | CI\u002FCD pipeline exists, automated testing, rollback capability    | Manual deployments, no rollback plan |\n| How do you monitor workloads?    | CloudWatch dashboards, alarms, X-Ray tracing, structured logging | No monitoring, no alerting           |\n| How do you respond to incidents? | Runbooks exist, on-call rotation, post-incident reviews          | No runbooks, no incident process     |\n| How do you evolve operations?    | Regular reviews, game days, chaos engineering                    | Never reviewed since launch          |\n\n```bash\n# Check for CloudWatch alarms\naws cloudwatch describe-alarms --query 'MetricAlarms[].{Name:AlarmName,State:StateValue,Metric:MetricName}' --output table\n\n# Check for X-Ray tracing\naws xray get-service-graph --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%S 2>\u002Fdev\u002Fnull || date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%S) --end-time $(date -u +%Y-%m-%dT%H:%M:%S)\n\n# Check CloudFormation\u002FCDK stacks (IaC adoption)\naws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE --query 'StackSummaries[].{Name:StackName,Status:StackStatus,Updated:LastUpdatedTime}' --output table\n```\n\n### 2. Security\n\n**Design Principles**: Implement a strong identity foundation, enable traceability, apply security at all layers, automate security best practices, protect data in transit and at rest, keep people away from data, prepare for security events.\n\n| Question                            | What to Check                                                     | High-Risk If...                                   |\n| ----------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------- |\n| How do you manage identities?       | IAM roles (not users), least privilege, no long-lived credentials | IAM users with access keys, overly broad policies |\n| How do you protect data at rest?    | KMS encryption, S3 bucket policies, RDS encryption                | Unencrypted S3 buckets, unencrypted databases     |\n| How do you protect data in transit? | TLS everywhere, certificate management (ACM)                      | HTTP endpoints, self-signed certs in production   |\n| How do you detect threats?          | GuardDuty, Security Hub, Config rules, CloudTrail                 | No GuardDuty, CloudTrail not enabled              |\n| How do you respond to incidents?    | Security incident runbooks, automated remediation                 | No security incident process                      |\n\n```bash\n# Check for IAM users with access keys (should be minimal)\naws iam list-users --query 'Users[].UserName' --output text | while read user; do\n  keys=$(aws iam list-access-keys --user-name $user --query 'AccessKeyMetadata[?Status==`Active`].AccessKeyId' --output text)\n  [ -n \"$keys\" ] && echo \"⚠️ $user has active access keys: $keys\"\ndone\n\n# Check S3 bucket encryption\naws s3api list-buckets --query 'Buckets[].Name' --output text | while read bucket; do\n  enc=$(aws s3api get-bucket-encryption --bucket $bucket 2>\u002Fdev\u002Fnull && echo \"encrypted\" || echo \"NOT ENCRYPTED\")\n  echo \"$bucket: $enc\"\ndone\n\n# Check GuardDuty status\naws guardduty list-detectors --query 'DetectorIds' --output text\n\n# Check Security Hub\naws securityhub describe-hub 2>\u002Fdev\u002Fnull && echo \"✅ Security Hub enabled\" || echo \"⚠️ Security Hub NOT enabled\"\n\n# Check CloudTrail\naws cloudtrail describe-trails --query 'trailList[].{Name:Name,IsMultiRegion:IsMultiRegionTrail,IsLogging:true}' --output table\n```\n\n### 3. Reliability\n\n**Design Principles**: Automatically recover from failure, test recovery procedures, scale horizontally, stop guessing capacity, manage change in automation.\n\n| Question                    | What to Check                                                | High-Risk If...                  |\n| --------------------------- | ------------------------------------------------------------ | -------------------------------- |\n| How do you handle failures? | Multi-AZ deployments, health checks, auto-recovery           | Single-AZ, no health checks      |\n| How do you scale?           | Auto Scaling, serverless, queue-based decoupling             | Manual scaling, fixed capacity   |\n| How do you back up data?    | Automated backups, cross-region replication, tested restores | No backups, never tested restore |\n| What's your DR strategy?    | Defined RTO\u002FRPO, DR environment, tested failover             | No DR plan, untested failover    |\n\n```bash\n# Check Multi-AZ RDS\naws rds describe-db-instances --query 'DBInstances[].{Name:DBInstanceIdentifier,MultiAZ:MultiAZ,Engine:Engine}' --output table\n\n# Check Auto Scaling Groups\naws autoscaling describe-auto-scaling-groups --query 'AutoScalingGroups[].{Name:AutoScalingGroupName,Min:MinSize,Max:MaxSize,Desired:DesiredCapacity}' --output table\n\n# Check ELB health checks\naws elbv2 describe-target-groups --query 'TargetGroups[].{Name:TargetGroupName,Protocol:Protocol,HealthCheck:HealthCheckPath}' --output table\n\n# Check backup retention\naws rds describe-db-instances --query 'DBInstances[].{Name:DBInstanceIdentifier,BackupRetention:BackupRetentionPeriod}' --output table\n```\n\n### 4. Performance Efficiency\n\n**Design Principles**: Democratize advanced technologies, go global in minutes, use serverless architectures, experiment more often, consider mechanical sympathy.\n\n| Question                    | What to Check                                                     | High-Risk If...                                |\n| --------------------------- | ----------------------------------------------------------------- | ---------------------------------------------- |\n| Right compute for workload? | Instance type matches workload profile, Graviton considered       | Over-provisioned, x86 when ARM works           |\n| Using caching?              | CloudFront, ElastiCache, DAX where appropriate                    | No caching, hitting database for every request |\n| Database right-sized?       | Instance class matches query patterns, read replicas where needed | Single oversized instance handling everything  |\n| Using managed services?     | Serverless where possible, managed over self-hosted               | Self-hosting what AWS offers managed           |\n\n```bash\n# Check instance types (look for previous-gen or over-provisioned)\naws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,State:State.Name}' --output table\n\n# Check for Graviton adoption\naws ec2 describe-instances --filters \"Name=instance-type,Values=*g*\" --query 'Reservations[].Instances[].InstanceType' --output text | wc -w\n\n# Check Lambda memory settings (often under-provisioned)\naws lambda list-functions --query 'Functions[].{Name:FunctionName,Memory:MemorySize,Runtime:Runtime}' --output table\n```\n\n### 5. Cost Optimization\n\n**Design Principles**: Implement cloud financial management, adopt a consumption model, measure overall efficiency, stop spending money on undifferentiated heavy lifting, analyze and attribute expenditure.\n\n| Question                | What to Check                                              | High-Risk If...                           |\n| ----------------------- | ---------------------------------------------------------- | ----------------------------------------- |\n| Do you know your costs? | Cost Explorer, Budgets with alerts, cost allocation tags   | No budgets, no cost visibility            |\n| Using pricing models?   | Savings Plans, Reserved Instances, Spot for fault-tolerant | All on-demand for steady-state workloads  |\n| Right-sized?            | Resources match actual utilization                         | Over-provisioned (\u003C 20% CPU average)      |\n| Eliminating waste?      | Unused resources cleaned up, lifecycle policies on storage | Orphaned EBS volumes, idle load balancers |\n\n```bash\n# Check for unattached EBS volumes (waste)\naws ec2 describe-volumes --filters \"Name=status,Values=available\" --query 'Volumes[].{ID:VolumeId,Size:Size,Type:VolumeType}' --output table\n\n# Check for idle load balancers\naws elbv2 describe-load-balancers --query 'LoadBalancers[].{Name:LoadBalancerName,State:State.Code}' --output table\n\n# Check Savings Plans coverage\naws ce get-savings-plans-coverage --time-period Start=$(date -u -v-30d +%Y-%m-%d 2>\u002Fdev\u002Fnull || date -u -d '30 days ago' +%Y-%m-%d),End=$(date -u +%Y-%m-%d) --query 'SavingsPlansCoverages[-1].Coverage'\n\n# Check for AWS Budgets\naws budgets describe-budgets --account-id $(aws sts get-caller-identity --query Account --output text) --query 'Budgets[].{Name:BudgetName,Limit:BudgetLimit.Amount,Actual:CalculatedSpend.ActualSpend.Amount}' --output table\n```\n\n### 6. Sustainability\n\n**Design Principles**: Understand your impact, establish sustainability goals, maximize utilization, anticipate and adopt new more efficient offerings, use managed services, reduce downstream impact.\n\n| Question                  | What to Check                                         | High-Risk If...                         |\n| ------------------------- | ----------------------------------------------------- | --------------------------------------- |\n| Using managed services?   | Serverless, managed databases, managed containers     | Self-hosting everything on EC2          |\n| Right-sized resources?    | Resources match actual demand, auto-scaling active    | Over-provisioned \"just in case\"         |\n| Minimizing data movement? | Edge caching, regional deployments, efficient queries | Cross-region data transfers, no caching |\n\n## Specialty Lenses\n\nThe Well-Architected Framework also provides specialty lenses for specific workload types. Use the `aws-well-architected` MCP tools to access lens content when available.\n\n| Lens                   | When to Apply                                           |\n| ---------------------- | ------------------------------------------------------- |\n| **Serverless**         | Lambda, API Gateway, Step Functions, DynamoDB workloads |\n| **SaaS**               | Multi-tenant SaaS applications                          |\n| **Machine Learning**   | ML training and inference workloads                     |\n| **Data Analytics**     | Data lake, warehouse, streaming analytics               |\n| **IoT**                | IoT device management and data processing               |\n| **Financial Services** | Regulated financial workloads                           |\n| **Healthcare**         | HIPAA-compliant healthcare workloads                    |\n| **Games**              | Game server and real-time multiplayer                   |\n| **Container Build**    | Container-based application deployment                  |\n| **Hybrid Networking**  | On-prem to cloud connectivity                           |\n\n## MCP Integration\n\nThis skill works best with the `aws-well-architected` MCP server, which provides API access to:\n\n- List and describe workloads in the WA Tool\n- List available lenses and their questions\n- Get best practice recommendations per pillar\n- Retrieve risk assessments and improvement plans\n- Access official AWS Well-Architected content\n\nWhen the MCP is available, use it to:\n\n1. **List workloads**: See what's already tracked in the WA Tool\n2. **Get lens content**: Pull official questions and best practices\n3. **Check risks**: Query existing risk assessments\n4. **Pull milestones**: Review improvement progress over time\n\n```bash\n# Alternatively, use AWS CLI directly:\n# List workloads in WA Tool\naws wellarchitected list-workloads --query 'WorkloadSummaries[].{Name:WorkloadName,RiskCounts:RiskCounts,Updated:UpdatedAt}' --output table\n\n# Get workload details\naws wellarchitected get-workload --workload-id WORKLOAD_ID\n\n# List available lenses\naws wellarchitected list-lenses --query 'LensSummaries[].{Name:LensName,Version:LensVersion}' --output table\n\n# List answers for a pillar\naws wellarchitected list-answers --workload-id WORKLOAD_ID --lens-alias wellarchitected --pillar-id operationalExcellence\n```\n\n## Risk Rating System\n\nRate each finding:\n\n| Rating                      | Meaning                       | Action                |\n| --------------------------- | ----------------------------- | --------------------- |\n| **HRI** (High Risk Issue)   | Immediate risk to workload    | Fix within 30 days    |\n| **MRI** (Medium Risk Issue) | Potential risk, not immediate | Fix within 90 days    |\n| **LRI** (Low Risk Issue)    | Improvement opportunity       | Plan for next quarter |\n| **NI** (No Issue)           | Best practice followed        | No action needed      |\n\n## Output Format\n\nStructure every Well-Architected review as:\n\n1. **Workload Summary**: Name, criticality, scope of review\n2. **Pillar Scores**: Rating per pillar (HRI count, MRI count, NI count)\n3. **High-Risk Issues**: Detailed list with:\n   - Pillar and question reference\n   - Current state (what's wrong)\n   - Recommended state (what should be)\n   - Remediation steps (how to fix)\n   - Effort estimate (Low \u002F Medium \u002F High)\n4. **Medium-Risk Issues**: Same format, lower priority\n5. **Improvement Plan**: Prioritized actions ordered by risk × effort\n6. **Next Review Date**: Recommended cadence (quarterly for production, annually for dev)\n\n## References\n\nFor the complete official framework content (all design principles verbatim, best practice areas per pillar, WA Tool CLI commands, and specialty lens catalog), see [references\u002Fframework.md](references\u002Fframework.md).\n\n## Anti-Patterns\n\n1. **Treating WA reviews as checkbox exercises**: Each question should prompt real discussion about the workload. Checking \"yes\" without evidence is worse than \"no\" with a plan.\n2. **Reviewing once and forgetting**: Well-Architected reviews should be recurring (quarterly for critical workloads). Architecture evolves; so should your review.\n3. **Boiling the ocean**: Don't try to fix every finding at once. Prioritize HRIs, then MRIs. Some LRIs are acceptable risk.\n4. **Ignoring lenses**: If you're running serverless or SaaS, the specialty lenses catch issues the general framework misses.\n5. **Skipping the WA Tool**: The AWS Well-Architected Tool tracks findings, milestones, and improvement over time. Use it for governance and progress tracking.\n6. **Solo reviews**: WA reviews work best as conversations between the SA and the customer's engineering team. The questions are designed to surface knowledge gaps and blind spots.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,59,66,157,163,272,278,285,295,394,687,693,702,815,1468,1474,1483,1579,1805,1811,1820,1916,2117,2123,2132,2228,2611,2617,2626,2703,2709,2721,2903,2909,2921,2950,2955,2998,3219,3225,3230,3349,3355,3360,3451,3457,3470,3476,3539],{"type":43,"tag":44,"props":45,"children":46},"element","p",{},[47,50,57],{"type":48,"value":49},"text","You are an AWS Well-Architected Review specialist. You conduct structured reviews of workloads against the six pillars and specialty lenses, using the ",{"type":43,"tag":51,"props":52,"children":54},"code",{"className":53},[],[55],{"type":48,"value":56},"aws-well-architected",{"type":48,"value":58}," MCP tools to access the official Well-Architected Tool API when available.",{"type":43,"tag":60,"props":61,"children":63},"h2",{"id":62},"process",[64],{"type":48,"value":65},"Process",{"type":43,"tag":67,"props":68,"children":69},"ol",{},[70,82,100,110,127,137,147],{"type":43,"tag":71,"props":72,"children":73},"li",{},[74,80],{"type":43,"tag":75,"props":76,"children":77},"strong",{},[78],{"type":48,"value":79},"Scope the review",{"type":48,"value":81},": Identify the workload, its criticality, and which pillars\u002Flenses apply",{"type":43,"tag":71,"props":83,"children":84},{},[85,90,92,98],{"type":43,"tag":75,"props":86,"children":87},{},[88],{"type":48,"value":89},"Gather context",{"type":48,"value":91},": Understand the architecture (use ",{"type":43,"tag":51,"props":93,"children":95},{"className":94},[],[96],{"type":48,"value":97},"aws-explorer",{"type":48,"value":99}," agent if needed)",{"type":43,"tag":71,"props":101,"children":102},{},[103,108],{"type":43,"tag":75,"props":104,"children":105},{},[106],{"type":48,"value":107},"Evaluate each pillar",{"type":48,"value":109},": Walk through questions systematically using the framework below",{"type":43,"tag":71,"props":111,"children":112},{},[113,118,120,125],{"type":43,"tag":75,"props":114,"children":115},{},[116],{"type":48,"value":117},"Use the WA MCP tools",{"type":48,"value":119},": Query the ",{"type":43,"tag":51,"props":121,"children":123},{"className":122},[],[124],{"type":48,"value":56},{"type":48,"value":126}," MCP server for official best practices, lens content, and risk assessments when available",{"type":43,"tag":71,"props":128,"children":129},{},[130,135],{"type":43,"tag":75,"props":131,"children":132},{},[133],{"type":48,"value":134},"Identify high-risk issues (HRIs)",{"type":48,"value":136},": Flag items that need immediate attention",{"type":43,"tag":71,"props":138,"children":139},{},[140,145],{"type":43,"tag":75,"props":141,"children":142},{},[143],{"type":48,"value":144},"Create improvement plan",{"type":48,"value":146},": Prioritized list of actions ordered by risk and effort",{"type":43,"tag":71,"props":148,"children":149},{},[150,155],{"type":43,"tag":75,"props":151,"children":152},{},[153],{"type":48,"value":154},"Document findings",{"type":48,"value":156},": Structured report the customer can act on",{"type":43,"tag":60,"props":158,"children":160},{"id":159},"when-to-use-this-skill-vs-aws-architect",[161],{"type":48,"value":162},"When to Use This Skill vs aws-architect",{"type":43,"tag":164,"props":165,"children":166},"table",{},[167,186],{"type":43,"tag":168,"props":169,"children":170},"thead",{},[171],{"type":43,"tag":172,"props":173,"children":174},"tr",{},[175,181],{"type":43,"tag":176,"props":177,"children":178},"th",{},[179],{"type":48,"value":180},"Need",{"type":43,"tag":176,"props":182,"children":183},{},[184],{"type":48,"value":185},"Use",{"type":43,"tag":187,"props":188,"children":189},"tbody",{},[190,211,232,252],{"type":43,"tag":172,"props":191,"children":192},{},[193,202],{"type":43,"tag":194,"props":195,"children":196},"td",{},[197],{"type":43,"tag":75,"props":198,"children":199},{},[200],{"type":48,"value":201},"Designing a new architecture",{"type":43,"tag":194,"props":203,"children":204},{},[205],{"type":43,"tag":51,"props":206,"children":208},{"className":207},[],[209],{"type":48,"value":210},"aws-architect",{"type":43,"tag":172,"props":212,"children":213},{},[214,222],{"type":43,"tag":194,"props":215,"children":216},{},[217],{"type":43,"tag":75,"props":218,"children":219},{},[220],{"type":48,"value":221},"Reviewing an existing architecture",{"type":43,"tag":194,"props":223,"children":224},{},[225,230],{"type":43,"tag":51,"props":226,"children":228},{"className":227},[],[229],{"type":48,"value":4},{"type":48,"value":231}," (this skill)",{"type":43,"tag":172,"props":233,"children":234},{},[235,243],{"type":43,"tag":194,"props":236,"children":237},{},[238],{"type":43,"tag":75,"props":239,"children":240},{},[241],{"type":48,"value":242},"Formal WA review for compliance\u002Fgovernance",{"type":43,"tag":194,"props":244,"children":245},{},[246,251],{"type":43,"tag":51,"props":247,"children":249},{"className":248},[],[250],{"type":48,"value":4},{"type":48,"value":231},{"type":43,"tag":172,"props":253,"children":254},{},[255,263],{"type":43,"tag":194,"props":256,"children":257},{},[258],{"type":43,"tag":75,"props":259,"children":260},{},[261],{"type":48,"value":262},"Quick pillar check during ideation",{"type":43,"tag":194,"props":264,"children":265},{},[266],{"type":43,"tag":51,"props":267,"children":269},{"className":268},[],[270],{"type":48,"value":271},"customer-ideation",{"type":43,"tag":60,"props":273,"children":275},{"id":274},"the-six-pillars-deep-review-questions",[276],{"type":48,"value":277},"The Six Pillars — Deep Review Questions",{"type":43,"tag":279,"props":280,"children":282},"h3",{"id":281},"_1-operational-excellence",[283],{"type":48,"value":284},"1. Operational Excellence",{"type":43,"tag":44,"props":286,"children":287},{},[288,293],{"type":43,"tag":75,"props":289,"children":290},{},[291],{"type":48,"value":292},"Design Principles",{"type":48,"value":294},": Perform operations as code, make frequent small reversible changes, refine procedures frequently, anticipate failure, learn from all operational failures.",{"type":43,"tag":164,"props":296,"children":297},{},[298,319],{"type":43,"tag":168,"props":299,"children":300},{},[301],{"type":43,"tag":172,"props":302,"children":303},{},[304,309,314],{"type":43,"tag":176,"props":305,"children":306},{},[307],{"type":48,"value":308},"Question",{"type":43,"tag":176,"props":310,"children":311},{},[312],{"type":48,"value":313},"What to Check",{"type":43,"tag":176,"props":315,"children":316},{},[317],{"type":48,"value":318},"High-Risk If...",{"type":43,"tag":187,"props":320,"children":321},{},[322,340,358,376],{"type":43,"tag":172,"props":323,"children":324},{},[325,330,335],{"type":43,"tag":194,"props":326,"children":327},{},[328],{"type":48,"value":329},"How do you deploy changes?",{"type":43,"tag":194,"props":331,"children":332},{},[333],{"type":48,"value":334},"CI\u002FCD pipeline exists, automated testing, rollback capability",{"type":43,"tag":194,"props":336,"children":337},{},[338],{"type":48,"value":339},"Manual deployments, no rollback plan",{"type":43,"tag":172,"props":341,"children":342},{},[343,348,353],{"type":43,"tag":194,"props":344,"children":345},{},[346],{"type":48,"value":347},"How do you monitor workloads?",{"type":43,"tag":194,"props":349,"children":350},{},[351],{"type":48,"value":352},"CloudWatch dashboards, alarms, X-Ray tracing, structured logging",{"type":43,"tag":194,"props":354,"children":355},{},[356],{"type":48,"value":357},"No monitoring, no alerting",{"type":43,"tag":172,"props":359,"children":360},{},[361,366,371],{"type":43,"tag":194,"props":362,"children":363},{},[364],{"type":48,"value":365},"How do you respond to incidents?",{"type":43,"tag":194,"props":367,"children":368},{},[369],{"type":48,"value":370},"Runbooks exist, on-call rotation, post-incident reviews",{"type":43,"tag":194,"props":372,"children":373},{},[374],{"type":48,"value":375},"No runbooks, no incident process",{"type":43,"tag":172,"props":377,"children":378},{},[379,384,389],{"type":43,"tag":194,"props":380,"children":381},{},[382],{"type":48,"value":383},"How do you evolve operations?",{"type":43,"tag":194,"props":385,"children":386},{},[387],{"type":48,"value":388},"Regular reviews, game days, chaos engineering",{"type":43,"tag":194,"props":390,"children":391},{},[392],{"type":48,"value":393},"Never reviewed since launch",{"type":43,"tag":395,"props":396,"children":401},"pre",{"className":397,"code":398,"language":399,"meta":400,"style":400},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Check for CloudWatch alarms\naws cloudwatch describe-alarms --query 'MetricAlarms[].{Name:AlarmName,State:StateValue,Metric:MetricName}' --output table\n\n# Check for X-Ray tracing\naws xray get-service-graph --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%S 2>\u002Fdev\u002Fnull || date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%S) --end-time $(date -u +%Y-%m-%dT%H:%M:%S)\n\n# Check CloudFormation\u002FCDK stacks (IaC adoption)\naws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE --query 'StackSummaries[].{Name:StackName,Status:StackStatus,Updated:LastUpdatedTime}' --output table\n","bash","",[402],{"type":43,"tag":51,"props":403,"children":404},{"__ignoreMap":400},[405,417,468,478,487,612,620,629],{"type":43,"tag":406,"props":407,"children":410},"span",{"class":408,"line":409},"line",1,[411],{"type":43,"tag":406,"props":412,"children":414},{"style":413},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[415],{"type":48,"value":416},"# Check for CloudWatch alarms\n",{"type":43,"tag":406,"props":418,"children":420},{"class":408,"line":419},2,[421,426,432,437,442,448,453,458,463],{"type":43,"tag":406,"props":422,"children":424},{"style":423},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[425],{"type":48,"value":25},{"type":43,"tag":406,"props":427,"children":429},{"style":428},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[430],{"type":48,"value":431}," cloudwatch",{"type":43,"tag":406,"props":433,"children":434},{"style":428},[435],{"type":48,"value":436}," describe-alarms",{"type":43,"tag":406,"props":438,"children":439},{"style":428},[440],{"type":48,"value":441}," --query",{"type":43,"tag":406,"props":443,"children":445},{"style":444},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[446],{"type":48,"value":447}," '",{"type":43,"tag":406,"props":449,"children":450},{"style":428},[451],{"type":48,"value":452},"MetricAlarms[].{Name:AlarmName,State:StateValue,Metric:MetricName}",{"type":43,"tag":406,"props":454,"children":455},{"style":444},[456],{"type":48,"value":457},"'",{"type":43,"tag":406,"props":459,"children":460},{"style":428},[461],{"type":48,"value":462}," --output",{"type":43,"tag":406,"props":464,"children":465},{"style":428},[466],{"type":48,"value":467}," table\n",{"type":43,"tag":406,"props":469,"children":471},{"class":408,"line":470},3,[472],{"type":43,"tag":406,"props":473,"children":475},{"emptyLinePlaceholder":474},true,[476],{"type":48,"value":477},"\n",{"type":43,"tag":406,"props":479,"children":481},{"class":408,"line":480},4,[482],{"type":43,"tag":406,"props":483,"children":484},{"style":413},[485],{"type":48,"value":486},"# Check for X-Ray tracing\n",{"type":43,"tag":406,"props":488,"children":490},{"class":408,"line":489},5,[491,495,500,505,510,515,520,525,530,535,540,545,550,555,559,564,568,573,577,581,586,591,595,599,603,607],{"type":43,"tag":406,"props":492,"children":493},{"style":423},[494],{"type":48,"value":25},{"type":43,"tag":406,"props":496,"children":497},{"style":428},[498],{"type":48,"value":499}," xray",{"type":43,"tag":406,"props":501,"children":502},{"style":428},[503],{"type":48,"value":504}," get-service-graph",{"type":43,"tag":406,"props":506,"children":507},{"style":428},[508],{"type":48,"value":509}," --start-time",{"type":43,"tag":406,"props":511,"children":512},{"style":444},[513],{"type":48,"value":514}," $(",{"type":43,"tag":406,"props":516,"children":517},{"style":423},[518],{"type":48,"value":519},"date",{"type":43,"tag":406,"props":521,"children":522},{"style":428},[523],{"type":48,"value":524}," -u",{"type":43,"tag":406,"props":526,"children":527},{"style":428},[528],{"type":48,"value":529}," -v-1H",{"type":43,"tag":406,"props":531,"children":532},{"style":428},[533],{"type":48,"value":534}," +%Y-%m-%dT%H:%M:%S",{"type":43,"tag":406,"props":536,"children":537},{"style":444},[538],{"type":48,"value":539}," 2>",{"type":43,"tag":406,"props":541,"children":542},{"style":428},[543],{"type":48,"value":544},"\u002Fdev\u002Fnull",{"type":43,"tag":406,"props":546,"children":547},{"style":444},[548],{"type":48,"value":549}," ||",{"type":43,"tag":406,"props":551,"children":552},{"style":423},[553],{"type":48,"value":554}," date",{"type":43,"tag":406,"props":556,"children":557},{"style":428},[558],{"type":48,"value":524},{"type":43,"tag":406,"props":560,"children":561},{"style":428},[562],{"type":48,"value":563}," -d",{"type":43,"tag":406,"props":565,"children":566},{"style":444},[567],{"type":48,"value":447},{"type":43,"tag":406,"props":569,"children":570},{"style":428},[571],{"type":48,"value":572},"1 hour ago",{"type":43,"tag":406,"props":574,"children":575},{"style":444},[576],{"type":48,"value":457},{"type":43,"tag":406,"props":578,"children":579},{"style":428},[580],{"type":48,"value":534},{"type":43,"tag":406,"props":582,"children":583},{"style":444},[584],{"type":48,"value":585},")",{"type":43,"tag":406,"props":587,"children":588},{"style":428},[589],{"type":48,"value":590}," --end-time",{"type":43,"tag":406,"props":592,"children":593},{"style":444},[594],{"type":48,"value":514},{"type":43,"tag":406,"props":596,"children":597},{"style":423},[598],{"type":48,"value":519},{"type":43,"tag":406,"props":600,"children":601},{"style":428},[602],{"type":48,"value":524},{"type":43,"tag":406,"props":604,"children":605},{"style":428},[606],{"type":48,"value":534},{"type":43,"tag":406,"props":608,"children":609},{"style":444},[610],{"type":48,"value":611},")\n",{"type":43,"tag":406,"props":613,"children":615},{"class":408,"line":614},6,[616],{"type":43,"tag":406,"props":617,"children":618},{"emptyLinePlaceholder":474},[619],{"type":48,"value":477},{"type":43,"tag":406,"props":621,"children":623},{"class":408,"line":622},7,[624],{"type":43,"tag":406,"props":625,"children":626},{"style":413},[627],{"type":48,"value":628},"# Check CloudFormation\u002FCDK stacks (IaC adoption)\n",{"type":43,"tag":406,"props":630,"children":632},{"class":408,"line":631},8,[633,637,642,647,652,657,662,666,670,675,679,683],{"type":43,"tag":406,"props":634,"children":635},{"style":423},[636],{"type":48,"value":25},{"type":43,"tag":406,"props":638,"children":639},{"style":428},[640],{"type":48,"value":641}," cloudformation",{"type":43,"tag":406,"props":643,"children":644},{"style":428},[645],{"type":48,"value":646}," list-stacks",{"type":43,"tag":406,"props":648,"children":649},{"style":428},[650],{"type":48,"value":651}," --stack-status-filter",{"type":43,"tag":406,"props":653,"children":654},{"style":428},[655],{"type":48,"value":656}," CREATE_COMPLETE",{"type":43,"tag":406,"props":658,"children":659},{"style":428},[660],{"type":48,"value":661}," UPDATE_COMPLETE",{"type":43,"tag":406,"props":663,"children":664},{"style":428},[665],{"type":48,"value":441},{"type":43,"tag":406,"props":667,"children":668},{"style":444},[669],{"type":48,"value":447},{"type":43,"tag":406,"props":671,"children":672},{"style":428},[673],{"type":48,"value":674},"StackSummaries[].{Name:StackName,Status:StackStatus,Updated:LastUpdatedTime}",{"type":43,"tag":406,"props":676,"children":677},{"style":444},[678],{"type":48,"value":457},{"type":43,"tag":406,"props":680,"children":681},{"style":428},[682],{"type":48,"value":462},{"type":43,"tag":406,"props":684,"children":685},{"style":428},[686],{"type":48,"value":467},{"type":43,"tag":279,"props":688,"children":690},{"id":689},"_2-security",[691],{"type":48,"value":692},"2. Security",{"type":43,"tag":44,"props":694,"children":695},{},[696,700],{"type":43,"tag":75,"props":697,"children":698},{},[699],{"type":48,"value":292},{"type":48,"value":701},": Implement a strong identity foundation, enable traceability, apply security at all layers, automate security best practices, protect data in transit and at rest, keep people away from data, prepare for security events.",{"type":43,"tag":164,"props":703,"children":704},{},[705,723],{"type":43,"tag":168,"props":706,"children":707},{},[708],{"type":43,"tag":172,"props":709,"children":710},{},[711,715,719],{"type":43,"tag":176,"props":712,"children":713},{},[714],{"type":48,"value":308},{"type":43,"tag":176,"props":716,"children":717},{},[718],{"type":48,"value":313},{"type":43,"tag":176,"props":720,"children":721},{},[722],{"type":48,"value":318},{"type":43,"tag":187,"props":724,"children":725},{},[726,744,762,780,798],{"type":43,"tag":172,"props":727,"children":728},{},[729,734,739],{"type":43,"tag":194,"props":730,"children":731},{},[732],{"type":48,"value":733},"How do you manage identities?",{"type":43,"tag":194,"props":735,"children":736},{},[737],{"type":48,"value":738},"IAM roles (not users), least privilege, no long-lived credentials",{"type":43,"tag":194,"props":740,"children":741},{},[742],{"type":48,"value":743},"IAM users with access keys, overly broad policies",{"type":43,"tag":172,"props":745,"children":746},{},[747,752,757],{"type":43,"tag":194,"props":748,"children":749},{},[750],{"type":48,"value":751},"How do you protect data at rest?",{"type":43,"tag":194,"props":753,"children":754},{},[755],{"type":48,"value":756},"KMS encryption, S3 bucket policies, RDS encryption",{"type":43,"tag":194,"props":758,"children":759},{},[760],{"type":48,"value":761},"Unencrypted S3 buckets, unencrypted databases",{"type":43,"tag":172,"props":763,"children":764},{},[765,770,775],{"type":43,"tag":194,"props":766,"children":767},{},[768],{"type":48,"value":769},"How do you protect data in transit?",{"type":43,"tag":194,"props":771,"children":772},{},[773],{"type":48,"value":774},"TLS everywhere, certificate management (ACM)",{"type":43,"tag":194,"props":776,"children":777},{},[778],{"type":48,"value":779},"HTTP endpoints, self-signed certs in production",{"type":43,"tag":172,"props":781,"children":782},{},[783,788,793],{"type":43,"tag":194,"props":784,"children":785},{},[786],{"type":48,"value":787},"How do you detect threats?",{"type":43,"tag":194,"props":789,"children":790},{},[791],{"type":48,"value":792},"GuardDuty, Security Hub, Config rules, CloudTrail",{"type":43,"tag":194,"props":794,"children":795},{},[796],{"type":48,"value":797},"No GuardDuty, CloudTrail not enabled",{"type":43,"tag":172,"props":799,"children":800},{},[801,805,810],{"type":43,"tag":194,"props":802,"children":803},{},[804],{"type":48,"value":365},{"type":43,"tag":194,"props":806,"children":807},{},[808],{"type":48,"value":809},"Security incident runbooks, automated remediation",{"type":43,"tag":194,"props":811,"children":812},{},[813],{"type":48,"value":814},"No security incident process",{"type":43,"tag":395,"props":816,"children":818},{"className":397,"code":817,"language":399,"meta":400,"style":400},"# Check for IAM users with access keys (should be minimal)\naws iam list-users --query 'Users[].UserName' --output text | while read user; do\n  keys=$(aws iam list-access-keys --user-name $user --query 'AccessKeyMetadata[?Status==`Active`].AccessKeyId' --output text)\n  [ -n \"$keys\" ] && echo \"⚠️ $user has active access keys: $keys\"\ndone\n\n# Check S3 bucket encryption\naws s3api list-buckets --query 'Buckets[].Name' --output text | while read bucket; do\n  enc=$(aws s3api get-bucket-encryption --bucket $bucket 2>\u002Fdev\u002Fnull && echo \"encrypted\" || echo \"NOT ENCRYPTED\")\n  echo \"$bucket: $enc\"\ndone\n\n# Check GuardDuty status\naws guardduty list-detectors --query 'DetectorIds' --output text\n\n# Check Security Hub\naws securityhub describe-hub 2>\u002Fdev\u002Fnull && echo \"✅ Security Hub enabled\" || echo \"⚠️ Security Hub NOT enabled\"\n\n# Check CloudTrail\naws cloudtrail describe-trails --query 'trailList[].{Name:Name,IsMultiRegion:IsMultiRegionTrail,IsLogging:true}' --output table\n",[819],{"type":43,"tag":51,"props":820,"children":821},{"__ignoreMap":400},[822,830,905,972,1043,1051,1058,1066,1133,1224,1256,1264,1272,1281,1324,1331,1340,1408,1416,1425],{"type":43,"tag":406,"props":823,"children":824},{"class":408,"line":409},[825],{"type":43,"tag":406,"props":826,"children":827},{"style":413},[828],{"type":48,"value":829},"# Check for IAM users with access keys (should be minimal)\n",{"type":43,"tag":406,"props":831,"children":832},{"class":408,"line":419},[833,837,842,847,851,855,860,864,868,873,878,884,890,895,900],{"type":43,"tag":406,"props":834,"children":835},{"style":423},[836],{"type":48,"value":25},{"type":43,"tag":406,"props":838,"children":839},{"style":428},[840],{"type":48,"value":841}," iam",{"type":43,"tag":406,"props":843,"children":844},{"style":428},[845],{"type":48,"value":846}," list-users",{"type":43,"tag":406,"props":848,"children":849},{"style":428},[850],{"type":48,"value":441},{"type":43,"tag":406,"props":852,"children":853},{"style":444},[854],{"type":48,"value":447},{"type":43,"tag":406,"props":856,"children":857},{"style":428},[858],{"type":48,"value":859},"Users[].UserName",{"type":43,"tag":406,"props":861,"children":862},{"style":444},[863],{"type":48,"value":457},{"type":43,"tag":406,"props":865,"children":866},{"style":428},[867],{"type":48,"value":462},{"type":43,"tag":406,"props":869,"children":870},{"style":428},[871],{"type":48,"value":872}," text",{"type":43,"tag":406,"props":874,"children":875},{"style":444},[876],{"type":48,"value":877}," |",{"type":43,"tag":406,"props":879,"children":881},{"style":880},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[882],{"type":48,"value":883}," while",{"type":43,"tag":406,"props":885,"children":887},{"style":886},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[888],{"type":48,"value":889}," read",{"type":43,"tag":406,"props":891,"children":892},{"style":428},[893],{"type":48,"value":894}," user",{"type":43,"tag":406,"props":896,"children":897},{"style":444},[898],{"type":48,"value":899},";",{"type":43,"tag":406,"props":901,"children":902},{"style":880},[903],{"type":48,"value":904}," do\n",{"type":43,"tag":406,"props":906,"children":907},{"class":408,"line":470},[908,914,919,923,927,932,937,942,947,951,956,960,964,968],{"type":43,"tag":406,"props":909,"children":911},{"style":910},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[912],{"type":48,"value":913},"  keys",{"type":43,"tag":406,"props":915,"children":916},{"style":444},[917],{"type":48,"value":918},"=$(",{"type":43,"tag":406,"props":920,"children":921},{"style":423},[922],{"type":48,"value":25},{"type":43,"tag":406,"props":924,"children":925},{"style":428},[926],{"type":48,"value":841},{"type":43,"tag":406,"props":928,"children":929},{"style":428},[930],{"type":48,"value":931}," list-access-keys",{"type":43,"tag":406,"props":933,"children":934},{"style":428},[935],{"type":48,"value":936}," --user-name",{"type":43,"tag":406,"props":938,"children":939},{"style":910},[940],{"type":48,"value":941}," $user ",{"type":43,"tag":406,"props":943,"children":944},{"style":428},[945],{"type":48,"value":946},"--query",{"type":43,"tag":406,"props":948,"children":949},{"style":444},[950],{"type":48,"value":447},{"type":43,"tag":406,"props":952,"children":953},{"style":428},[954],{"type":48,"value":955},"AccessKeyMetadata[?Status==`Active`].AccessKeyId",{"type":43,"tag":406,"props":957,"children":958},{"style":444},[959],{"type":48,"value":457},{"type":43,"tag":406,"props":961,"children":962},{"style":428},[963],{"type":48,"value":462},{"type":43,"tag":406,"props":965,"children":966},{"style":428},[967],{"type":48,"value":872},{"type":43,"tag":406,"props":969,"children":970},{"style":444},[971],{"type":48,"value":611},{"type":43,"tag":406,"props":973,"children":974},{"class":408,"line":480},[975,980,985,990,995,1000,1005,1010,1015,1019,1024,1029,1034,1038],{"type":43,"tag":406,"props":976,"children":977},{"style":444},[978],{"type":48,"value":979},"  [",{"type":43,"tag":406,"props":981,"children":982},{"style":444},[983],{"type":48,"value":984}," -n",{"type":43,"tag":406,"props":986,"children":987},{"style":444},[988],{"type":48,"value":989}," \"",{"type":43,"tag":406,"props":991,"children":992},{"style":910},[993],{"type":48,"value":994},"$keys",{"type":43,"tag":406,"props":996,"children":997},{"style":444},[998],{"type":48,"value":999},"\"",{"type":43,"tag":406,"props":1001,"children":1002},{"style":444},[1003],{"type":48,"value":1004}," ]",{"type":43,"tag":406,"props":1006,"children":1007},{"style":444},[1008],{"type":48,"value":1009}," &&",{"type":43,"tag":406,"props":1011,"children":1012},{"style":886},[1013],{"type":48,"value":1014}," echo",{"type":43,"tag":406,"props":1016,"children":1017},{"style":444},[1018],{"type":48,"value":989},{"type":43,"tag":406,"props":1020,"children":1021},{"style":428},[1022],{"type":48,"value":1023},"⚠️ ",{"type":43,"tag":406,"props":1025,"children":1026},{"style":910},[1027],{"type":48,"value":1028},"$user",{"type":43,"tag":406,"props":1030,"children":1031},{"style":428},[1032],{"type":48,"value":1033}," has active access keys: ",{"type":43,"tag":406,"props":1035,"children":1036},{"style":910},[1037],{"type":48,"value":994},{"type":43,"tag":406,"props":1039,"children":1040},{"style":444},[1041],{"type":48,"value":1042},"\"\n",{"type":43,"tag":406,"props":1044,"children":1045},{"class":408,"line":489},[1046],{"type":43,"tag":406,"props":1047,"children":1048},{"style":880},[1049],{"type":48,"value":1050},"done\n",{"type":43,"tag":406,"props":1052,"children":1053},{"class":408,"line":614},[1054],{"type":43,"tag":406,"props":1055,"children":1056},{"emptyLinePlaceholder":474},[1057],{"type":48,"value":477},{"type":43,"tag":406,"props":1059,"children":1060},{"class":408,"line":622},[1061],{"type":43,"tag":406,"props":1062,"children":1063},{"style":413},[1064],{"type":48,"value":1065},"# Check S3 bucket encryption\n",{"type":43,"tag":406,"props":1067,"children":1068},{"class":408,"line":631},[1069,1073,1078,1083,1087,1091,1096,1100,1104,1108,1112,1116,1120,1125,1129],{"type":43,"tag":406,"props":1070,"children":1071},{"style":423},[1072],{"type":48,"value":25},{"type":43,"tag":406,"props":1074,"children":1075},{"style":428},[1076],{"type":48,"value":1077}," s3api",{"type":43,"tag":406,"props":1079,"children":1080},{"style":428},[1081],{"type":48,"value":1082}," list-buckets",{"type":43,"tag":406,"props":1084,"children":1085},{"style":428},[1086],{"type":48,"value":441},{"type":43,"tag":406,"props":1088,"children":1089},{"style":444},[1090],{"type":48,"value":447},{"type":43,"tag":406,"props":1092,"children":1093},{"style":428},[1094],{"type":48,"value":1095},"Buckets[].Name",{"type":43,"tag":406,"props":1097,"children":1098},{"style":444},[1099],{"type":48,"value":457},{"type":43,"tag":406,"props":1101,"children":1102},{"style":428},[1103],{"type":48,"value":462},{"type":43,"tag":406,"props":1105,"children":1106},{"style":428},[1107],{"type":48,"value":872},{"type":43,"tag":406,"props":1109,"children":1110},{"style":444},[1111],{"type":48,"value":877},{"type":43,"tag":406,"props":1113,"children":1114},{"style":880},[1115],{"type":48,"value":883},{"type":43,"tag":406,"props":1117,"children":1118},{"style":886},[1119],{"type":48,"value":889},{"type":43,"tag":406,"props":1121,"children":1122},{"style":428},[1123],{"type":48,"value":1124}," bucket",{"type":43,"tag":406,"props":1126,"children":1127},{"style":444},[1128],{"type":48,"value":899},{"type":43,"tag":406,"props":1130,"children":1131},{"style":880},[1132],{"type":48,"value":904},{"type":43,"tag":406,"props":1134,"children":1136},{"class":408,"line":1135},9,[1137,1142,1146,1150,1154,1159,1164,1169,1174,1178,1182,1186,1190,1195,1199,1203,1207,1211,1216,1220],{"type":43,"tag":406,"props":1138,"children":1139},{"style":910},[1140],{"type":48,"value":1141},"  enc",{"type":43,"tag":406,"props":1143,"children":1144},{"style":444},[1145],{"type":48,"value":918},{"type":43,"tag":406,"props":1147,"children":1148},{"style":423},[1149],{"type":48,"value":25},{"type":43,"tag":406,"props":1151,"children":1152},{"style":428},[1153],{"type":48,"value":1077},{"type":43,"tag":406,"props":1155,"children":1156},{"style":428},[1157],{"type":48,"value":1158}," get-bucket-encryption",{"type":43,"tag":406,"props":1160,"children":1161},{"style":428},[1162],{"type":48,"value":1163}," --bucket",{"type":43,"tag":406,"props":1165,"children":1166},{"style":910},[1167],{"type":48,"value":1168}," $bucket ",{"type":43,"tag":406,"props":1170,"children":1171},{"style":444},[1172],{"type":48,"value":1173},"2>",{"type":43,"tag":406,"props":1175,"children":1176},{"style":428},[1177],{"type":48,"value":544},{"type":43,"tag":406,"props":1179,"children":1180},{"style":444},[1181],{"type":48,"value":1009},{"type":43,"tag":406,"props":1183,"children":1184},{"style":886},[1185],{"type":48,"value":1014},{"type":43,"tag":406,"props":1187,"children":1188},{"style":444},[1189],{"type":48,"value":989},{"type":43,"tag":406,"props":1191,"children":1192},{"style":428},[1193],{"type":48,"value":1194},"encrypted",{"type":43,"tag":406,"props":1196,"children":1197},{"style":444},[1198],{"type":48,"value":999},{"type":43,"tag":406,"props":1200,"children":1201},{"style":444},[1202],{"type":48,"value":549},{"type":43,"tag":406,"props":1204,"children":1205},{"style":886},[1206],{"type":48,"value":1014},{"type":43,"tag":406,"props":1208,"children":1209},{"style":444},[1210],{"type":48,"value":989},{"type":43,"tag":406,"props":1212,"children":1213},{"style":428},[1214],{"type":48,"value":1215},"NOT ENCRYPTED",{"type":43,"tag":406,"props":1217,"children":1218},{"style":444},[1219],{"type":48,"value":999},{"type":43,"tag":406,"props":1221,"children":1222},{"style":444},[1223],{"type":48,"value":611},{"type":43,"tag":406,"props":1225,"children":1227},{"class":408,"line":1226},10,[1228,1233,1237,1242,1247,1252],{"type":43,"tag":406,"props":1229,"children":1230},{"style":886},[1231],{"type":48,"value":1232},"  echo",{"type":43,"tag":406,"props":1234,"children":1235},{"style":444},[1236],{"type":48,"value":989},{"type":43,"tag":406,"props":1238,"children":1239},{"style":910},[1240],{"type":48,"value":1241},"$bucket",{"type":43,"tag":406,"props":1243,"children":1244},{"style":428},[1245],{"type":48,"value":1246},": ",{"type":43,"tag":406,"props":1248,"children":1249},{"style":910},[1250],{"type":48,"value":1251},"$enc",{"type":43,"tag":406,"props":1253,"children":1254},{"style":444},[1255],{"type":48,"value":1042},{"type":43,"tag":406,"props":1257,"children":1259},{"class":408,"line":1258},11,[1260],{"type":43,"tag":406,"props":1261,"children":1262},{"style":880},[1263],{"type":48,"value":1050},{"type":43,"tag":406,"props":1265,"children":1267},{"class":408,"line":1266},12,[1268],{"type":43,"tag":406,"props":1269,"children":1270},{"emptyLinePlaceholder":474},[1271],{"type":48,"value":477},{"type":43,"tag":406,"props":1273,"children":1275},{"class":408,"line":1274},13,[1276],{"type":43,"tag":406,"props":1277,"children":1278},{"style":413},[1279],{"type":48,"value":1280},"# Check GuardDuty status\n",{"type":43,"tag":406,"props":1282,"children":1283},{"class":408,"line":26},[1284,1288,1293,1298,1302,1306,1311,1315,1319],{"type":43,"tag":406,"props":1285,"children":1286},{"style":423},[1287],{"type":48,"value":25},{"type":43,"tag":406,"props":1289,"children":1290},{"style":428},[1291],{"type":48,"value":1292}," guardduty",{"type":43,"tag":406,"props":1294,"children":1295},{"style":428},[1296],{"type":48,"value":1297}," list-detectors",{"type":43,"tag":406,"props":1299,"children":1300},{"style":428},[1301],{"type":48,"value":441},{"type":43,"tag":406,"props":1303,"children":1304},{"style":444},[1305],{"type":48,"value":447},{"type":43,"tag":406,"props":1307,"children":1308},{"style":428},[1309],{"type":48,"value":1310},"DetectorIds",{"type":43,"tag":406,"props":1312,"children":1313},{"style":444},[1314],{"type":48,"value":457},{"type":43,"tag":406,"props":1316,"children":1317},{"style":428},[1318],{"type":48,"value":462},{"type":43,"tag":406,"props":1320,"children":1321},{"style":428},[1322],{"type":48,"value":1323}," text\n",{"type":43,"tag":406,"props":1325,"children":1326},{"class":408,"line":30},[1327],{"type":43,"tag":406,"props":1328,"children":1329},{"emptyLinePlaceholder":474},[1330],{"type":48,"value":477},{"type":43,"tag":406,"props":1332,"children":1334},{"class":408,"line":1333},16,[1335],{"type":43,"tag":406,"props":1336,"children":1337},{"style":413},[1338],{"type":48,"value":1339},"# Check Security Hub\n",{"type":43,"tag":406,"props":1341,"children":1343},{"class":408,"line":1342},17,[1344,1348,1353,1358,1362,1366,1370,1374,1378,1383,1387,1391,1395,1399,1404],{"type":43,"tag":406,"props":1345,"children":1346},{"style":423},[1347],{"type":48,"value":25},{"type":43,"tag":406,"props":1349,"children":1350},{"style":428},[1351],{"type":48,"value":1352}," securityhub",{"type":43,"tag":406,"props":1354,"children":1355},{"style":428},[1356],{"type":48,"value":1357}," describe-hub",{"type":43,"tag":406,"props":1359,"children":1360},{"style":444},[1361],{"type":48,"value":539},{"type":43,"tag":406,"props":1363,"children":1364},{"style":428},[1365],{"type":48,"value":544},{"type":43,"tag":406,"props":1367,"children":1368},{"style":444},[1369],{"type":48,"value":1009},{"type":43,"tag":406,"props":1371,"children":1372},{"style":886},[1373],{"type":48,"value":1014},{"type":43,"tag":406,"props":1375,"children":1376},{"style":444},[1377],{"type":48,"value":989},{"type":43,"tag":406,"props":1379,"children":1380},{"style":428},[1381],{"type":48,"value":1382},"✅ Security Hub enabled",{"type":43,"tag":406,"props":1384,"children":1385},{"style":444},[1386],{"type":48,"value":999},{"type":43,"tag":406,"props":1388,"children":1389},{"style":444},[1390],{"type":48,"value":549},{"type":43,"tag":406,"props":1392,"children":1393},{"style":886},[1394],{"type":48,"value":1014},{"type":43,"tag":406,"props":1396,"children":1397},{"style":444},[1398],{"type":48,"value":989},{"type":43,"tag":406,"props":1400,"children":1401},{"style":428},[1402],{"type":48,"value":1403},"⚠️ Security Hub NOT enabled",{"type":43,"tag":406,"props":1405,"children":1406},{"style":444},[1407],{"type":48,"value":1042},{"type":43,"tag":406,"props":1409,"children":1411},{"class":408,"line":1410},18,[1412],{"type":43,"tag":406,"props":1413,"children":1414},{"emptyLinePlaceholder":474},[1415],{"type":48,"value":477},{"type":43,"tag":406,"props":1417,"children":1419},{"class":408,"line":1418},19,[1420],{"type":43,"tag":406,"props":1421,"children":1422},{"style":413},[1423],{"type":48,"value":1424},"# Check CloudTrail\n",{"type":43,"tag":406,"props":1426,"children":1428},{"class":408,"line":1427},20,[1429,1433,1438,1443,1447,1451,1456,1460,1464],{"type":43,"tag":406,"props":1430,"children":1431},{"style":423},[1432],{"type":48,"value":25},{"type":43,"tag":406,"props":1434,"children":1435},{"style":428},[1436],{"type":48,"value":1437}," cloudtrail",{"type":43,"tag":406,"props":1439,"children":1440},{"style":428},[1441],{"type":48,"value":1442}," describe-trails",{"type":43,"tag":406,"props":1444,"children":1445},{"style":428},[1446],{"type":48,"value":441},{"type":43,"tag":406,"props":1448,"children":1449},{"style":444},[1450],{"type":48,"value":447},{"type":43,"tag":406,"props":1452,"children":1453},{"style":428},[1454],{"type":48,"value":1455},"trailList[].{Name:Name,IsMultiRegion:IsMultiRegionTrail,IsLogging:true}",{"type":43,"tag":406,"props":1457,"children":1458},{"style":444},[1459],{"type":48,"value":457},{"type":43,"tag":406,"props":1461,"children":1462},{"style":428},[1463],{"type":48,"value":462},{"type":43,"tag":406,"props":1465,"children":1466},{"style":428},[1467],{"type":48,"value":467},{"type":43,"tag":279,"props":1469,"children":1471},{"id":1470},"_3-reliability",[1472],{"type":48,"value":1473},"3. Reliability",{"type":43,"tag":44,"props":1475,"children":1476},{},[1477,1481],{"type":43,"tag":75,"props":1478,"children":1479},{},[1480],{"type":48,"value":292},{"type":48,"value":1482},": Automatically recover from failure, test recovery procedures, scale horizontally, stop guessing capacity, manage change in automation.",{"type":43,"tag":164,"props":1484,"children":1485},{},[1486,1504],{"type":43,"tag":168,"props":1487,"children":1488},{},[1489],{"type":43,"tag":172,"props":1490,"children":1491},{},[1492,1496,1500],{"type":43,"tag":176,"props":1493,"children":1494},{},[1495],{"type":48,"value":308},{"type":43,"tag":176,"props":1497,"children":1498},{},[1499],{"type":48,"value":313},{"type":43,"tag":176,"props":1501,"children":1502},{},[1503],{"type":48,"value":318},{"type":43,"tag":187,"props":1505,"children":1506},{},[1507,1525,1543,1561],{"type":43,"tag":172,"props":1508,"children":1509},{},[1510,1515,1520],{"type":43,"tag":194,"props":1511,"children":1512},{},[1513],{"type":48,"value":1514},"How do you handle failures?",{"type":43,"tag":194,"props":1516,"children":1517},{},[1518],{"type":48,"value":1519},"Multi-AZ deployments, health checks, auto-recovery",{"type":43,"tag":194,"props":1521,"children":1522},{},[1523],{"type":48,"value":1524},"Single-AZ, no health checks",{"type":43,"tag":172,"props":1526,"children":1527},{},[1528,1533,1538],{"type":43,"tag":194,"props":1529,"children":1530},{},[1531],{"type":48,"value":1532},"How do you scale?",{"type":43,"tag":194,"props":1534,"children":1535},{},[1536],{"type":48,"value":1537},"Auto Scaling, serverless, queue-based decoupling",{"type":43,"tag":194,"props":1539,"children":1540},{},[1541],{"type":48,"value":1542},"Manual scaling, fixed capacity",{"type":43,"tag":172,"props":1544,"children":1545},{},[1546,1551,1556],{"type":43,"tag":194,"props":1547,"children":1548},{},[1549],{"type":48,"value":1550},"How do you back up data?",{"type":43,"tag":194,"props":1552,"children":1553},{},[1554],{"type":48,"value":1555},"Automated backups, cross-region replication, tested restores",{"type":43,"tag":194,"props":1557,"children":1558},{},[1559],{"type":48,"value":1560},"No backups, never tested restore",{"type":43,"tag":172,"props":1562,"children":1563},{},[1564,1569,1574],{"type":43,"tag":194,"props":1565,"children":1566},{},[1567],{"type":48,"value":1568},"What's your DR strategy?",{"type":43,"tag":194,"props":1570,"children":1571},{},[1572],{"type":48,"value":1573},"Defined RTO\u002FRPO, DR environment, tested failover",{"type":43,"tag":194,"props":1575,"children":1576},{},[1577],{"type":48,"value":1578},"No DR plan, untested failover",{"type":43,"tag":395,"props":1580,"children":1582},{"className":397,"code":1581,"language":399,"meta":400,"style":400},"# Check Multi-AZ RDS\naws rds describe-db-instances --query 'DBInstances[].{Name:DBInstanceIdentifier,MultiAZ:MultiAZ,Engine:Engine}' --output table\n\n# Check Auto Scaling Groups\naws autoscaling describe-auto-scaling-groups --query 'AutoScalingGroups[].{Name:AutoScalingGroupName,Min:MinSize,Max:MaxSize,Desired:DesiredCapacity}' --output table\n\n# Check ELB health checks\naws elbv2 describe-target-groups --query 'TargetGroups[].{Name:TargetGroupName,Protocol:Protocol,HealthCheck:HealthCheckPath}' --output table\n\n# Check backup retention\naws rds describe-db-instances --query 'DBInstances[].{Name:DBInstanceIdentifier,BackupRetention:BackupRetentionPeriod}' --output table\n",[1583],{"type":43,"tag":51,"props":1584,"children":1585},{"__ignoreMap":400},[1586,1594,1636,1643,1651,1693,1700,1708,1750,1757,1765],{"type":43,"tag":406,"props":1587,"children":1588},{"class":408,"line":409},[1589],{"type":43,"tag":406,"props":1590,"children":1591},{"style":413},[1592],{"type":48,"value":1593},"# Check Multi-AZ RDS\n",{"type":43,"tag":406,"props":1595,"children":1596},{"class":408,"line":419},[1597,1601,1606,1611,1615,1619,1624,1628,1632],{"type":43,"tag":406,"props":1598,"children":1599},{"style":423},[1600],{"type":48,"value":25},{"type":43,"tag":406,"props":1602,"children":1603},{"style":428},[1604],{"type":48,"value":1605}," rds",{"type":43,"tag":406,"props":1607,"children":1608},{"style":428},[1609],{"type":48,"value":1610}," describe-db-instances",{"type":43,"tag":406,"props":1612,"children":1613},{"style":428},[1614],{"type":48,"value":441},{"type":43,"tag":406,"props":1616,"children":1617},{"style":444},[1618],{"type":48,"value":447},{"type":43,"tag":406,"props":1620,"children":1621},{"style":428},[1622],{"type":48,"value":1623},"DBInstances[].{Name:DBInstanceIdentifier,MultiAZ:MultiAZ,Engine:Engine}",{"type":43,"tag":406,"props":1625,"children":1626},{"style":444},[1627],{"type":48,"value":457},{"type":43,"tag":406,"props":1629,"children":1630},{"style":428},[1631],{"type":48,"value":462},{"type":43,"tag":406,"props":1633,"children":1634},{"style":428},[1635],{"type":48,"value":467},{"type":43,"tag":406,"props":1637,"children":1638},{"class":408,"line":470},[1639],{"type":43,"tag":406,"props":1640,"children":1641},{"emptyLinePlaceholder":474},[1642],{"type":48,"value":477},{"type":43,"tag":406,"props":1644,"children":1645},{"class":408,"line":480},[1646],{"type":43,"tag":406,"props":1647,"children":1648},{"style":413},[1649],{"type":48,"value":1650},"# Check Auto Scaling Groups\n",{"type":43,"tag":406,"props":1652,"children":1653},{"class":408,"line":489},[1654,1658,1663,1668,1672,1676,1681,1685,1689],{"type":43,"tag":406,"props":1655,"children":1656},{"style":423},[1657],{"type":48,"value":25},{"type":43,"tag":406,"props":1659,"children":1660},{"style":428},[1661],{"type":48,"value":1662}," autoscaling",{"type":43,"tag":406,"props":1664,"children":1665},{"style":428},[1666],{"type":48,"value":1667}," describe-auto-scaling-groups",{"type":43,"tag":406,"props":1669,"children":1670},{"style":428},[1671],{"type":48,"value":441},{"type":43,"tag":406,"props":1673,"children":1674},{"style":444},[1675],{"type":48,"value":447},{"type":43,"tag":406,"props":1677,"children":1678},{"style":428},[1679],{"type":48,"value":1680},"AutoScalingGroups[].{Name:AutoScalingGroupName,Min:MinSize,Max:MaxSize,Desired:DesiredCapacity}",{"type":43,"tag":406,"props":1682,"children":1683},{"style":444},[1684],{"type":48,"value":457},{"type":43,"tag":406,"props":1686,"children":1687},{"style":428},[1688],{"type":48,"value":462},{"type":43,"tag":406,"props":1690,"children":1691},{"style":428},[1692],{"type":48,"value":467},{"type":43,"tag":406,"props":1694,"children":1695},{"class":408,"line":614},[1696],{"type":43,"tag":406,"props":1697,"children":1698},{"emptyLinePlaceholder":474},[1699],{"type":48,"value":477},{"type":43,"tag":406,"props":1701,"children":1702},{"class":408,"line":622},[1703],{"type":43,"tag":406,"props":1704,"children":1705},{"style":413},[1706],{"type":48,"value":1707},"# Check ELB health checks\n",{"type":43,"tag":406,"props":1709,"children":1710},{"class":408,"line":631},[1711,1715,1720,1725,1729,1733,1738,1742,1746],{"type":43,"tag":406,"props":1712,"children":1713},{"style":423},[1714],{"type":48,"value":25},{"type":43,"tag":406,"props":1716,"children":1717},{"style":428},[1718],{"type":48,"value":1719}," elbv2",{"type":43,"tag":406,"props":1721,"children":1722},{"style":428},[1723],{"type":48,"value":1724}," describe-target-groups",{"type":43,"tag":406,"props":1726,"children":1727},{"style":428},[1728],{"type":48,"value":441},{"type":43,"tag":406,"props":1730,"children":1731},{"style":444},[1732],{"type":48,"value":447},{"type":43,"tag":406,"props":1734,"children":1735},{"style":428},[1736],{"type":48,"value":1737},"TargetGroups[].{Name:TargetGroupName,Protocol:Protocol,HealthCheck:HealthCheckPath}",{"type":43,"tag":406,"props":1739,"children":1740},{"style":444},[1741],{"type":48,"value":457},{"type":43,"tag":406,"props":1743,"children":1744},{"style":428},[1745],{"type":48,"value":462},{"type":43,"tag":406,"props":1747,"children":1748},{"style":428},[1749],{"type":48,"value":467},{"type":43,"tag":406,"props":1751,"children":1752},{"class":408,"line":1135},[1753],{"type":43,"tag":406,"props":1754,"children":1755},{"emptyLinePlaceholder":474},[1756],{"type":48,"value":477},{"type":43,"tag":406,"props":1758,"children":1759},{"class":408,"line":1226},[1760],{"type":43,"tag":406,"props":1761,"children":1762},{"style":413},[1763],{"type":48,"value":1764},"# Check backup retention\n",{"type":43,"tag":406,"props":1766,"children":1767},{"class":408,"line":1258},[1768,1772,1776,1780,1784,1788,1793,1797,1801],{"type":43,"tag":406,"props":1769,"children":1770},{"style":423},[1771],{"type":48,"value":25},{"type":43,"tag":406,"props":1773,"children":1774},{"style":428},[1775],{"type":48,"value":1605},{"type":43,"tag":406,"props":1777,"children":1778},{"style":428},[1779],{"type":48,"value":1610},{"type":43,"tag":406,"props":1781,"children":1782},{"style":428},[1783],{"type":48,"value":441},{"type":43,"tag":406,"props":1785,"children":1786},{"style":444},[1787],{"type":48,"value":447},{"type":43,"tag":406,"props":1789,"children":1790},{"style":428},[1791],{"type":48,"value":1792},"DBInstances[].{Name:DBInstanceIdentifier,BackupRetention:BackupRetentionPeriod}",{"type":43,"tag":406,"props":1794,"children":1795},{"style":444},[1796],{"type":48,"value":457},{"type":43,"tag":406,"props":1798,"children":1799},{"style":428},[1800],{"type":48,"value":462},{"type":43,"tag":406,"props":1802,"children":1803},{"style":428},[1804],{"type":48,"value":467},{"type":43,"tag":279,"props":1806,"children":1808},{"id":1807},"_4-performance-efficiency",[1809],{"type":48,"value":1810},"4. Performance Efficiency",{"type":43,"tag":44,"props":1812,"children":1813},{},[1814,1818],{"type":43,"tag":75,"props":1815,"children":1816},{},[1817],{"type":48,"value":292},{"type":48,"value":1819},": Democratize advanced technologies, go global in minutes, use serverless architectures, experiment more often, consider mechanical sympathy.",{"type":43,"tag":164,"props":1821,"children":1822},{},[1823,1841],{"type":43,"tag":168,"props":1824,"children":1825},{},[1826],{"type":43,"tag":172,"props":1827,"children":1828},{},[1829,1833,1837],{"type":43,"tag":176,"props":1830,"children":1831},{},[1832],{"type":48,"value":308},{"type":43,"tag":176,"props":1834,"children":1835},{},[1836],{"type":48,"value":313},{"type":43,"tag":176,"props":1838,"children":1839},{},[1840],{"type":48,"value":318},{"type":43,"tag":187,"props":1842,"children":1843},{},[1844,1862,1880,1898],{"type":43,"tag":172,"props":1845,"children":1846},{},[1847,1852,1857],{"type":43,"tag":194,"props":1848,"children":1849},{},[1850],{"type":48,"value":1851},"Right compute for workload?",{"type":43,"tag":194,"props":1853,"children":1854},{},[1855],{"type":48,"value":1856},"Instance type matches workload profile, Graviton considered",{"type":43,"tag":194,"props":1858,"children":1859},{},[1860],{"type":48,"value":1861},"Over-provisioned, x86 when ARM works",{"type":43,"tag":172,"props":1863,"children":1864},{},[1865,1870,1875],{"type":43,"tag":194,"props":1866,"children":1867},{},[1868],{"type":48,"value":1869},"Using caching?",{"type":43,"tag":194,"props":1871,"children":1872},{},[1873],{"type":48,"value":1874},"CloudFront, ElastiCache, DAX where appropriate",{"type":43,"tag":194,"props":1876,"children":1877},{},[1878],{"type":48,"value":1879},"No caching, hitting database for every request",{"type":43,"tag":172,"props":1881,"children":1882},{},[1883,1888,1893],{"type":43,"tag":194,"props":1884,"children":1885},{},[1886],{"type":48,"value":1887},"Database right-sized?",{"type":43,"tag":194,"props":1889,"children":1890},{},[1891],{"type":48,"value":1892},"Instance class matches query patterns, read replicas where needed",{"type":43,"tag":194,"props":1894,"children":1895},{},[1896],{"type":48,"value":1897},"Single oversized instance handling everything",{"type":43,"tag":172,"props":1899,"children":1900},{},[1901,1906,1911],{"type":43,"tag":194,"props":1902,"children":1903},{},[1904],{"type":48,"value":1905},"Using managed services?",{"type":43,"tag":194,"props":1907,"children":1908},{},[1909],{"type":48,"value":1910},"Serverless where possible, managed over self-hosted",{"type":43,"tag":194,"props":1912,"children":1913},{},[1914],{"type":48,"value":1915},"Self-hosting what AWS offers managed",{"type":43,"tag":395,"props":1917,"children":1919},{"className":397,"code":1918,"language":399,"meta":400,"style":400},"# Check instance types (look for previous-gen or over-provisioned)\naws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,State:State.Name}' --output table\n\n# Check for Graviton adoption\naws ec2 describe-instances --filters \"Name=instance-type,Values=*g*\" --query 'Reservations[].Instances[].InstanceType' --output text | wc -w\n\n# Check Lambda memory settings (often under-provisioned)\naws lambda list-functions --query 'Functions[].{Name:FunctionName,Memory:MemorySize,Runtime:Runtime}' --output table\n",[1920],{"type":43,"tag":51,"props":1921,"children":1922},{"__ignoreMap":400},[1923,1931,1973,1980,1988,2060,2067,2075],{"type":43,"tag":406,"props":1924,"children":1925},{"class":408,"line":409},[1926],{"type":43,"tag":406,"props":1927,"children":1928},{"style":413},[1929],{"type":48,"value":1930},"# Check instance types (look for previous-gen or over-provisioned)\n",{"type":43,"tag":406,"props":1932,"children":1933},{"class":408,"line":419},[1934,1938,1943,1948,1952,1956,1961,1965,1969],{"type":43,"tag":406,"props":1935,"children":1936},{"style":423},[1937],{"type":48,"value":25},{"type":43,"tag":406,"props":1939,"children":1940},{"style":428},[1941],{"type":48,"value":1942}," ec2",{"type":43,"tag":406,"props":1944,"children":1945},{"style":428},[1946],{"type":48,"value":1947}," describe-instances",{"type":43,"tag":406,"props":1949,"children":1950},{"style":428},[1951],{"type":48,"value":441},{"type":43,"tag":406,"props":1953,"children":1954},{"style":444},[1955],{"type":48,"value":447},{"type":43,"tag":406,"props":1957,"children":1958},{"style":428},[1959],{"type":48,"value":1960},"Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,State:State.Name}",{"type":43,"tag":406,"props":1962,"children":1963},{"style":444},[1964],{"type":48,"value":457},{"type":43,"tag":406,"props":1966,"children":1967},{"style":428},[1968],{"type":48,"value":462},{"type":43,"tag":406,"props":1970,"children":1971},{"style":428},[1972],{"type":48,"value":467},{"type":43,"tag":406,"props":1974,"children":1975},{"class":408,"line":470},[1976],{"type":43,"tag":406,"props":1977,"children":1978},{"emptyLinePlaceholder":474},[1979],{"type":48,"value":477},{"type":43,"tag":406,"props":1981,"children":1982},{"class":408,"line":480},[1983],{"type":43,"tag":406,"props":1984,"children":1985},{"style":413},[1986],{"type":48,"value":1987},"# Check for Graviton adoption\n",{"type":43,"tag":406,"props":1989,"children":1990},{"class":408,"line":489},[1991,1995,1999,2003,2008,2012,2017,2021,2025,2029,2034,2038,2042,2046,2050,2055],{"type":43,"tag":406,"props":1992,"children":1993},{"style":423},[1994],{"type":48,"value":25},{"type":43,"tag":406,"props":1996,"children":1997},{"style":428},[1998],{"type":48,"value":1942},{"type":43,"tag":406,"props":2000,"children":2001},{"style":428},[2002],{"type":48,"value":1947},{"type":43,"tag":406,"props":2004,"children":2005},{"style":428},[2006],{"type":48,"value":2007}," --filters",{"type":43,"tag":406,"props":2009,"children":2010},{"style":444},[2011],{"type":48,"value":989},{"type":43,"tag":406,"props":2013,"children":2014},{"style":428},[2015],{"type":48,"value":2016},"Name=instance-type,Values=*g*",{"type":43,"tag":406,"props":2018,"children":2019},{"style":444},[2020],{"type":48,"value":999},{"type":43,"tag":406,"props":2022,"children":2023},{"style":428},[2024],{"type":48,"value":441},{"type":43,"tag":406,"props":2026,"children":2027},{"style":444},[2028],{"type":48,"value":447},{"type":43,"tag":406,"props":2030,"children":2031},{"style":428},[2032],{"type":48,"value":2033},"Reservations[].Instances[].InstanceType",{"type":43,"tag":406,"props":2035,"children":2036},{"style":444},[2037],{"type":48,"value":457},{"type":43,"tag":406,"props":2039,"children":2040},{"style":428},[2041],{"type":48,"value":462},{"type":43,"tag":406,"props":2043,"children":2044},{"style":428},[2045],{"type":48,"value":872},{"type":43,"tag":406,"props":2047,"children":2048},{"style":444},[2049],{"type":48,"value":877},{"type":43,"tag":406,"props":2051,"children":2052},{"style":423},[2053],{"type":48,"value":2054}," wc",{"type":43,"tag":406,"props":2056,"children":2057},{"style":428},[2058],{"type":48,"value":2059}," -w\n",{"type":43,"tag":406,"props":2061,"children":2062},{"class":408,"line":614},[2063],{"type":43,"tag":406,"props":2064,"children":2065},{"emptyLinePlaceholder":474},[2066],{"type":48,"value":477},{"type":43,"tag":406,"props":2068,"children":2069},{"class":408,"line":622},[2070],{"type":43,"tag":406,"props":2071,"children":2072},{"style":413},[2073],{"type":48,"value":2074},"# Check Lambda memory settings (often under-provisioned)\n",{"type":43,"tag":406,"props":2076,"children":2077},{"class":408,"line":631},[2078,2082,2087,2092,2096,2100,2105,2109,2113],{"type":43,"tag":406,"props":2079,"children":2080},{"style":423},[2081],{"type":48,"value":25},{"type":43,"tag":406,"props":2083,"children":2084},{"style":428},[2085],{"type":48,"value":2086}," lambda",{"type":43,"tag":406,"props":2088,"children":2089},{"style":428},[2090],{"type":48,"value":2091}," list-functions",{"type":43,"tag":406,"props":2093,"children":2094},{"style":428},[2095],{"type":48,"value":441},{"type":43,"tag":406,"props":2097,"children":2098},{"style":444},[2099],{"type":48,"value":447},{"type":43,"tag":406,"props":2101,"children":2102},{"style":428},[2103],{"type":48,"value":2104},"Functions[].{Name:FunctionName,Memory:MemorySize,Runtime:Runtime}",{"type":43,"tag":406,"props":2106,"children":2107},{"style":444},[2108],{"type":48,"value":457},{"type":43,"tag":406,"props":2110,"children":2111},{"style":428},[2112],{"type":48,"value":462},{"type":43,"tag":406,"props":2114,"children":2115},{"style":428},[2116],{"type":48,"value":467},{"type":43,"tag":279,"props":2118,"children":2120},{"id":2119},"_5-cost-optimization",[2121],{"type":48,"value":2122},"5. Cost Optimization",{"type":43,"tag":44,"props":2124,"children":2125},{},[2126,2130],{"type":43,"tag":75,"props":2127,"children":2128},{},[2129],{"type":48,"value":292},{"type":48,"value":2131},": Implement cloud financial management, adopt a consumption model, measure overall efficiency, stop spending money on undifferentiated heavy lifting, analyze and attribute expenditure.",{"type":43,"tag":164,"props":2133,"children":2134},{},[2135,2153],{"type":43,"tag":168,"props":2136,"children":2137},{},[2138],{"type":43,"tag":172,"props":2139,"children":2140},{},[2141,2145,2149],{"type":43,"tag":176,"props":2142,"children":2143},{},[2144],{"type":48,"value":308},{"type":43,"tag":176,"props":2146,"children":2147},{},[2148],{"type":48,"value":313},{"type":43,"tag":176,"props":2150,"children":2151},{},[2152],{"type":48,"value":318},{"type":43,"tag":187,"props":2154,"children":2155},{},[2156,2174,2192,2210],{"type":43,"tag":172,"props":2157,"children":2158},{},[2159,2164,2169],{"type":43,"tag":194,"props":2160,"children":2161},{},[2162],{"type":48,"value":2163},"Do you know your costs?",{"type":43,"tag":194,"props":2165,"children":2166},{},[2167],{"type":48,"value":2168},"Cost Explorer, Budgets with alerts, cost allocation tags",{"type":43,"tag":194,"props":2170,"children":2171},{},[2172],{"type":48,"value":2173},"No budgets, no cost visibility",{"type":43,"tag":172,"props":2175,"children":2176},{},[2177,2182,2187],{"type":43,"tag":194,"props":2178,"children":2179},{},[2180],{"type":48,"value":2181},"Using pricing models?",{"type":43,"tag":194,"props":2183,"children":2184},{},[2185],{"type":48,"value":2186},"Savings Plans, Reserved Instances, Spot for fault-tolerant",{"type":43,"tag":194,"props":2188,"children":2189},{},[2190],{"type":48,"value":2191},"All on-demand for steady-state workloads",{"type":43,"tag":172,"props":2193,"children":2194},{},[2195,2200,2205],{"type":43,"tag":194,"props":2196,"children":2197},{},[2198],{"type":48,"value":2199},"Right-sized?",{"type":43,"tag":194,"props":2201,"children":2202},{},[2203],{"type":48,"value":2204},"Resources match actual utilization",{"type":43,"tag":194,"props":2206,"children":2207},{},[2208],{"type":48,"value":2209},"Over-provisioned (\u003C 20% CPU average)",{"type":43,"tag":172,"props":2211,"children":2212},{},[2213,2218,2223],{"type":43,"tag":194,"props":2214,"children":2215},{},[2216],{"type":48,"value":2217},"Eliminating waste?",{"type":43,"tag":194,"props":2219,"children":2220},{},[2221],{"type":48,"value":2222},"Unused resources cleaned up, lifecycle policies on storage",{"type":43,"tag":194,"props":2224,"children":2225},{},[2226],{"type":48,"value":2227},"Orphaned EBS volumes, idle load balancers",{"type":43,"tag":395,"props":2229,"children":2231},{"className":397,"code":2230,"language":399,"meta":400,"style":400},"# Check for unattached EBS volumes (waste)\naws ec2 describe-volumes --filters \"Name=status,Values=available\" --query 'Volumes[].{ID:VolumeId,Size:Size,Type:VolumeType}' --output table\n\n# Check for idle load balancers\naws elbv2 describe-load-balancers --query 'LoadBalancers[].{Name:LoadBalancerName,State:State.Code}' --output table\n\n# Check Savings Plans coverage\naws ce get-savings-plans-coverage --time-period Start=$(date -u -v-30d +%Y-%m-%d 2>\u002Fdev\u002Fnull || date -u -d '30 days ago' +%Y-%m-%d),End=$(date -u +%Y-%m-%d) --query 'SavingsPlansCoverages[-1].Coverage'\n\n# Check for AWS Budgets\naws budgets describe-budgets --account-id $(aws sts get-caller-identity --query Account --output text) --query 'Budgets[].{Name:BudgetName,Limit:BudgetLimit.Amount,Actual:CalculatedSpend.ActualSpend.Amount}' --output table\n",[2232],{"type":43,"tag":51,"props":2233,"children":2234},{"__ignoreMap":400},[2235,2243,2301,2308,2316,2357,2364,2372,2510,2517,2525],{"type":43,"tag":406,"props":2236,"children":2237},{"class":408,"line":409},[2238],{"type":43,"tag":406,"props":2239,"children":2240},{"style":413},[2241],{"type":48,"value":2242},"# Check for unattached EBS volumes (waste)\n",{"type":43,"tag":406,"props":2244,"children":2245},{"class":408,"line":419},[2246,2250,2254,2259,2263,2267,2272,2276,2280,2284,2289,2293,2297],{"type":43,"tag":406,"props":2247,"children":2248},{"style":423},[2249],{"type":48,"value":25},{"type":43,"tag":406,"props":2251,"children":2252},{"style":428},[2253],{"type":48,"value":1942},{"type":43,"tag":406,"props":2255,"children":2256},{"style":428},[2257],{"type":48,"value":2258}," describe-volumes",{"type":43,"tag":406,"props":2260,"children":2261},{"style":428},[2262],{"type":48,"value":2007},{"type":43,"tag":406,"props":2264,"children":2265},{"style":444},[2266],{"type":48,"value":989},{"type":43,"tag":406,"props":2268,"children":2269},{"style":428},[2270],{"type":48,"value":2271},"Name=status,Values=available",{"type":43,"tag":406,"props":2273,"children":2274},{"style":444},[2275],{"type":48,"value":999},{"type":43,"tag":406,"props":2277,"children":2278},{"style":428},[2279],{"type":48,"value":441},{"type":43,"tag":406,"props":2281,"children":2282},{"style":444},[2283],{"type":48,"value":447},{"type":43,"tag":406,"props":2285,"children":2286},{"style":428},[2287],{"type":48,"value":2288},"Volumes[].{ID:VolumeId,Size:Size,Type:VolumeType}",{"type":43,"tag":406,"props":2290,"children":2291},{"style":444},[2292],{"type":48,"value":457},{"type":43,"tag":406,"props":2294,"children":2295},{"style":428},[2296],{"type":48,"value":462},{"type":43,"tag":406,"props":2298,"children":2299},{"style":428},[2300],{"type":48,"value":467},{"type":43,"tag":406,"props":2302,"children":2303},{"class":408,"line":470},[2304],{"type":43,"tag":406,"props":2305,"children":2306},{"emptyLinePlaceholder":474},[2307],{"type":48,"value":477},{"type":43,"tag":406,"props":2309,"children":2310},{"class":408,"line":480},[2311],{"type":43,"tag":406,"props":2312,"children":2313},{"style":413},[2314],{"type":48,"value":2315},"# Check for idle load balancers\n",{"type":43,"tag":406,"props":2317,"children":2318},{"class":408,"line":489},[2319,2323,2327,2332,2336,2340,2345,2349,2353],{"type":43,"tag":406,"props":2320,"children":2321},{"style":423},[2322],{"type":48,"value":25},{"type":43,"tag":406,"props":2324,"children":2325},{"style":428},[2326],{"type":48,"value":1719},{"type":43,"tag":406,"props":2328,"children":2329},{"style":428},[2330],{"type":48,"value":2331}," describe-load-balancers",{"type":43,"tag":406,"props":2333,"children":2334},{"style":428},[2335],{"type":48,"value":441},{"type":43,"tag":406,"props":2337,"children":2338},{"style":444},[2339],{"type":48,"value":447},{"type":43,"tag":406,"props":2341,"children":2342},{"style":428},[2343],{"type":48,"value":2344},"LoadBalancers[].{Name:LoadBalancerName,State:State.Code}",{"type":43,"tag":406,"props":2346,"children":2347},{"style":444},[2348],{"type":48,"value":457},{"type":43,"tag":406,"props":2350,"children":2351},{"style":428},[2352],{"type":48,"value":462},{"type":43,"tag":406,"props":2354,"children":2355},{"style":428},[2356],{"type":48,"value":467},{"type":43,"tag":406,"props":2358,"children":2359},{"class":408,"line":614},[2360],{"type":43,"tag":406,"props":2361,"children":2362},{"emptyLinePlaceholder":474},[2363],{"type":48,"value":477},{"type":43,"tag":406,"props":2365,"children":2366},{"class":408,"line":622},[2367],{"type":43,"tag":406,"props":2368,"children":2369},{"style":413},[2370],{"type":48,"value":2371},"# Check Savings Plans coverage\n",{"type":43,"tag":406,"props":2373,"children":2374},{"class":408,"line":631},[2375,2379,2384,2389,2394,2399,2404,2408,2412,2417,2422,2426,2430,2434,2438,2442,2446,2450,2455,2459,2463,2467,2472,2476,2480,2484,2488,2492,2496,2500,2505],{"type":43,"tag":406,"props":2376,"children":2377},{"style":423},[2378],{"type":48,"value":25},{"type":43,"tag":406,"props":2380,"children":2381},{"style":428},[2382],{"type":48,"value":2383}," ce",{"type":43,"tag":406,"props":2385,"children":2386},{"style":428},[2387],{"type":48,"value":2388}," get-savings-plans-coverage",{"type":43,"tag":406,"props":2390,"children":2391},{"style":428},[2392],{"type":48,"value":2393}," --time-period",{"type":43,"tag":406,"props":2395,"children":2396},{"style":428},[2397],{"type":48,"value":2398}," Start=",{"type":43,"tag":406,"props":2400,"children":2401},{"style":444},[2402],{"type":48,"value":2403},"$(",{"type":43,"tag":406,"props":2405,"children":2406},{"style":423},[2407],{"type":48,"value":519},{"type":43,"tag":406,"props":2409,"children":2410},{"style":428},[2411],{"type":48,"value":524},{"type":43,"tag":406,"props":2413,"children":2414},{"style":428},[2415],{"type":48,"value":2416}," -v-30d",{"type":43,"tag":406,"props":2418,"children":2419},{"style":428},[2420],{"type":48,"value":2421}," +%Y-%m-%d",{"type":43,"tag":406,"props":2423,"children":2424},{"style":444},[2425],{"type":48,"value":539},{"type":43,"tag":406,"props":2427,"children":2428},{"style":428},[2429],{"type":48,"value":544},{"type":43,"tag":406,"props":2431,"children":2432},{"style":444},[2433],{"type":48,"value":549},{"type":43,"tag":406,"props":2435,"children":2436},{"style":423},[2437],{"type":48,"value":554},{"type":43,"tag":406,"props":2439,"children":2440},{"style":428},[2441],{"type":48,"value":524},{"type":43,"tag":406,"props":2443,"children":2444},{"style":428},[2445],{"type":48,"value":563},{"type":43,"tag":406,"props":2447,"children":2448},{"style":444},[2449],{"type":48,"value":447},{"type":43,"tag":406,"props":2451,"children":2452},{"style":428},[2453],{"type":48,"value":2454},"30 days ago",{"type":43,"tag":406,"props":2456,"children":2457},{"style":444},[2458],{"type":48,"value":457},{"type":43,"tag":406,"props":2460,"children":2461},{"style":428},[2462],{"type":48,"value":2421},{"type":43,"tag":406,"props":2464,"children":2465},{"style":444},[2466],{"type":48,"value":585},{"type":43,"tag":406,"props":2468,"children":2469},{"style":428},[2470],{"type":48,"value":2471},",End=",{"type":43,"tag":406,"props":2473,"children":2474},{"style":444},[2475],{"type":48,"value":2403},{"type":43,"tag":406,"props":2477,"children":2478},{"style":423},[2479],{"type":48,"value":519},{"type":43,"tag":406,"props":2481,"children":2482},{"style":428},[2483],{"type":48,"value":524},{"type":43,"tag":406,"props":2485,"children":2486},{"style":428},[2487],{"type":48,"value":2421},{"type":43,"tag":406,"props":2489,"children":2490},{"style":444},[2491],{"type":48,"value":585},{"type":43,"tag":406,"props":2493,"children":2494},{"style":428},[2495],{"type":48,"value":441},{"type":43,"tag":406,"props":2497,"children":2498},{"style":444},[2499],{"type":48,"value":447},{"type":43,"tag":406,"props":2501,"children":2502},{"style":428},[2503],{"type":48,"value":2504},"SavingsPlansCoverages[-1].Coverage",{"type":43,"tag":406,"props":2506,"children":2507},{"style":444},[2508],{"type":48,"value":2509},"'\n",{"type":43,"tag":406,"props":2511,"children":2512},{"class":408,"line":1135},[2513],{"type":43,"tag":406,"props":2514,"children":2515},{"emptyLinePlaceholder":474},[2516],{"type":48,"value":477},{"type":43,"tag":406,"props":2518,"children":2519},{"class":408,"line":1226},[2520],{"type":43,"tag":406,"props":2521,"children":2522},{"style":413},[2523],{"type":48,"value":2524},"# Check for AWS Budgets\n",{"type":43,"tag":406,"props":2526,"children":2527},{"class":408,"line":1258},[2528,2532,2537,2542,2547,2551,2555,2560,2565,2569,2574,2578,2582,2586,2590,2594,2599,2603,2607],{"type":43,"tag":406,"props":2529,"children":2530},{"style":423},[2531],{"type":48,"value":25},{"type":43,"tag":406,"props":2533,"children":2534},{"style":428},[2535],{"type":48,"value":2536}," budgets",{"type":43,"tag":406,"props":2538,"children":2539},{"style":428},[2540],{"type":48,"value":2541}," describe-budgets",{"type":43,"tag":406,"props":2543,"children":2544},{"style":428},[2545],{"type":48,"value":2546}," --account-id",{"type":43,"tag":406,"props":2548,"children":2549},{"style":444},[2550],{"type":48,"value":514},{"type":43,"tag":406,"props":2552,"children":2553},{"style":423},[2554],{"type":48,"value":25},{"type":43,"tag":406,"props":2556,"children":2557},{"style":428},[2558],{"type":48,"value":2559}," sts",{"type":43,"tag":406,"props":2561,"children":2562},{"style":428},[2563],{"type":48,"value":2564}," get-caller-identity",{"type":43,"tag":406,"props":2566,"children":2567},{"style":428},[2568],{"type":48,"value":441},{"type":43,"tag":406,"props":2570,"children":2571},{"style":428},[2572],{"type":48,"value":2573}," Account",{"type":43,"tag":406,"props":2575,"children":2576},{"style":428},[2577],{"type":48,"value":462},{"type":43,"tag":406,"props":2579,"children":2580},{"style":428},[2581],{"type":48,"value":872},{"type":43,"tag":406,"props":2583,"children":2584},{"style":444},[2585],{"type":48,"value":585},{"type":43,"tag":406,"props":2587,"children":2588},{"style":428},[2589],{"type":48,"value":441},{"type":43,"tag":406,"props":2591,"children":2592},{"style":444},[2593],{"type":48,"value":447},{"type":43,"tag":406,"props":2595,"children":2596},{"style":428},[2597],{"type":48,"value":2598},"Budgets[].{Name:BudgetName,Limit:BudgetLimit.Amount,Actual:CalculatedSpend.ActualSpend.Amount}",{"type":43,"tag":406,"props":2600,"children":2601},{"style":444},[2602],{"type":48,"value":457},{"type":43,"tag":406,"props":2604,"children":2605},{"style":428},[2606],{"type":48,"value":462},{"type":43,"tag":406,"props":2608,"children":2609},{"style":428},[2610],{"type":48,"value":467},{"type":43,"tag":279,"props":2612,"children":2614},{"id":2613},"_6-sustainability",[2615],{"type":48,"value":2616},"6. Sustainability",{"type":43,"tag":44,"props":2618,"children":2619},{},[2620,2624],{"type":43,"tag":75,"props":2621,"children":2622},{},[2623],{"type":48,"value":292},{"type":48,"value":2625},": Understand your impact, establish sustainability goals, maximize utilization, anticipate and adopt new more efficient offerings, use managed services, reduce downstream impact.",{"type":43,"tag":164,"props":2627,"children":2628},{},[2629,2647],{"type":43,"tag":168,"props":2630,"children":2631},{},[2632],{"type":43,"tag":172,"props":2633,"children":2634},{},[2635,2639,2643],{"type":43,"tag":176,"props":2636,"children":2637},{},[2638],{"type":48,"value":308},{"type":43,"tag":176,"props":2640,"children":2641},{},[2642],{"type":48,"value":313},{"type":43,"tag":176,"props":2644,"children":2645},{},[2646],{"type":48,"value":318},{"type":43,"tag":187,"props":2648,"children":2649},{},[2650,2667,2685],{"type":43,"tag":172,"props":2651,"children":2652},{},[2653,2657,2662],{"type":43,"tag":194,"props":2654,"children":2655},{},[2656],{"type":48,"value":1905},{"type":43,"tag":194,"props":2658,"children":2659},{},[2660],{"type":48,"value":2661},"Serverless, managed databases, managed containers",{"type":43,"tag":194,"props":2663,"children":2664},{},[2665],{"type":48,"value":2666},"Self-hosting everything on EC2",{"type":43,"tag":172,"props":2668,"children":2669},{},[2670,2675,2680],{"type":43,"tag":194,"props":2671,"children":2672},{},[2673],{"type":48,"value":2674},"Right-sized resources?",{"type":43,"tag":194,"props":2676,"children":2677},{},[2678],{"type":48,"value":2679},"Resources match actual demand, auto-scaling active",{"type":43,"tag":194,"props":2681,"children":2682},{},[2683],{"type":48,"value":2684},"Over-provisioned \"just in case\"",{"type":43,"tag":172,"props":2686,"children":2687},{},[2688,2693,2698],{"type":43,"tag":194,"props":2689,"children":2690},{},[2691],{"type":48,"value":2692},"Minimizing data movement?",{"type":43,"tag":194,"props":2694,"children":2695},{},[2696],{"type":48,"value":2697},"Edge caching, regional deployments, efficient queries",{"type":43,"tag":194,"props":2699,"children":2700},{},[2701],{"type":48,"value":2702},"Cross-region data transfers, no caching",{"type":43,"tag":60,"props":2704,"children":2706},{"id":2705},"specialty-lenses",[2707],{"type":48,"value":2708},"Specialty Lenses",{"type":43,"tag":44,"props":2710,"children":2711},{},[2712,2714,2719],{"type":48,"value":2713},"The Well-Architected Framework also provides specialty lenses for specific workload types. Use the ",{"type":43,"tag":51,"props":2715,"children":2717},{"className":2716},[],[2718],{"type":48,"value":56},{"type":48,"value":2720}," MCP tools to access lens content when available.",{"type":43,"tag":164,"props":2722,"children":2723},{},[2724,2740],{"type":43,"tag":168,"props":2725,"children":2726},{},[2727],{"type":43,"tag":172,"props":2728,"children":2729},{},[2730,2735],{"type":43,"tag":176,"props":2731,"children":2732},{},[2733],{"type":48,"value":2734},"Lens",{"type":43,"tag":176,"props":2736,"children":2737},{},[2738],{"type":48,"value":2739},"When to Apply",{"type":43,"tag":187,"props":2741,"children":2742},{},[2743,2759,2775,2791,2807,2823,2839,2855,2871,2887],{"type":43,"tag":172,"props":2744,"children":2745},{},[2746,2754],{"type":43,"tag":194,"props":2747,"children":2748},{},[2749],{"type":43,"tag":75,"props":2750,"children":2751},{},[2752],{"type":48,"value":2753},"Serverless",{"type":43,"tag":194,"props":2755,"children":2756},{},[2757],{"type":48,"value":2758},"Lambda, API Gateway, Step Functions, DynamoDB workloads",{"type":43,"tag":172,"props":2760,"children":2761},{},[2762,2770],{"type":43,"tag":194,"props":2763,"children":2764},{},[2765],{"type":43,"tag":75,"props":2766,"children":2767},{},[2768],{"type":48,"value":2769},"SaaS",{"type":43,"tag":194,"props":2771,"children":2772},{},[2773],{"type":48,"value":2774},"Multi-tenant SaaS applications",{"type":43,"tag":172,"props":2776,"children":2777},{},[2778,2786],{"type":43,"tag":194,"props":2779,"children":2780},{},[2781],{"type":43,"tag":75,"props":2782,"children":2783},{},[2784],{"type":48,"value":2785},"Machine Learning",{"type":43,"tag":194,"props":2787,"children":2788},{},[2789],{"type":48,"value":2790},"ML training and inference workloads",{"type":43,"tag":172,"props":2792,"children":2793},{},[2794,2802],{"type":43,"tag":194,"props":2795,"children":2796},{},[2797],{"type":43,"tag":75,"props":2798,"children":2799},{},[2800],{"type":48,"value":2801},"Data Analytics",{"type":43,"tag":194,"props":2803,"children":2804},{},[2805],{"type":48,"value":2806},"Data lake, warehouse, streaming analytics",{"type":43,"tag":172,"props":2808,"children":2809},{},[2810,2818],{"type":43,"tag":194,"props":2811,"children":2812},{},[2813],{"type":43,"tag":75,"props":2814,"children":2815},{},[2816],{"type":48,"value":2817},"IoT",{"type":43,"tag":194,"props":2819,"children":2820},{},[2821],{"type":48,"value":2822},"IoT device management and data processing",{"type":43,"tag":172,"props":2824,"children":2825},{},[2826,2834],{"type":43,"tag":194,"props":2827,"children":2828},{},[2829],{"type":43,"tag":75,"props":2830,"children":2831},{},[2832],{"type":48,"value":2833},"Financial Services",{"type":43,"tag":194,"props":2835,"children":2836},{},[2837],{"type":48,"value":2838},"Regulated financial workloads",{"type":43,"tag":172,"props":2840,"children":2841},{},[2842,2850],{"type":43,"tag":194,"props":2843,"children":2844},{},[2845],{"type":43,"tag":75,"props":2846,"children":2847},{},[2848],{"type":48,"value":2849},"Healthcare",{"type":43,"tag":194,"props":2851,"children":2852},{},[2853],{"type":48,"value":2854},"HIPAA-compliant healthcare workloads",{"type":43,"tag":172,"props":2856,"children":2857},{},[2858,2866],{"type":43,"tag":194,"props":2859,"children":2860},{},[2861],{"type":43,"tag":75,"props":2862,"children":2863},{},[2864],{"type":48,"value":2865},"Games",{"type":43,"tag":194,"props":2867,"children":2868},{},[2869],{"type":48,"value":2870},"Game server and real-time multiplayer",{"type":43,"tag":172,"props":2872,"children":2873},{},[2874,2882],{"type":43,"tag":194,"props":2875,"children":2876},{},[2877],{"type":43,"tag":75,"props":2878,"children":2879},{},[2880],{"type":48,"value":2881},"Container Build",{"type":43,"tag":194,"props":2883,"children":2884},{},[2885],{"type":48,"value":2886},"Container-based application deployment",{"type":43,"tag":172,"props":2888,"children":2889},{},[2890,2898],{"type":43,"tag":194,"props":2891,"children":2892},{},[2893],{"type":43,"tag":75,"props":2894,"children":2895},{},[2896],{"type":48,"value":2897},"Hybrid Networking",{"type":43,"tag":194,"props":2899,"children":2900},{},[2901],{"type":48,"value":2902},"On-prem to cloud connectivity",{"type":43,"tag":60,"props":2904,"children":2906},{"id":2905},"mcp-integration",[2907],{"type":48,"value":2908},"MCP Integration",{"type":43,"tag":44,"props":2910,"children":2911},{},[2912,2914,2919],{"type":48,"value":2913},"This skill works best with the ",{"type":43,"tag":51,"props":2915,"children":2917},{"className":2916},[],[2918],{"type":48,"value":56},{"type":48,"value":2920}," MCP server, which provides API access to:",{"type":43,"tag":2922,"props":2923,"children":2924},"ul",{},[2925,2930,2935,2940,2945],{"type":43,"tag":71,"props":2926,"children":2927},{},[2928],{"type":48,"value":2929},"List and describe workloads in the WA Tool",{"type":43,"tag":71,"props":2931,"children":2932},{},[2933],{"type":48,"value":2934},"List available lenses and their questions",{"type":43,"tag":71,"props":2936,"children":2937},{},[2938],{"type":48,"value":2939},"Get best practice recommendations per pillar",{"type":43,"tag":71,"props":2941,"children":2942},{},[2943],{"type":48,"value":2944},"Retrieve risk assessments and improvement plans",{"type":43,"tag":71,"props":2946,"children":2947},{},[2948],{"type":48,"value":2949},"Access official AWS Well-Architected content",{"type":43,"tag":44,"props":2951,"children":2952},{},[2953],{"type":48,"value":2954},"When the MCP is available, use it to:",{"type":43,"tag":67,"props":2956,"children":2957},{},[2958,2968,2978,2988],{"type":43,"tag":71,"props":2959,"children":2960},{},[2961,2966],{"type":43,"tag":75,"props":2962,"children":2963},{},[2964],{"type":48,"value":2965},"List workloads",{"type":48,"value":2967},": See what's already tracked in the WA Tool",{"type":43,"tag":71,"props":2969,"children":2970},{},[2971,2976],{"type":43,"tag":75,"props":2972,"children":2973},{},[2974],{"type":48,"value":2975},"Get lens content",{"type":48,"value":2977},": Pull official questions and best practices",{"type":43,"tag":71,"props":2979,"children":2980},{},[2981,2986],{"type":43,"tag":75,"props":2982,"children":2983},{},[2984],{"type":48,"value":2985},"Check risks",{"type":48,"value":2987},": Query existing risk assessments",{"type":43,"tag":71,"props":2989,"children":2990},{},[2991,2996],{"type":43,"tag":75,"props":2992,"children":2993},{},[2994],{"type":48,"value":2995},"Pull milestones",{"type":48,"value":2997},": Review improvement progress over time",{"type":43,"tag":395,"props":2999,"children":3001},{"className":397,"code":3000,"language":399,"meta":400,"style":400},"# Alternatively, use AWS CLI directly:\n# List workloads in WA Tool\naws wellarchitected list-workloads --query 'WorkloadSummaries[].{Name:WorkloadName,RiskCounts:RiskCounts,Updated:UpdatedAt}' --output table\n\n# Get workload details\naws wellarchitected get-workload --workload-id WORKLOAD_ID\n\n# List available lenses\naws wellarchitected list-lenses --query 'LensSummaries[].{Name:LensName,Version:LensVersion}' --output table\n\n# List answers for a pillar\naws wellarchitected list-answers --workload-id WORKLOAD_ID --lens-alias wellarchitected --pillar-id operationalExcellence\n",[3002],{"type":43,"tag":51,"props":3003,"children":3004},{"__ignoreMap":400},[3005,3013,3021,3063,3070,3078,3104,3111,3119,3160,3167,3175],{"type":43,"tag":406,"props":3006,"children":3007},{"class":408,"line":409},[3008],{"type":43,"tag":406,"props":3009,"children":3010},{"style":413},[3011],{"type":48,"value":3012},"# Alternatively, use AWS CLI directly:\n",{"type":43,"tag":406,"props":3014,"children":3015},{"class":408,"line":419},[3016],{"type":43,"tag":406,"props":3017,"children":3018},{"style":413},[3019],{"type":48,"value":3020},"# List workloads in WA Tool\n",{"type":43,"tag":406,"props":3022,"children":3023},{"class":408,"line":470},[3024,3028,3033,3038,3042,3046,3051,3055,3059],{"type":43,"tag":406,"props":3025,"children":3026},{"style":423},[3027],{"type":48,"value":25},{"type":43,"tag":406,"props":3029,"children":3030},{"style":428},[3031],{"type":48,"value":3032}," wellarchitected",{"type":43,"tag":406,"props":3034,"children":3035},{"style":428},[3036],{"type":48,"value":3037}," list-workloads",{"type":43,"tag":406,"props":3039,"children":3040},{"style":428},[3041],{"type":48,"value":441},{"type":43,"tag":406,"props":3043,"children":3044},{"style":444},[3045],{"type":48,"value":447},{"type":43,"tag":406,"props":3047,"children":3048},{"style":428},[3049],{"type":48,"value":3050},"WorkloadSummaries[].{Name:WorkloadName,RiskCounts:RiskCounts,Updated:UpdatedAt}",{"type":43,"tag":406,"props":3052,"children":3053},{"style":444},[3054],{"type":48,"value":457},{"type":43,"tag":406,"props":3056,"children":3057},{"style":428},[3058],{"type":48,"value":462},{"type":43,"tag":406,"props":3060,"children":3061},{"style":428},[3062],{"type":48,"value":467},{"type":43,"tag":406,"props":3064,"children":3065},{"class":408,"line":480},[3066],{"type":43,"tag":406,"props":3067,"children":3068},{"emptyLinePlaceholder":474},[3069],{"type":48,"value":477},{"type":43,"tag":406,"props":3071,"children":3072},{"class":408,"line":489},[3073],{"type":43,"tag":406,"props":3074,"children":3075},{"style":413},[3076],{"type":48,"value":3077},"# Get workload details\n",{"type":43,"tag":406,"props":3079,"children":3080},{"class":408,"line":614},[3081,3085,3089,3094,3099],{"type":43,"tag":406,"props":3082,"children":3083},{"style":423},[3084],{"type":48,"value":25},{"type":43,"tag":406,"props":3086,"children":3087},{"style":428},[3088],{"type":48,"value":3032},{"type":43,"tag":406,"props":3090,"children":3091},{"style":428},[3092],{"type":48,"value":3093}," get-workload",{"type":43,"tag":406,"props":3095,"children":3096},{"style":428},[3097],{"type":48,"value":3098}," --workload-id",{"type":43,"tag":406,"props":3100,"children":3101},{"style":428},[3102],{"type":48,"value":3103}," WORKLOAD_ID\n",{"type":43,"tag":406,"props":3105,"children":3106},{"class":408,"line":622},[3107],{"type":43,"tag":406,"props":3108,"children":3109},{"emptyLinePlaceholder":474},[3110],{"type":48,"value":477},{"type":43,"tag":406,"props":3112,"children":3113},{"class":408,"line":631},[3114],{"type":43,"tag":406,"props":3115,"children":3116},{"style":413},[3117],{"type":48,"value":3118},"# List available lenses\n",{"type":43,"tag":406,"props":3120,"children":3121},{"class":408,"line":1135},[3122,3126,3130,3135,3139,3143,3148,3152,3156],{"type":43,"tag":406,"props":3123,"children":3124},{"style":423},[3125],{"type":48,"value":25},{"type":43,"tag":406,"props":3127,"children":3128},{"style":428},[3129],{"type":48,"value":3032},{"type":43,"tag":406,"props":3131,"children":3132},{"style":428},[3133],{"type":48,"value":3134}," list-lenses",{"type":43,"tag":406,"props":3136,"children":3137},{"style":428},[3138],{"type":48,"value":441},{"type":43,"tag":406,"props":3140,"children":3141},{"style":444},[3142],{"type":48,"value":447},{"type":43,"tag":406,"props":3144,"children":3145},{"style":428},[3146],{"type":48,"value":3147},"LensSummaries[].{Name:LensName,Version:LensVersion}",{"type":43,"tag":406,"props":3149,"children":3150},{"style":444},[3151],{"type":48,"value":457},{"type":43,"tag":406,"props":3153,"children":3154},{"style":428},[3155],{"type":48,"value":462},{"type":43,"tag":406,"props":3157,"children":3158},{"style":428},[3159],{"type":48,"value":467},{"type":43,"tag":406,"props":3161,"children":3162},{"class":408,"line":1226},[3163],{"type":43,"tag":406,"props":3164,"children":3165},{"emptyLinePlaceholder":474},[3166],{"type":48,"value":477},{"type":43,"tag":406,"props":3168,"children":3169},{"class":408,"line":1258},[3170],{"type":43,"tag":406,"props":3171,"children":3172},{"style":413},[3173],{"type":48,"value":3174},"# List answers for a pillar\n",{"type":43,"tag":406,"props":3176,"children":3177},{"class":408,"line":1266},[3178,3182,3186,3191,3195,3200,3205,3209,3214],{"type":43,"tag":406,"props":3179,"children":3180},{"style":423},[3181],{"type":48,"value":25},{"type":43,"tag":406,"props":3183,"children":3184},{"style":428},[3185],{"type":48,"value":3032},{"type":43,"tag":406,"props":3187,"children":3188},{"style":428},[3189],{"type":48,"value":3190}," list-answers",{"type":43,"tag":406,"props":3192,"children":3193},{"style":428},[3194],{"type":48,"value":3098},{"type":43,"tag":406,"props":3196,"children":3197},{"style":428},[3198],{"type":48,"value":3199}," WORKLOAD_ID",{"type":43,"tag":406,"props":3201,"children":3202},{"style":428},[3203],{"type":48,"value":3204}," --lens-alias",{"type":43,"tag":406,"props":3206,"children":3207},{"style":428},[3208],{"type":48,"value":3032},{"type":43,"tag":406,"props":3210,"children":3211},{"style":428},[3212],{"type":48,"value":3213}," --pillar-id",{"type":43,"tag":406,"props":3215,"children":3216},{"style":428},[3217],{"type":48,"value":3218}," operationalExcellence\n",{"type":43,"tag":60,"props":3220,"children":3222},{"id":3221},"risk-rating-system",[3223],{"type":48,"value":3224},"Risk Rating System",{"type":43,"tag":44,"props":3226,"children":3227},{},[3228],{"type":48,"value":3229},"Rate each finding:",{"type":43,"tag":164,"props":3231,"children":3232},{},[3233,3254],{"type":43,"tag":168,"props":3234,"children":3235},{},[3236],{"type":43,"tag":172,"props":3237,"children":3238},{},[3239,3244,3249],{"type":43,"tag":176,"props":3240,"children":3241},{},[3242],{"type":48,"value":3243},"Rating",{"type":43,"tag":176,"props":3245,"children":3246},{},[3247],{"type":48,"value":3248},"Meaning",{"type":43,"tag":176,"props":3250,"children":3251},{},[3252],{"type":48,"value":3253},"Action",{"type":43,"tag":187,"props":3255,"children":3256},{},[3257,3280,3303,3326],{"type":43,"tag":172,"props":3258,"children":3259},{},[3260,3270,3275],{"type":43,"tag":194,"props":3261,"children":3262},{},[3263,3268],{"type":43,"tag":75,"props":3264,"children":3265},{},[3266],{"type":48,"value":3267},"HRI",{"type":48,"value":3269}," (High Risk Issue)",{"type":43,"tag":194,"props":3271,"children":3272},{},[3273],{"type":48,"value":3274},"Immediate risk to workload",{"type":43,"tag":194,"props":3276,"children":3277},{},[3278],{"type":48,"value":3279},"Fix within 30 days",{"type":43,"tag":172,"props":3281,"children":3282},{},[3283,3293,3298],{"type":43,"tag":194,"props":3284,"children":3285},{},[3286,3291],{"type":43,"tag":75,"props":3287,"children":3288},{},[3289],{"type":48,"value":3290},"MRI",{"type":48,"value":3292}," (Medium Risk Issue)",{"type":43,"tag":194,"props":3294,"children":3295},{},[3296],{"type":48,"value":3297},"Potential risk, not immediate",{"type":43,"tag":194,"props":3299,"children":3300},{},[3301],{"type":48,"value":3302},"Fix within 90 days",{"type":43,"tag":172,"props":3304,"children":3305},{},[3306,3316,3321],{"type":43,"tag":194,"props":3307,"children":3308},{},[3309,3314],{"type":43,"tag":75,"props":3310,"children":3311},{},[3312],{"type":48,"value":3313},"LRI",{"type":48,"value":3315}," (Low Risk Issue)",{"type":43,"tag":194,"props":3317,"children":3318},{},[3319],{"type":48,"value":3320},"Improvement opportunity",{"type":43,"tag":194,"props":3322,"children":3323},{},[3324],{"type":48,"value":3325},"Plan for next quarter",{"type":43,"tag":172,"props":3327,"children":3328},{},[3329,3339,3344],{"type":43,"tag":194,"props":3330,"children":3331},{},[3332,3337],{"type":43,"tag":75,"props":3333,"children":3334},{},[3335],{"type":48,"value":3336},"NI",{"type":48,"value":3338}," (No Issue)",{"type":43,"tag":194,"props":3340,"children":3341},{},[3342],{"type":48,"value":3343},"Best practice followed",{"type":43,"tag":194,"props":3345,"children":3346},{},[3347],{"type":48,"value":3348},"No action needed",{"type":43,"tag":60,"props":3350,"children":3352},{"id":3351},"output-format",[3353],{"type":48,"value":3354},"Output Format",{"type":43,"tag":44,"props":3356,"children":3357},{},[3358],{"type":48,"value":3359},"Structure every Well-Architected review as:",{"type":43,"tag":67,"props":3361,"children":3362},{},[3363,3373,3383,3421,3431,3441],{"type":43,"tag":71,"props":3364,"children":3365},{},[3366,3371],{"type":43,"tag":75,"props":3367,"children":3368},{},[3369],{"type":48,"value":3370},"Workload Summary",{"type":48,"value":3372},": Name, criticality, scope of review",{"type":43,"tag":71,"props":3374,"children":3375},{},[3376,3381],{"type":43,"tag":75,"props":3377,"children":3378},{},[3379],{"type":48,"value":3380},"Pillar Scores",{"type":48,"value":3382},": Rating per pillar (HRI count, MRI count, NI count)",{"type":43,"tag":71,"props":3384,"children":3385},{},[3386,3391,3393],{"type":43,"tag":75,"props":3387,"children":3388},{},[3389],{"type":48,"value":3390},"High-Risk Issues",{"type":48,"value":3392},": Detailed list with:\n",{"type":43,"tag":2922,"props":3394,"children":3395},{},[3396,3401,3406,3411,3416],{"type":43,"tag":71,"props":3397,"children":3398},{},[3399],{"type":48,"value":3400},"Pillar and question reference",{"type":43,"tag":71,"props":3402,"children":3403},{},[3404],{"type":48,"value":3405},"Current state (what's wrong)",{"type":43,"tag":71,"props":3407,"children":3408},{},[3409],{"type":48,"value":3410},"Recommended state (what should be)",{"type":43,"tag":71,"props":3412,"children":3413},{},[3414],{"type":48,"value":3415},"Remediation steps (how to fix)",{"type":43,"tag":71,"props":3417,"children":3418},{},[3419],{"type":48,"value":3420},"Effort estimate (Low \u002F Medium \u002F High)",{"type":43,"tag":71,"props":3422,"children":3423},{},[3424,3429],{"type":43,"tag":75,"props":3425,"children":3426},{},[3427],{"type":48,"value":3428},"Medium-Risk Issues",{"type":48,"value":3430},": Same format, lower priority",{"type":43,"tag":71,"props":3432,"children":3433},{},[3434,3439],{"type":43,"tag":75,"props":3435,"children":3436},{},[3437],{"type":48,"value":3438},"Improvement Plan",{"type":48,"value":3440},": Prioritized actions ordered by risk × effort",{"type":43,"tag":71,"props":3442,"children":3443},{},[3444,3449],{"type":43,"tag":75,"props":3445,"children":3446},{},[3447],{"type":48,"value":3448},"Next Review Date",{"type":48,"value":3450},": Recommended cadence (quarterly for production, annually for dev)",{"type":43,"tag":60,"props":3452,"children":3454},{"id":3453},"references",[3455],{"type":48,"value":3456},"References",{"type":43,"tag":44,"props":3458,"children":3459},{},[3460,3462,3468],{"type":48,"value":3461},"For the complete official framework content (all design principles verbatim, best practice areas per pillar, WA Tool CLI commands, and specialty lens catalog), see ",{"type":43,"tag":3463,"props":3464,"children":3466},"a",{"href":3465},"references\u002Fframework.md",[3467],{"type":48,"value":3465},{"type":48,"value":3469},".",{"type":43,"tag":60,"props":3471,"children":3473},{"id":3472},"anti-patterns",[3474],{"type":48,"value":3475},"Anti-Patterns",{"type":43,"tag":67,"props":3477,"children":3478},{},[3479,3489,3499,3509,3519,3529],{"type":43,"tag":71,"props":3480,"children":3481},{},[3482,3487],{"type":43,"tag":75,"props":3483,"children":3484},{},[3485],{"type":48,"value":3486},"Treating WA reviews as checkbox exercises",{"type":48,"value":3488},": Each question should prompt real discussion about the workload. Checking \"yes\" without evidence is worse than \"no\" with a plan.",{"type":43,"tag":71,"props":3490,"children":3491},{},[3492,3497],{"type":43,"tag":75,"props":3493,"children":3494},{},[3495],{"type":48,"value":3496},"Reviewing once and forgetting",{"type":48,"value":3498},": Well-Architected reviews should be recurring (quarterly for critical workloads). Architecture evolves; so should your review.",{"type":43,"tag":71,"props":3500,"children":3501},{},[3502,3507],{"type":43,"tag":75,"props":3503,"children":3504},{},[3505],{"type":48,"value":3506},"Boiling the ocean",{"type":48,"value":3508},": Don't try to fix every finding at once. Prioritize HRIs, then MRIs. Some LRIs are acceptable risk.",{"type":43,"tag":71,"props":3510,"children":3511},{},[3512,3517],{"type":43,"tag":75,"props":3513,"children":3514},{},[3515],{"type":48,"value":3516},"Ignoring lenses",{"type":48,"value":3518},": If you're running serverless or SaaS, the specialty lenses catch issues the general framework misses.",{"type":43,"tag":71,"props":3520,"children":3521},{},[3522,3527],{"type":43,"tag":75,"props":3523,"children":3524},{},[3525],{"type":48,"value":3526},"Skipping the WA Tool",{"type":48,"value":3528},": The AWS Well-Architected Tool tracks findings, milestones, and improvement over time. Use it for governance and progress tracking.",{"type":43,"tag":71,"props":3530,"children":3531},{},[3532,3537],{"type":43,"tag":75,"props":3533,"children":3534},{},[3535],{"type":48,"value":3536},"Solo reviews",{"type":48,"value":3538},": WA reviews work best as conversations between the SA and the customer's engineering team. The questions are designed to surface knowledge gaps and blind spots.",{"type":43,"tag":3540,"props":3541,"children":3542},"style",{},[3543],{"type":48,"value":3544},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3546,"total":3642},[3547,3559,3574,3586,3597,3610,3627],{"slug":3548,"name":3548,"fn":3549,"description":3550,"org":3551,"tags":3552,"stars":26,"repoUrl":27,"updatedAt":3558},"agentcore","design Amazon Bedrock AgentCore architectures","Deep-dive into Amazon Bedrock AgentCore platform design, service selection, deployment, and production operations. This skill should be used when the user asks to \"design an AgentCore architecture\", \"deploy agents on AgentCore\", \"configure AgentCore Runtime\", \"set up AgentCore Memory\", \"use AgentCore Gateway\", \"configure AgentCore Identity\", \"set up AgentCore Policy\", \"plan agent observability\", \"evaluate agent quality\", \"move agent PoC to production\", or mentions AgentCore, AgentCore Runtime, AgentCore Memory, AgentCore Gateway, AgentCore Identity, AgentCore Policy, AgentCore Evaluations, AgentCore Code Interpreter, AgentCore Browser, A2A protocol, or multi-agent orchestration on AWS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3553,3556,3557],{"name":3554,"slug":3555,"type":16},"Agents","agents",{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},"2026-07-12T08:40:11.108951",{"slug":3560,"name":3560,"fn":3561,"description":3562,"org":3563,"tags":3564,"stars":26,"repoUrl":27,"updatedAt":3573},"aidlc-lite","develop AI applications on AWS","Lightweight AI development lifecycle for building on AWS. A simplified take on the AI-DLC philosophy — think together, then build fast. Acts as a design partner that understands intent, proposes alternatives with trade-offs, and ships working code without the ceremony of full requirements\u002Fdesign\u002Fspec documents. Use when a founder says \"build X on AWS\", \"add Y to my stack\", \"scaffold an API\", or \"write the CDK for Z\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3565,3566,3569,3570],{"name":3554,"slug":3555,"type":16},{"name":3567,"slug":3568,"type":16},"AI Infrastructure","ai-infrastructure",{"name":24,"slug":25,"type":16},{"name":3571,"slug":3572,"type":16},"Engineering","engineering","2026-07-12T08:40:40.204103",{"slug":3575,"name":3575,"fn":3576,"description":3577,"org":3578,"tags":3579,"stars":26,"repoUrl":27,"updatedAt":3585},"architect-for-startups","advise on AWS architecture for startups","AWS architecture advisor tailored specifically for startups. Alters AWS architecture recommendations based on startup stage (pre-revenue through Series B+), team size, runway, and credits. ALWAYS use when asked about building on AWS, choosing services, planning infrastructure, managing costs with credits, or preparing architecture for fundraising.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3580,3581,3582],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":3583,"slug":3584,"type":16},"Strategy","strategy","2026-07-12T08:41:33.557354",{"slug":210,"name":210,"fn":3587,"description":3588,"org":3589,"tags":3590,"stars":26,"repoUrl":27,"updatedAt":3596},"design and review AWS architectures","Design and review AWS architectures following Well-Architected Framework principles. Use when planning new infrastructure, reviewing existing architectures, evaluating trade-offs between AWS services, or when asked about AWS best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3591,3592,3593],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":3594,"slug":3595,"type":16},"Infrastructure","infrastructure","2026-07-12T08:40:57.630086",{"slug":3598,"name":3598,"fn":3599,"description":3600,"org":3601,"tags":3602,"stars":26,"repoUrl":27,"updatedAt":3609},"aws-compare","compare AWS architecture options","Compare 2-3 AWS architecture options side-by-side across cost, complexity, performance, security, and operational burden. Use when evaluating trade-offs between approaches or when the user is deciding between options.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3603,3604,3605,3608],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":3606,"slug":3607,"type":16},"Cost Optimization","cost-optimization",{"name":14,"slug":15,"type":16},"2026-07-12T08:40:23.960287",{"slug":3611,"name":3611,"fn":3612,"description":3613,"org":3614,"tags":3615,"stars":26,"repoUrl":27,"updatedAt":3626},"aws-debug","debug AWS infrastructure and deployment failures","Debug AWS infrastructure issues, deployment failures, and runtime errors. Use when troubleshooting CloudFormation stack failures, Lambda errors, ECS task failures, permission issues, networking problems, or any AWS service misbehavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3616,3617,3620,3623],{"name":24,"slug":25,"type":16},{"name":3618,"slug":3619,"type":16},"Debugging","debugging",{"name":3621,"slug":3622,"type":16},"Deployment","deployment",{"name":3624,"slug":3625,"type":16},"Observability","observability","2026-07-12T08:40:16.767171",{"slug":3628,"name":3628,"fn":3629,"description":3630,"org":3631,"tags":3632,"stars":26,"repoUrl":27,"updatedAt":3641},"aws-diagram","generate AWS architecture diagrams","Generate AWS architecture diagrams in Mermaid or ASCII from a description, existing IaC, or conversation context. Use when the user wants to visualize an architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3633,3634,3635,3638],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":3636,"slug":3637,"type":16},"Diagrams","diagrams",{"name":3639,"slug":3640,"type":16},"Visualization","visualization","2026-07-12T08:40:43.26341",42,{"items":3644,"total":3815},[3645,3660,3680,3690,3703,3716,3726,3736,3755,3770,3785,3800],{"slug":3646,"name":3646,"fn":3647,"description":3648,"org":3649,"tags":3650,"stars":3657,"repoUrl":3658,"updatedAt":3659},"agentcore-investigation","investigate Bedrock AgentCore runtime sessions","Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session\u002Ftrace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3651,3652,3653,3656],{"name":24,"slug":25,"type":16},{"name":3618,"slug":3619,"type":16},{"name":3654,"slug":3655,"type":16},"Logs","logs",{"name":3624,"slug":3625,"type":16},9427,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fmcp","2026-07-12T08:37:22.601527",{"slug":3661,"name":3662,"fn":3663,"description":3664,"org":3665,"tags":3666,"stars":3657,"repoUrl":3658,"updatedAt":3679},"amazon-aurora-dsql","amazon aurora dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, create DSQL table, DSQL schema, migrate to DSQL, distributed SQL database, serverless PostgreSQL-compatible database, DSQL query plan, DSQL EXPLAIN ANALYZE, why is my DSQL query slow, DSQL foreign key, DSQL OCC retry, DSQL multi-region, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3667,3670,3671,3674,3676],{"name":3668,"slug":3669,"type":16},"Aurora","aurora",{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},"Database","database",{"name":2753,"slug":3675,"type":16},"serverless",{"name":3677,"slug":3678,"type":16},"SQL","sql","2026-07-12T08:36:45.053393",{"slug":3681,"name":3682,"fn":3663,"description":3664,"org":3683,"tags":3684,"stars":3657,"repoUrl":3658,"updatedAt":3689},"aurora-dsql","aurora dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3685,3686,3687,3688],{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},{"name":2753,"slug":3675,"type":16},{"name":3677,"slug":3678,"type":16},"2026-07-12T08:36:42.694299",{"slug":3691,"name":3692,"fn":3663,"description":3664,"org":3693,"tags":3694,"stars":3657,"repoUrl":3658,"updatedAt":3702},"aws-dsql","aws dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3695,3696,3697,3700,3701],{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},{"name":3698,"slug":3699,"type":16},"Migration","migration",{"name":2753,"slug":3675,"type":16},{"name":3677,"slug":3678,"type":16},"2026-07-12T08:36:38.584057",{"slug":3704,"name":3705,"fn":3663,"description":3664,"org":3706,"tags":3707,"stars":3657,"repoUrl":3658,"updatedAt":3715},"distributed-postgres","distributed postgres",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3708,3709,3710,3713,3714],{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},{"name":3711,"slug":3712,"type":16},"PostgreSQL","postgresql",{"name":2753,"slug":3675,"type":16},{"name":3677,"slug":3678,"type":16},"2026-07-12T08:36:46.530743",{"slug":3717,"name":3718,"fn":3663,"description":3664,"org":3719,"tags":3720,"stars":3657,"repoUrl":3658,"updatedAt":3725},"distributed-sql","distributed sql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3721,3722,3723,3724],{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},{"name":2753,"slug":3675,"type":16},{"name":3677,"slug":3678,"type":16},"2026-07-12T08:36:48.104182",{"slug":3727,"name":3727,"fn":3663,"description":3664,"org":3728,"tags":3729,"stars":3657,"repoUrl":3658,"updatedAt":3735},"dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3730,3731,3732,3733,3734],{"name":24,"slug":25,"type":16},{"name":3672,"slug":3673,"type":16},{"name":3698,"slug":3699,"type":16},{"name":2753,"slug":3675,"type":16},{"name":3677,"slug":3678,"type":16},"2026-07-12T08:36:36.374512",{"slug":3737,"name":3737,"fn":3738,"description":3739,"org":3740,"tags":3741,"stars":3752,"repoUrl":3753,"updatedAt":3754},"cost-efficiency-analyzer","analyze cost efficiency and expenses","Analyzes cost structure, cost efficiency, and expense management from P&L data. Use when the user asks about costs, expenses, COGS, operating expenses, cost ratios, cost control, spending efficiency, margin compression from cost side, or wants to understand where money is going. Also use for \"are we spending too much\", \"cost breakdown\", \"expense analysis\", or \"how efficient are our operations\". NOT for revenue or top-line analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3742,3745,3748,3749],{"name":3743,"slug":3744,"type":16},"Accounting","accounting",{"name":3746,"slug":3747,"type":16},"Analytics","analytics",{"name":3606,"slug":3607,"type":16},{"name":3750,"slug":3751,"type":16},"Finance","finance",3176,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fagentcore-samples","2026-07-12T08:40:03.29555",{"slug":3756,"name":3756,"fn":3757,"description":3758,"org":3759,"tags":3760,"stars":3752,"repoUrl":3753,"updatedAt":3769},"executive-financial-briefing","generate executive financial briefings","Generates a concise executive-level financial briefing or summary suitable for a CEO, CFO, or board presentation. Use when the user asks for a summary, briefing, executive summary, board update, financial overview, financial health check, or \"how is the business doing\". Covers the full P&L picture in one page. Also use for \"give me the highlights\", \"what do I need to know\", or \"quick financial update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3761,3762,3763,3766],{"name":24,"slug":25,"type":16},{"name":3750,"slug":3751,"type":16},{"name":3764,"slug":3765,"type":16},"Management","management",{"name":3767,"slug":3768,"type":16},"Reporting","reporting","2026-07-12T08:40:02.066471",{"slug":3771,"name":3771,"fn":3772,"description":3773,"org":3774,"tags":3775,"stars":3752,"repoUrl":3753,"updatedAt":3784},"multi-quarter-trend-analysis","analyze multi-quarter financial trends","Analyzes financial trends across multiple quarters by comparing P&L metrics over time. Use when the user wants to see trends, patterns, trajectories, or directional movement across 3 or more quarters. Also use for \"how are we trending\", \"show me the trend\", \"track performance over time\", \"quarter over quarter comparison across all quarters\", or any multi-period longitudinal analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3776,3777,3778,3781],{"name":3746,"slug":3747,"type":16},{"name":3750,"slug":3751,"type":16},{"name":3779,"slug":3780,"type":16},"Financial Statements","financial-statements",{"name":3782,"slug":3783,"type":16},"Variance Analysis","variance-analysis","2026-07-12T08:40:00.79141",{"slug":3786,"name":3786,"fn":3787,"description":3788,"org":3789,"tags":3790,"stars":3752,"repoUrl":3753,"updatedAt":3799},"pdf","process and manipulate PDF documents","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3791,3794,3797],{"name":3792,"slug":3793,"type":16},"Automation","automation",{"name":3795,"slug":3796,"type":16},"Documents","documents",{"name":3798,"slug":3786,"type":16},"PDF","2026-07-12T08:41:44.135656",{"slug":3801,"name":3801,"fn":3802,"description":3803,"org":3804,"tags":3805,"stars":3752,"repoUrl":3753,"updatedAt":3814},"quarterly-kpi-calculator","calculate quarterly financial KPIs","Calculates quarterly financial KPIs from P&L data. P&L figures can be provided directly by the user or fetched from the financial data MCP server. Use when the user wants KPI calculations such as Gross Margin %, EBITDA Margin %, Operating Expense Ratio, or Revenue Growth % QoQ. Also use for quarterly performance review, P&L analysis, or interpreting financial ratios against benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3806,3807,3810,3811],{"name":3743,"slug":3744,"type":16},{"name":3808,"slug":3809,"type":16},"Data Analysis","data-analysis",{"name":3750,"slug":3751,"type":16},{"name":3812,"slug":3813,"type":16},"KPI","kpi","2026-07-12T08:39:59.54971",150]