이 문서는 AWS CLI의 버전 1에만 해당합니다. AWS CLI의 버전 2와 관련된 문서는 버전 2 사용 설명서를 참조하세요.
AWS CLI를 사용한 AWS FIS 예시
다음 코드 예시에서는 AWS FIS에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 create-experiment-template
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 템플릿을 생성하는 방법
다음
create-experiment-template
예제에서는 AWS FIS 계정에 실험 템플릿을 생성합니다.aws fis create-experiment-template \ --cli-input-json
file://myfile.json
myfile.json
의 콘텐츠:{ "description": "experimentTemplate", "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" } ], "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "description": "reboot", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "roleArn": "arn:aws:iam::123456789012:role/myRole" }
출력:
{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "experimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "description": "reboot", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" } ], "creationTime": 1616434850.659, "lastUpdateTime": 1616434850.659, "roleArn": "arn:aws:iam::123456789012:role/myRole", "tags": {} } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Create an experiment template을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateExperimentTemplate
을 참조하세요.
-
다음 코드 예시에서는 delete-experiment-template
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 템플릿을 삭제하는 방법
다음
delete-experiment-template
예제에서는 지정된 실험 템플릿을 삭제합니다.aws fis delete-experiment-template \ --id
ABCDE1fgHIJkLmNop
출력:
{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017859.607, "roleArn": "arn:aws:iam::123456789012:role/FISRole" } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Delete an experiment template를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteExperimentTemplate
을 참조하세요.
-
다음 코드 예시에서는 get-action
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업 세부 정보를 가져오는 방법
다음
get-action
예제에서는 지정된 작업의 세부 정보를 가져옵니다.aws fis get-action \ --id
aws:ec2:stop-instances
출력:
{ "action": { "id": "aws:ec2:stop-instances", "description": "Stop the specified EC2 instances.", "parameters": { "startInstancesAfterDuration": { "description": "The time to wait before restarting the instances (ISO 8601 duration).", "required": false } }, "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Actions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetAction
을 참조하세요.
-
다음 코드 예시에서는 get-experiment-template
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 템플릿 세부 정보를 가져오는 방법
다음
get-experiment-template
예제에서는 지정된 실험 템플릿의 세부 정보를 가져옵니다.aws fis get-experiment-template \ --id
ABCDE1fgHIJkLmNop
출력:
{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017331.51, "roleArn": "arn:aws:iam::123456789012:role/FISRole", "tags": { "key: "value" } } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiment templates를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetExperimentTemplate
을 참조하세요.
-
다음 코드 예시에서는 get-experiment
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 세부 정보를 가져오는 방법
다음
get-experiment
예제에서는 지정된 실험의 세부 정보를 가져옵니다.aws fis get-experiment \ --id
ABC12DeFGhI3jKLMNOP
출력:
{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "completed", "reason": "Experiment completed." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "state": { "status": "completed", "reason": "Action was completed." } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432509.662, "startTime": 1616432509.962, "endTime": 1616432522.307, "tags": {} } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiments for AWS FIS을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetExperiment
를 참조하세요.
-
다음 코드 예시에서는 list-actions
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업을 나열하는 방법
다음
list-actions
예제에서는 사용 가능한 작업을 나열합니다.aws fis list-actions
출력:
{ "actions": [ { "id": "aws:ec2:reboot-instances", "description": "Reboot the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ec2:stop-instances", "description": "Stop the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ec2:terminate-instances", "description": "Terminate the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ecs:drain-container-instances", "description": "Drain percentage of underlying EC2 instances on an ECS cluster.", "targets": { "Clusters": { "resourceType": "aws:ecs:cluster" } }, "tags": {} }, { "id": "aws:eks:terminate-nodegroup-instances", "description": "Terminates a percentage of the underlying EC2 instances in an EKS cluster.", "targets": { "Nodegroups": { "resourceType": "aws:eks:nodegroup" } }, "tags": {} }, { "id": "aws:fis:inject-api-internal-error", "description": "Cause an AWS service to return internal error responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:inject-api-throttle-error", "description": "Cause an AWS service to return throttled responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:inject-api-unavailable-error", "description": "Cause an AWS service to return unavailable error responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:wait", "description": "Wait for the specified duration. Stop condition monitoring will continue during this time.", "tags": {} }, { "id": "aws:rds:failover-db-cluster", "description": "Failover a DB Cluster to one of the replicas.", "targets": { "Clusters": { "resourceType": "aws:rds:cluster" } }, "tags": {} }, { "id": "aws:rds:reboot-db-instances", "description": "Reboot the specified DB instances.", "targets": { "DBInstances": { "resourceType": "aws:rds:db" } }, "tags": {} }, { "id": "aws:ssm:send-command", "description": "Run the specified SSM document.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} } ] }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Actions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListActions
를 참조하세요.
-
다음 코드 예시에서는 list-experiment-templates
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 템플릿을 나열하는 방법
다음
list-experiment-templates
예제에서는 AWS 계정의 실험 템플릿을 나열합니다.aws fis list-experiment-templates
출력:
{ "experimentTemplates": [ { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "creationTime": 1616017191.124, "lastUpdateTime": 1616017191.124, "tags": { "key": "value" } } ] }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiment templates를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListExperimentTemplates
를 참조하세요.
-
다음 코드 예시에서는 list-experiments
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험을 나열하는 방법
다음
list-experiments
예제에서는 AWS 계정의 실험을 나열합니다.aws fis list-experiments
출력:
{ "experiments": [ { "id": "ABCdeF1GHiJkLM23NO", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "state": { "status": "running", "reason": "Experiment is running." }, "creationTime": 1616017341.197, "tags": { "key": "value" } } ] }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiments를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListExperiments
를 참조하세요.
-
다음 코드 예시에서는 list-tags-for-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리소스의 태그 나열
다음
list-tags-for-resource
예제에서는 지정된 리소스의 태그를 나열합니다.aws fis list-tags-for-resource \ --resource-arn
arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP
출력:
{ "tags": { "key1": "value1", "key2": "value2" } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Tag your AWS FIS resources를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
를 참조하세요.
-
다음 코드 예시에서는 start-experiment
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험을 시작하는 방법
다음
start-experiment
예제에서는 지정된 실험을 시작합니다.aws fis start-experiment \ --experiment-template-id
ABCDE1fgHIJkLmNop
출력:
{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "initiating", "reason": "Experiment is initiating." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "state": { "status": "pending", "reason": "Initial state" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432464.025, "startTime": 1616432464.374, "tags": {} } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiments for AWS FIS을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 StartExperiment
를 참조하세요.
-
다음 코드 예시에서는 stop-experiment
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험을 중지하는 방법
다음
stop-experiment
예제는 지정된 실험의 실행을 중지합니다.aws fis stop-experiment \ --id
ABC12DeFGhI3jKLMNOP
출력:
{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "stopping", "reason": "Stopping Experiment." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "startAfter": [ "wait" ], "state": { "status": "pending", "reason": "Initial state." } }, "wait": { "actionId": "aws:fis:wait", "parameters": { "duration": "PT5M" }, "state": { "status": "running", "reason": "" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432680.927, "startTime": 1616432681.177, "tags": {} } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Experiments for AWS FIS을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 StopExperiment
를 참조하세요.
-
다음 코드 예시에서는 tag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리소스에 태그를 지정하려면
다음
tag-resource
예제에서는 지정된 리소스에 태그를 지정합니다.aws fis tag-resource \ --resource-arn
arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP
\ --tagskey1=value1,key2=value2
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Tag your AWS FIS resources를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시에서는 untag-resource
코드를 사용하는 방법을 보여줍니다.
- AWS CLI
-
리소스에서 태그를 제거하는 방법
다음
untag-resource
예제에서는 지정된 리소스에서 태그를 제거합니다.aws fis untag-resource \ --resource-arn
arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Tag your AWS FIS resources를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-
다음 코드 예시에서는 update-experiment-template
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
실험 템플릿을 업데이트하는 방법
다음
update-experiment-template
예제에서는 지정된 실험 템플릿의 설명을 업데이트합니다.aws fis update-experiment-template \ --id
ABCDE1fgHIJkLmNop
\ ---descriptionmyExperimentTemplate
출력:
{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017859.607, "roleArn": "arn:aws:iam::123456789012:role/FISRole", "tags": { "key": "value" } } }
자세한 내용은 AWS Fault Injection Simulator 사용 설명서의 Update an experiment template을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateExperimentTemplate
을 참조하세요.
-