Skill 103 · AWS Fault Injection Service
Subchapter 103.3
references/fis-concepts.mdMarkdown8 KBView on GitHub
Authoritative source: https://docs.aws.amazon.com/fis/ — verify specifics there, as FIS adds actions, resource types, and scenarios over time.
AWS Fault Injection Service (AWS FIS) is a managed service for running fault injection experiments on AWS workloads, based on the principles of chaos engineering. Experiments stress an application with disruptive events so you can observe how it responds and then improve its performance and resilience. FIS provides pre-built fault actions plus the controls and guardrails (stop conditions, roll-back on threshold breach) needed to run experiments safely — including in production.
Important: FIS carries out real actions on real AWS resources. Always plan first, run in pre-production before production, and bound the blast radius with a stop condition.
| Term | Definition |
|---|---|
| Experiment | A single run that tests your theory of how the system behaves under fault. Started from an experiment template. Finishes when all actions complete, a stop condition triggers, an action errors, or you stop it manually. |
| Experiment template | The blueprint of an experiment. Contains actions, targets, stop conditions, an IAM role, and optional logging, report configuration, and experiment options. |
| Action | An activity FIS performs on a resource during an experiment (e.g., stop instances, inject latency). Runs for a set duration or until the experiment stops. Actions run sequentially (via startAfter) or in parallel. |
| Target | One or more AWS resources an action runs on. Selected by resource ARNs, tags, filters, or parameters, then narrowed by a selection mode (ALL, COUNT(n), PERCENT(n)). |
| Stop condition | A guardrail that stops the experiment if a CloudWatch alarm enters ALARM state. Defines the safe boundary (blast radius) of the experiment. |
| Scenario | An AWS-owned, pre-built pattern (console-only “scenario library”) of targets + actions for a common impairment. Used to create an experiment template. |
| Experiment report | An optional PDF summarizing an experiment’s actions and (optionally) a CloudWatch dashboard snapshot; delivered to S3. |
| Orchestrator / target account | In multi-account experiments, the orchestrator account owns the template/experiment; target accounts hold the affected resources. |
create-experiment-template) — define actions, targets,
stop conditions, role, and optional logging/report/options.start-experiment) from the template.get-experiment) — track state and resolved targets; view logs.stop-experiment manually.You cannot resume a stopped or failed experiment, and you cannot rerun a completed one — start a new experiment from the (optionally updated) template.
pending → initiating → running → completed | stopping → stopped | failed.
(Action states add cancelled.) A failed experiment usually means target resolution failed or
an action could not run; stopped usually means a stop condition fired or a manual stop.
FIS adds support for new services over time, so do not treat any list as exhaustive — a stale list will cause you to tell a user a resource type is unsupported when it is. Discover the current set instead:
# every action, with the resource type each one targets
aws fis list-actions
aws fis get-action --id <action-id> # inspect its targetsIllustrative examples of the shape these take: aws:ec2:instance, aws:ecs:task,
aws:eks:pod, aws:rds:cluster, aws:lambda:function, aws:s3:bucket. The authoritative list is
in the FIS documentation (opens in a new tab).
Each action supports exactly one resource type; a target must match the action’s resource type.
aws fis ... (CLI reference (opens in a new tab)).AWS::FIS::ExperimentTemplate (and AWS::FIS::TargetAccountConfiguration).FIS charges are based on action runtime and the number of target accounts; experiment logging
(vended logs to CloudWatch Logs / S3) and experiment reports (S3 storage plus the CloudWatch
GetMetricWidgetImage/GetDashboard calls) incur additional charges from those services.
Pricing details change — check https://aws.amazon.com/fis/pricing/ (opens in a new tab) for the current model rather
than quoting rates from here.
Recommend FIS when the user wants to:
aws-resilience-lifecycle).Redirect when:
recovery-controller-setup
(FIS can trigger zonal autoshift via aws:arc:start-zonal-autoshift, but does not configure ARC).aws-resilience-lifecycle.Define (Resilience Hub) → Test (FIS) → Operate (ARC). FIS is the “Test” phase: it reproduces the failure modes surfaced during Define and validates the operational controls built for Operate. Stop conditions reuse the same CloudWatch alarms that define steady state.
FIS performs real, potentially destructive actions on real resources, so treat every experiment as a privileged operation. Full guidance is in fis-security.md:
aws:SourceAccount + aws:SourceArn), and least-privilege permissions scoped by ARN/tag.fis:StartExperiment, including the caller’s iam:PassRole condition.COUNT(1) / low PERCENT), target preview, and pre-production before production.