기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
예 AWS FIS실험 템플릿
를 사용하는 경우 AWS FISAPI또는 명령줄 도구를 사용하여 실험 템플릿을 만들려면 JavaScript 개체 표기법 (JSON) 으로 템플릿을 구성할 수 있습니다. 실험 템플릿의 구성 요소에 대한 자세한 내용은 AWS FIS실험 템플릿 구성 요소 단원을 참조하세요.
예제 템플릿 중 하나를 사용하여 실험을 만들려면 JSON 파일 (예:my-template.json
) 에 저장하고 자리 표시자 값을 다음으로 바꾸십시오.italics
원하는 값을 입력하고 다음 create-experiment-template명령을 실행합니다.
aws fis create-experiment-template --cli-input-json file://
my-template
.json
템플릿 예제
필터에 따라 EC2 인스턴스를 중지합니다.
다음 예제는 지정된 지역에서 지정된 태그가 있는 실행 중인 모든 Amazon EC2 인스턴스를 VPC 중지합니다. 2분 후에 인스턴스가 다시 시작됩니다.
{ "tags": { "Name": "StopEC2InstancesWithFilters" }, "description": "Stop and restart all instances in us-east-1b with the tag env=prod in the specified VPC", "targets": { "myInstances": { "resourceType": "aws:ec2:instance", "resourceTags": { "
env
": "prod
" }, "filters": [ { "path": "Placement.AvailabilityZone", "values": ["us-east-1b
"] }, { "path": "State.Name", "values": ["running
"] }, { "path": "VpcId", "values": [ "vpc-aabbcc11223344556
"] } ], "selectionMode": "ALL
" } }, "actions": { "StopInstances": { "actionId": "aws:ec2:stop-instances", "description": "stop the instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "myInstances" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
지정된 수의 EC2 인스턴스를 중지하십시오.
다음 예제에서는 지정된 태그가 있는 인스턴스 3개를 중지합니다. AWS FIS중지할 특정 인스턴스를 임의로 선택합니다. 2분 후에 이러한 인스턴스를 다시 시작합니다.
{ "tags": { "Name": "StopEC2InstancesByCount" }, "description": "Stop and restart three instances with the specified tag", "targets": { "myInstances": { "resourceType": "aws:ec2:instance", "resourceTags": { "
env
": "prod
" }, "selectionMode": "COUNT(3)
" } }, "actions": { "StopInstances": { "actionId": "aws:ec2:stop-instances", "description": "stop the instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "myInstances" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
사전 구성된 인스턴스를 실행합니다. AWS FISSSM문서
다음 예제는 사전 구성된 EC2 인스턴스를 사용하여 지정된 인스턴스에서 60초 동안 CPU 오류 주입을 실행합니다. AWS FISSSM문서, AWSFIS-Run- CPU -Stress. AWS FIS2분 동안 실험을 모니터링합니다.
{ "tags": { "Name": "CPUStress" }, "description": "Run a CPU fault injection on the specified instance", "targets": { "myInstance": { "resourceType": "aws:ec2:instance", "resourceArns": ["arn:aws:ec2:
us-east-1
:111122223333
:instance/instance-id
"], "selectionMode": "ALL
" } }, "actions": { "CPUStress": { "actionId": "aws:ssm:send-command", "description": "run cpu stress using ssm", "parameters": { "duration": "PT2M
", "documentArn": "arn:aws:ssm:us-east-1
::document/AWSFIS-Run-CPU-Stress
", "documentParameters": "{\"DurationSeconds\": \"60
\", \"InstallDependencies\": \"True
\", \"CPU\": \"0
\"}" }, "targets": { "Instances": "myInstance" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
사전 정의된 자동화 런북 실행
다음 예제는 Systems Manager -P에서 제공하는 런북을 SNS 사용하여 Amazon에 알림을 게시합니다. AWS ublishSNSNotification 역할에는 지정된 주제에 알림을 게시할 권한이 있어야 합니다. SNS
{ "description": "Publish event through SNS", "stopConditions": [ { "source": "none" } ], "targets": { }, "actions": { "sendToSns": { "actionId": "aws:ssm:start-automation-execution", "description": "Publish message to SNS", "parameters": { "documentArn": "arn:aws:ssm:
us-east-1
::document/AWS-PublishSNSNotification", "documentParameters": "{\"Message\": \"Hello, world
\", \"TopicArn\": \"arn:aws:sns:us-east-1
:111122223333
:topic-name
\"}", "maxDuration": "PT1M
" }, "targets": { } } }, "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
대상 IAM 역할을 가진 EC2 인스턴스의 API 작업을 제한합니다.
다음 예제는 대상 정의에 지정된 IAM 역할로 이루어진 API 호출에 대해 작업 정의에 지정된 API 호출의 100% 를 조절합니다.
참고
{ "tags": { "Name": "ThrottleEC2APIActions" }, "description": "Throttle the specified EC2 API actions on the specified IAM role", "targets": { "myRole": { "resourceType": "aws:iam:role", "resourceArns": ["arn:aws:iam::
111122223333
:role/role-name
"], "selectionMode": "ALL
" } }, "actions": { "ThrottleAPI": { "actionId": "aws:fis:inject-api-throttle-error", "description": "Throttle APIs for 5 minutes", "parameters": { "service": "ec2", "operations": "DescribeInstances,DescribeVolumes
", "percentage": "100
", "duration": "PT2M
" }, "targets": { "Roles": "myRole" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
쿠버네티스 CPU 클러스터의 파드에 대한 스트레스 테스트
다음 예시에서는 Chaos Mesh를 사용하여 Amazon EKS Kubernetes CPU 클러스터의 파드에 대해 1분 동안 스트레스 테스트를 수행합니다.
{ "description": "ChaosMesh StressChaos example", "targets": { "Cluster-Target-1": { "resourceType": "aws:eks:cluster", "resourceArns": [ "arn:aws:eks:arn:aws::
111122223333
:cluster/cluster-id
" ], "selectionMode": "ALL
" } }, "actions": { "TestCPUStress": { "actionId": "aws:eks:inject-kubernetes-custom-resource", "parameters": { "maxDuration": "PT2M
", "kubernetesApiVersion": "chaos-mesh.org/v1alpha1", "kubernetesKind": "StressChaos", "kubernetesNamespace": "default", "kubernetesSpec": "{\"selector\":{\"namespaces\":[\"default\"],\"labelSelectors\":{\"run\":\"nginx\"}},\"mode\":\"all\",\"stressors\": {\"cpu\":{\"workers\":1,\"load\":50}},\"duration\":\"1m\"}" }, "targets": { "Cluster": "Cluster-Target-1" } } }, "stopConditions": [{ "source": "none" }], "roleArn": "arn:aws:iam::111122223333
:role/role-name
", "tags": {} }
다음 예제는 Litmus를 사용하여 Amazon EKS Kubernetes CPU 클러스터의 포드에 대해 1분 동안 스트레스 테스트를 수행합니다.
{ "description": "Litmus CPU Hog", "targets": { "MyCluster": { "resourceType": "aws:eks:cluster", "resourceArns": [ "arn:aws:eks:arn:aws::
111122223333
:cluster/cluster-id
" ], "selectionMode": "ALL
" } }, "actions": { "MyAction": { "actionId": "aws:eks:inject-kubernetes-custom-resource", "parameters": { "maxDuration": "PT2M
", "kubernetesApiVersion": "litmuschaos.io/v1alpha1", "kubernetesKind": "ChaosEngine", "kubernetesNamespace": "litmus", "kubernetesSpec": "{\"engineState\":\"active\",\"appinfo\":{\"appns\":\"default\",\"applabel\":\"run=nginx\",\"appkind\":\"deployment\"},\"chaosServiceAccount\":\"litmus-admin\",\"experiments\":[{\"name\":\"pod-cpu-hog\",\"spec\":{\"components\":{\"env\":[{\"name\":\"TOTAL_CHAOS_DURATION\",\"value\":\"60\"},{\"name\":\"CPU_CORES\",\"value\":\"1\"},{\"name\":\"PODS_AFFECTED_PERC\",\"value\":\"100\"},{\"name\":\"CONTAINER_RUNTIME\",\"value\":\"docker\"},{\"name\":\"SOCKET_PATH\",\"value\":\"/var/run/docker.sock\"}]},\"probe\":[]}}],\"annotationCheck\":\"false\"}" }, "targets": { "Cluster": "MyCluster" } } }, "stopConditions": [{ "source": "none" }], "roleArn": "arn:aws:iam::111122223333
:role/role-name
", "tags": {} }