Generated banner for AWS Resilience Lifecycle
Generated logo for AWS Resilience Lifecycle

AWS Resilience Lifecycle

AWSOfficialPublished by AWS

  • Skill
  • Workflow
  • Cloud and DevOps
  • Apache-2.0
  • No issues found

From the author

Guides the end-to-end AWS resilience lifecycle integrating Resilience Hub v2, Fault Injection Service, and Application Recovery Controller. Covers the Define → Test → Operate workflow: from policy creation through failure mode assessment, to FIS experiment validation, to ARC operational controls. Applicable when the user wants a complete resilience strategy, needs to connect findings to experiments to controls, or is planning a resilience program. Also applicable for the meta question of whether marking NGRH findings as resolved is enough, whether they are "done" after resolving findings, or how to validate findings before resolving them. Not applicable for resolving or remediating a specific individual finding (see resilience-hub-failure-mode-assessment), or when a single service is explicitly named (e.g. "what FIS experiment should I run").
— the description by AWS

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured, end-to-end approach to building and maintaining system resilience on AWS. It integrates three core services—Resilience Hub v2 (NGRH), Fault Injection Service (FIS), and Application Recovery Controller (ARC)—to move teams through a Define, Test, and Operate workflow. The skill emphasizes moving beyond paper compliance by requiring that all resilience findings are validated through controlled fault injection experiments before being marked as resolved.

What it does

  • Defines resilience policies based on business criticality and service tiers.
  • Guides the assessment of failure modes using Resilience Hub v2.
  • Provides patterns for validating remediation through FIS experiments.
  • Integrates operational controls using Application Recovery Controller.
  • Enforces strict API usage to prevent common command hallucinations.
  • Promotes progressive experiment complexity from single-fault to cascading scenarios.

When to use it

  • When establishing a formal resilience program for AWS-based applications.
  • When you need to connect resilience findings to actionable fault injection tests.
  • When planning to implement operational failover controls using ARC.
  • When you need to validate that your architecture meets RTO/RPO targets under real failure conditions.

Advantages

  • Prevents paper compliance by mandating validation of fixes.
  • Provides a clear, repeatable workflow for complex resilience tasks.
  • Includes a hallucination-rejection guide for AWS CLI commands.
  • Promotes a tiered, risk-based approach to resilience investment.

Usage examples

“How do I start the resilience lifecycle for my new payment service?”
The agent will guide you through creating a resilience policy, registering your service via CloudFormation or Terraform, and running an initial failure mode assessment.
“I have a finding in Resilience Hub; can I just mark it as resolved?”
The agent will explain that marking findings resolved without validation is paper compliance and will guide you to create an FIS experiment to prove the fix works.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/aws/aws-resilience-lifecycle/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip aws-resilience-lifecycle.zip -d .agents/skills

Documentation by AWS

AWS Resilience Lifecycle

Overview

Domain expertise for the integrated resilience lifecycle across three AWS services: Define (Resilience Hub v2 — also called NGRH, New Generation Resilience Hub) → Test (FIS) → Operate (ARC).

Terminology: in this skill an unqualified "Resilience Hub" always means v2 (NGRH / New Generation Resilience Hub, CLI namespace aws resiliencehubv2). v1 (aws resiliencehub) is referenced only explicitly, and only for migration.

The AWS MCP server is recommended for executing this skill's AWS API calls, but it is not required — all operations also work with the AWS CLI directly.

Guardrail — where this skill's own files live (MCP vs local install)

Before reading a reference file, determine how this skill was loaded:

  • Loaded via the AWS MCP retrieve_skill tool: the skill's reference files are not on the local filesystem. Fetch each one through retrieve_skill with the file parameter (e.g. file="references/lifecycle-workflow.md" or file="references/api-reference.md") — do NOT file_read these paths locally or search the filesystem for them.

  • Installed locally (e.g. .kiro/skills/aws-resilience-lifecycle/ or ~/.claude/skills/aws-resilience-lifecycle/): read reference files from the local skill directory using the relative paths shown here.

This applies only to the skill's own reference files; always read and write user or session data in the working directory, never through retrieve_skill.

Execute the full lifecycle

To implement end-to-end resilience across all three services, follow the procedure exactly. See references/lifecycle-workflow.md.

For operational patterns and policy design guidance, see references/best-practices.md.

Validate findings before you resolve them

Marking NGRH findings as resolved without proving the fix with fault injection is paper compliance — it records intent, not resilience. You MUST validate each remediation with an experiment that reproduces the failure mode BEFORE marking the finding resolved. Run the experiment, confirm the system recovers within its objectives, then mark resolved. Marking resolved first and validating "later" is the anti-pattern.

Monitoring & observability

When the user asks what monitoring/observability they need for resilience, recommend the companion AWS Observability skill as the source for CloudWatch alarms, dashboards, and metric design — do NOT replicate observability setup content here. Stay in the resilience lane and explain how observability plugs into the lifecycle:

  • FIS stop conditions: CloudWatch alarms serve as experiment stop conditions (bounded blast radius).

  • Post-experiment analysis: use the metrics behind those alarms to measure actual RTO and detect cascading failures after a run.

Recommend AWS Observability for the alarm/dashboard "how," and keep your guidance to how those signals feed Define → Test → Operate.

API Reference (READ FIRST before producing any AWS CLI command)

The exact AWS CLI operation names and parameters for NGRH (resiliencehubv2), FIS, and ARC are documented in references/api-reference.md. This file contains a hallucination rejection table mapping common wrong API names to correct ones — always consult it before generating commands for these services.

Troubleshooting

Don't know where to start

Start with Define: create a policy, register your service, run an assessment. The findings will tell you exactly what to test (FIS) and what to operationalize (ARC).

Findings resolved but no confidence in resilience

Resolving findings without FIS validation is paper compliance. Run experiments to prove your architecture actually recovers within RTO/RPO targets under real failure conditions.

FIS experiments pass but production still fails

Experiments may not match real failure modes. Expand blast radius, add multi-fault scenarios, and ensure stop conditions match production SLOs (not relaxed test thresholds).

Security Considerations

  • Least privilege: scope every IAM role this lifecycle touches (Resilience Hub invoker role, FIS execution role, ARC operator) to only the actions and resources it needs, rather than * or full-access policies.

  • Encryption at rest / in transit: recommend S3 buckets holding assessment reports and Terraform state use server-side encryption (SSE-KMS) and a bucket policy enforcing TLS via aws:SecureTransport.

  • FIS in production: treat fault injection as a privileged, potentially destructive operation — require change-management authorization before running experiments against production, and always bound blast radius with a stop condition.

  • Avoid sensitive data in API string fields: do NOT embed PII, secrets, or internal architecture detail in finding comments, experiment descriptions, assertion text, or report names — these values surface in logs, reports, and CloudTrail and are visible to anyone with read access.

  • Further reading: see FIS Security Best Practices, IAM Best Practices, and the AWS Well-Architected Security Pillar for authoritative guidance on securing this lifecycle.

Files

references/lifecycle-workflow.md

Resilience Lifecycle: Define → Test → Operate

Overview

This SOP guides the integrated use of all three AWS resilience services (Resilience Hub v2, FIS, ARC) to achieve proven, operational resilience through a continuous Define → Test → Operate loop.

Parameters

service_name (required): Name of the service going through the lifecycle service_arn (optional): Existing service ARN if already onboarded to Resilience Hub lifecycle_phase (optional, default: "all"): Which phase to execute — define, test, operate, or all aws_region (optional, default: "us-east-1"): Primary AWS region

Steps

1. Verify Dependencies

Check for required tools and warn the user if any are missing.

Constraints:

  • You MUST verify that either the AWS CLI or the AWS MCP server's call_aws tool is available (e.g., check the CLI is on PATH with command -v aws)

  • You MUST NOT call AWS service APIs during verification — checking tool presence (such as command -v aws) is fine; do not make any AWS service calls

  • You MUST inform the user about any missing tools with a clear message

  • You MUST ask if the user wants to proceed anyway despite missing tools

  • You SHOULD recommend the user authenticate with short-lived IAM role credentials (IAM role assumption, AWS SSO, an instance profile, or aws sts assume-role) rather than long-lived IAM user access keys, since this lifecycle performs privileged and potentially destructive operations.

  • You MUST honor the lifecycle_phase parameter and execute ONLY the selected phase(s): "define" → Step 2 only; "test" → Step 3 only; "operate" → Step 4 only; "all" (default) → Steps 2–5 in order

  • You MUST skip any phase not selected by lifecycle_phase

2. Phase 1 — DEFINE (Resilience Hub)

Establish resilience targets and identify gaps through assessment.

Constraints:

  • You MUST guide the user through: create policy → create system → create user journey → create service → add input sources → run assessment

  • You MUST delegate execution of each step's mutating AWS CLI commands to the resilience-hub-getting-started skill, which owns those commands and their validation — this lifecycle skill sequences and gates the phases; it does not execute the Define-phase mutations itself

  • You MUST triage findings by action required:

    • Architecture gap (NOT_ACHIEVABLE) → Fix infrastructure first

    • Untested failure mode → Design FIS experiment (Phase 2)

    • No recovery mechanism → Set up ARC controls (Phase 3)

    • Missing observability → Add CloudWatch alarms

  • You MUST NOT skip directly to testing if findings show NOT_ACHIEVABLE — architecture must be fixed first

3. Phase 2 — TEST (Fault Injection Service)

Validate resilience through controlled fault-injection experiments.

Constraints:

  • You MUST map each "untested" finding from Phase 1 to an FIS experiment

  • You MUST guide the user through: identify scenario → define stop conditions → scope blast radius → create template → execute → analyze results

  • You MUST recommend scoping the FIS execution role to least privilege — only the specific actions and resource ARNs each experiment needs (e.g. ec2:TerminateInstances limited to tagged resources), never broad ec2:* or *, since FIS execution roles are high-privilege (they terminate instances, disrupt networking, etc.).

  • You MUST delegate execution of each step's mutating AWS CLI commands to the fault-injection-experiment-design skill, which owns those commands and their validation — this lifecycle skill sequences and gates the phases; it does not create or start experiments itself

  • You MUST enforce the pre-experiment checklist:

    • Stop condition alarms are in OK state

    • Rollback plan documented

    • Team notified (or scheduled GameDay)

    • Blast radius limited (start non-prod, then canary %)

  • You MUST present the fully-rendered experiment template (actions, targets, stop conditions, role ARN) to the user and receive explicit confirmation BEFORE calling aws fis start-experiment — never auto-start a fault-injection experiment, since it is destructive (terminates instances, disrupts networking). This mirrors the confirm-before-proceeding gate in Step 1.

  • You MUST gate the finding update on validation — mark a finding RESOLVED only after the experiment confirms recovery within objectives. The actual update-failure-mode-finding call is executed by the resilience-hub-getting-started skill (which owns resiliencehubv2 commands); this skill supplies the gate and the evidence comment, e.g. --status RESOLVED --comment "Validated via FIS experiment {experiment_id}. RTO: {actual_rto}s (target: {target_rto}s)"

4. Phase 3 — OPERATE (Application Recovery Controller)

Configure operational recovery mechanisms for production use.

Constraints:

  • You MUST guide the user through: create routing controls → add safety rules → test failover → configure zonal autoshift

  • You MUST delegate execution of each step's mutating AWS CLI commands to the recovery-controller-setup skill, which owns those commands and their validation — this lifecycle skill sequences and gates the phases; it does not create routing controls or configure autoshift itself

  • You MUST NOT create routing controls without safety rules

  • You MUST verify the application can handle N-1 AZ capacity before enabling zonal autoshift

  • You MUST connect ARC back to NGRH findings:

    • "No cross-region failover mechanism" → Set up routing controls + safety rules

    • "Single-AZ dependency" → Enable zonal autoshift

    • "Recovery not validated" → Run FIS experiment, then enable ARC

5. Phase 4 — CONTINUOUS (Loop Back)

Establish ongoing resilience validation cadence.

Constraints:

  • You MUST recommend the following cadence:

    • After architecture changes → Re-run NGRH assessment

    • After new deployments → Verify input sources capture new resources

    • Monthly → Run FIS experiments (single-service)

    • Quarterly → Cross-service GameDay

    • After incidents → Re-assess affected services, add new experiments

  • You MUST inform the user that zonal autoshift practice runs provide continuous validation automatically

  • You MUST recommend monitoring routing control state changes via CloudTrail

  • You SHOULD suggest expanding experiments progressively: single-fault → multi-fault → cascading → surprise (unannounced to on-call)

Examples

Note: the CLI commands below illustrate what the delegated companion skills (resilience-hub-getting-started, fault-injection-experiment-design, recovery-controller-setup) execute on behalf of this lifecycle skill. This skill orchestrates the phases and gates progression — it does not run these commands directly.

# Phase 1: Define
aws resiliencehubv2 create-policy --name "tier-1" --availability-slo target=99.99 \
  --multi-az rtoInMinutes=5,rpoInMinutes=1,disasterRecoveryApproach=ACTIVE_ACTIVE \
  --multi-region rtoInMinutes=30,rpoInMinutes=5,disasterRecoveryApproach=HOT_STANDBY
aws resiliencehubv2 start-failure-mode-assessment --service-arn {service_arn}

# Phase 2: Test (from NGRH finding "AZ failure not validated")
aws fis create-experiment-template --description "Validate checkout-api survives us-east-1a AZ failure" \
  --actions '{"terminate-checkout":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"checkout-instances"}}}' \
  --targets '{"checkout-instances":{"resourceType":"aws:ec2:instance","selectionMode":"ALL","resourceTags":{"resilience:service":["checkout-api"]},"filters":[{"path":"Placement.AvailabilityZone","values":["us-east-1a"]}]}}' \
  --stop-conditions '[{"source":"aws:cloudwatch:alarm","value":"arn:aws:cloudwatch:..."}]' \
  --log-configuration '{"cloudWatchLogsConfiguration":{"logGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group:/fis/checkout-api:*"},"logSchemaVersion":2}' \
  --role-arn arn:aws:iam::123456789012:role/FISExperimentRole
# Enable experiment logging (above): the CloudWatch Logs group (or S3 bucket) receiving experiment
# logs SHOULD be KMS-encrypted (logs:AssociateKmsKey / SSE-KMS) — experiment logs can reveal
# infrastructure topology and failure modes.
# ⚠️ Present the fully-rendered template to the user and get explicit confirmation BEFORE the next line (see Step 3) — never auto-start a destructive experiment
aws fis start-experiment --experiment-template-id EXT123abc

# Phase 3: Operate
aws route53-recovery-control-config create-routing-control --cluster-arn {cluster_arn} --control-panel-arn {control_panel_arn} --routing-control-name checkout-us-east-1
aws arc-zonal-shift create-practice-run-configuration --resource-identifier {alb_arn} \
  --outcome-alarms '[{"alarmIdentifier":"arn:aws:cloudwatch:...","type":"CLOUDWATCH"}]'
aws arc-zonal-shift update-zonal-autoshift-configuration --resource-identifier {alb_arn} --zonal-autoshift-status ENABLED

# Phase 4: Update finding after validation
aws resiliencehubv2 update-failure-mode-finding --service-arn {service_arn} --finding-id {id} --status RESOLVED \
  --comment "Validated via FIS EXT123abc. RTO: 45s (target: 300s)"

Troubleshooting

User wants to skip Phase 1 and go straight to testing Advise against this — without NGRH assessment, they don't know which failure modes to test. Testing without targets means no way to measure success.

Findings show NOT_ACHIEVABLE but user wants to test anyway Explain that testing will confirm the failure but won't fix it. Architecture changes are needed first. Testing validates that a fix works, not that a broken architecture is broken.

User has existing FIS experiments but no NGRH Start with Phase 1 to get a complete picture. Existing experiments can be mapped to findings after assessment, and gaps in coverage will be identified.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an MCP server

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
AWS
Publisher
AWS (Official)
Source
aws/agent-toolkit-for-aws · skills/specialized-skills/resilience-skills/aws-resilience-lifecycle · commit 0a218f8
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • NOTICE (added by AutoGineer from NOTICE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by AWS.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download aws-resilience-lifecycle.zip