SlideShare a Scribd company logo
1 of 25
Download to read offline
Channy Yun / AWS TechEvangelist
Chaos Engineering Tools
최신 카오스 도구 업데이트
2020.5.21
@channyun | channyun@amazon.com
카오스엔지니어링 밋업 (2018-)
• Netflix 사례 공부
• Chaos Engineering 소책자 리뷰
• Game Day 방법론
• Chaos 도구 탐색
• ChaosMonkey
• Gremlin
• KubeMonkey
• SRE vs. Chaos Engineering
• Grab/Alibaba/Audible 사례 소개
• ServiceMesh와 카오스
실 서비스에 장애를 주입(Failure Injection)하여,
출시 전 테스트에서 드러나지 않은 아키텍처상의
문제를 직접 드러내는 것
Choas Engineering이란?
프로덕션 서비스의 각종 장애 조건을 견딜 수
있는 시스템의 신뢰성을 확보하기 위해 분산
시스템을 실험 하고 배우는 분야입니다.
• 애플리케이션 부하 테스트
• 호스트 서버 이슈 발생
• 데이터베이스 서버 셧다운
• 자원 공격 (CPU, memory, …)
• 네트워크 공격 (dependencies, latency, …)
• 데이터 센터 공격!
Chaos doesn’t cause problems.
It reveals them.
우리 사장님이 허락해 줄까요?
우선
작게 시작하세요!
⚠
주의 – 아래 도구들을 활용하면서 아셔야 할 점
아래 속개하는 도구를 사용하면 알지 못하는 시스템 위험이 발생
할 수 있습니다. 여기에 제공된 도구를 자신의 의지로 사용하는
경우, 자신의 위험을 감수해야합니다. 어떤 방식 으로든 도구
개발자나 발표자 또는 이들 도구를 소개한 사람들은 사용의
결과에 대해 책임을지지 않습니다. 도구의 기능을 제대로 이해한
경우에만 사용하십시오.
I. AWS 서비스용 장애 주입 도구
#Random Kill
$ docker stop database
#Burn CPU with Stress(–ng)
$ stress-ng --cpu 0--cpu-method matrixprod -t 60s
#DDoS yourself
$ wrk -t12 -c400 -d30s http://127.0.0.1/api/health
#Adding latency to the network
$ tc qdisc add dev eth0 root netem delay 300ms
# Blocks DNS resolution
$ iptables -A INPUT -p udp -m udp --dport 53 -j DROP
1. 로컬 장애 주입 테스트
Eleanor
로컬 PC에 기본적인
아키텍처를 구성한 후
이를 기반으로 장애
주입 테스트 가능
https://github.com/adhorn/eleanor
2. AWS System Manager 기반 실패 주입
AWS System Manager는
클라우드 자원에 대한 관리
및 자동화를 위한 도구
• Run commannd: 서버에
로그인하지 않고 대규모로
인스턴스를 원격으로 안전하게
관리할 수 있는 기능
Injecting Chaos to
Amazon EC2 using
AWS System Manager
https://github.com/adhorn/chaos-ssm-documents
2. AWS System Manager 기반 실패 주입
• CPU burn using cpu-stress.yml
• IO stress using io-stress.yml
• memory stress using memory-stress.yml
• network stress using network-corruption-stress.yml
• packet Loss stress using network-loss-stress.yml
2. AWS System Manager 기반 실패 주입
• EC2 stress using blackhole-ec2-stress.yml
• S3 stress using blackhole-s3-stress.yml
• RDS block using blackhole-rds-stress.yml
• DynamoDB stress using blackhole-dynamo-stress.yml
• DNS stress using blackhole-dns-stress.yml
3. AWS Lambda 함수 장애 주입
• Latency injection using delay
• Exception injection using exception_msg
• HTTP Error status code injection using error_code
• Adding rate of failure using rate
https://github.com/adhorn/aws-lambda-chaos-injection
3. AWS Lambda 함수 장애 주입
$ pip install chaos-lambda
https://github.com/gunnargrosch/failure-lambda
$ npm install failure-lambda
$ npm i failure-lambda
$ sls deploy
• Failure Lambda• Chaos Lambda
https://github.com/artilleryio/chaos-lambda
4. Amazon Aurora 질의 장애 주입
시뮬레이션을 위해 만든 SQL 명령 :
• 라이터 또는 리더 DB 인스턴스의 충돌
• Aurora 복제 실패
• 디스크 실패
• 디스크 정체
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Man
aging.FaultInjectionQueries.html
ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK FAILURE
[ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR |
QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };
5. 가용영역(AZ) 전체 자원 실패 주입
https://github.com/adhorn/aws-chaos-scripts
https://go.aws/3efGU4l
강연 다시 보기
II. 서드 파티 장애 주입 도구
ToxiProxy
• 자동화된 테스트 목적으로 시작
• 테스트 환경에서의 실패 주입 목적 (not production)
• HTTP API /CLI 지원
• 주요 기능
• Timeouts, latency, connections and
bandwidth limitation, etc..
• 안정적인 테스트가 된 도구 (Shopify에서
3년간 사용)
https://github.com/Shopify/toxiproxy
https://www.youtube.com/watch?v=6u2wCVzAyeQ
https://atscaleconference.com/videos/resiliency-testing-with-toxiproxy/
ToxiProxy
The Chaos Toolkit
• 카오스엔지니어링 Open API
• 확장 기능을 활용 가능
• 인프라/플랫폼 장애 주입
• 애플리케이션 장애 주입
• 가시성 확보 가능
• CI/CD 파이프라인과 결합 가능
https://chaostoolkit.org
https://www.youtube.com/watch?v=bqDsgOVNiIM
https://github.com/chaostoolkit-incubator/chaostoolkit-aws
https://chaosiq.io
https://www.gremlin.com
상용 도구
더 자세한 정보가 필요하시면…
https://medium.com/@adhorn/the-chaos-engineering-collection-5e188d6a90e2

More Related Content

Similar to Chaos Engineering을 위한 최신 도구 업데이트 - 윤석찬 (AWS 테크에반젤리스트)

AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...Amazon Web Services Korea
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...Jongwon Han
 
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018Amazon Web Services Korea
 
야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)SeongIkKim2
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...Amazon Web Services Korea
 
Building Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - KoreanBuilding Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - KoreanAmazon Web Services Korea
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기Jinwoong Kim
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트Amazon Web Services Korea
 
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)Amazon Web Services Korea
 
AWS GameServer Management
AWS GameServer ManagementAWS GameServer Management
AWS GameServer Managementlactrious
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝NAVER Engineering
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)용호 최
 
DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)완철 김
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfByungho Lee
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트Amazon Web Services Korea
 

Similar to Chaos Engineering을 위한 최신 도구 업데이트 - 윤석찬 (AWS 테크에반젤리스트) (20)

AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
 
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018
소프트웨어 지능화를 돕는 AWS AI 서비스 소개 (남궁영환 AI/ML 솔루션즈 아키텍트) :: AWS TechShift 2018
 
야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
Building Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - KoreanBuilding Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - Korean
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
 
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
 
AWS GameServer Management
AWS GameServer ManagementAWS GameServer Management
AWS GameServer Management
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
 
DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
 

More from Channy Yun

인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019
인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019
인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019Channy Yun
 
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Channy Yun
 
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트) Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트) Channy Yun
 
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...Channy Yun
 
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...Channy Yun
 
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)Channy Yun
 
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업Channy Yun
 
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업Channy Yun
 
한국 웹20주년 기념 소책자
한국 웹20주년 기념 소책자한국 웹20주년 기념 소책자
한국 웹20주년 기념 소책자Channy Yun
 
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)Channy Yun
 
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013)
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013) 클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013)
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013) Channy Yun
 
Channy의 좌충우돌 스타트업 경험기 - 나인포유
Channy의 좌충우돌 스타트업 경험기 - 나인포유Channy의 좌충우돌 스타트업 경험기 - 나인포유
Channy의 좌충우돌 스타트업 경험기 - 나인포유Channy Yun
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examplesChanny Yun
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)Channy Yun
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)Channy Yun
 
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014Mozilla Firefox OS, its Technical Platform and Future - ISET 2014
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014Channy Yun
 
Webware - from Document to Operating System
Webware - from Document to Operating System Webware - from Document to Operating System
Webware - from Document to Operating System Channy Yun
 
Daum APIs: A to Z - API Meetup 2014
Daum APIs: A to Z  - API Meetup 2014Daum APIs: A to Z  - API Meetup 2014
Daum APIs: A to Z - API Meetup 2014Channy Yun
 
제주 다음 스페이스.1 셀프 투어 가이드
제주 다음 스페이스.1 셀프 투어 가이드제주 다음 스페이스.1 셀프 투어 가이드
제주 다음 스페이스.1 셀프 투어 가이드Channy Yun
 

More from Channy Yun (20)

인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019
인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019
인공지능이 이끌어가는 아마존의 리테일 혁신 - 윤석찬 (AWS) :: 메조미디어 옥토콘(OCTOCON) 2019
 
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
 
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트) Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
 
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
 
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...
 
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)
KubeMonkey를 통한 Chaos Engineering 실전 운영하기 - 윤석찬 (AWS 테크에반젤리스트)
 
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업
Game Day in Action for Chaos Engineering - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
 
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
 
한국 웹20주년 기념 소책자
한국 웹20주년 기념 소책자한국 웹20주년 기념 소책자
한국 웹20주년 기념 소책자
 
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
 
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013)
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013) 클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013)
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013)
 
Channy의 좌충우돌 스타트업 경험기 - 나인포유
Channy의 좌충우돌 스타트업 경험기 - 나인포유Channy의 좌충우돌 스타트업 경험기 - 나인포유
Channy의 좌충우돌 스타트업 경험기 - 나인포유
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examples
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)
공공 데이터 활용 방법론 - 오픈 API 기술 및 동향 (KRNET 2014)
 
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014Mozilla Firefox OS, its Technical Platform and Future - ISET 2014
Mozilla Firefox OS, its Technical Platform and Future - ISET 2014
 
Webware - from Document to Operating System
Webware - from Document to Operating System Webware - from Document to Operating System
Webware - from Document to Operating System
 
Daum APIs: A to Z - API Meetup 2014
Daum APIs: A to Z  - API Meetup 2014Daum APIs: A to Z  - API Meetup 2014
Daum APIs: A to Z - API Meetup 2014
 
제주 다음 스페이스.1 셀프 투어 가이드
제주 다음 스페이스.1 셀프 투어 가이드제주 다음 스페이스.1 셀프 투어 가이드
제주 다음 스페이스.1 셀프 투어 가이드
 

Chaos Engineering을 위한 최신 도구 업데이트 - 윤석찬 (AWS 테크에반젤리스트)

  • 1. Channy Yun / AWS TechEvangelist Chaos Engineering Tools 최신 카오스 도구 업데이트 2020.5.21 @channyun | channyun@amazon.com
  • 2. 카오스엔지니어링 밋업 (2018-) • Netflix 사례 공부 • Chaos Engineering 소책자 리뷰 • Game Day 방법론 • Chaos 도구 탐색 • ChaosMonkey • Gremlin • KubeMonkey • SRE vs. Chaos Engineering • Grab/Alibaba/Audible 사례 소개 • ServiceMesh와 카오스
  • 3. 실 서비스에 장애를 주입(Failure Injection)하여, 출시 전 테스트에서 드러나지 않은 아키텍처상의 문제를 직접 드러내는 것 Choas Engineering이란? 프로덕션 서비스의 각종 장애 조건을 견딜 수 있는 시스템의 신뢰성을 확보하기 위해 분산 시스템을 실험 하고 배우는 분야입니다.
  • 4. • 애플리케이션 부하 테스트 • 호스트 서버 이슈 발생 • 데이터베이스 서버 셧다운 • 자원 공격 (CPU, memory, …) • 네트워크 공격 (dependencies, latency, …) • 데이터 센터 공격!
  • 5. Chaos doesn’t cause problems. It reveals them.
  • 6. 우리 사장님이 허락해 줄까요? 우선 작게 시작하세요!
  • 7. ⚠ 주의 – 아래 도구들을 활용하면서 아셔야 할 점 아래 속개하는 도구를 사용하면 알지 못하는 시스템 위험이 발생 할 수 있습니다. 여기에 제공된 도구를 자신의 의지로 사용하는 경우, 자신의 위험을 감수해야합니다. 어떤 방식 으로든 도구 개발자나 발표자 또는 이들 도구를 소개한 사람들은 사용의 결과에 대해 책임을지지 않습니다. 도구의 기능을 제대로 이해한 경우에만 사용하십시오.
  • 8. I. AWS 서비스용 장애 주입 도구
  • 9. #Random Kill $ docker stop database #Burn CPU with Stress(–ng) $ stress-ng --cpu 0--cpu-method matrixprod -t 60s #DDoS yourself $ wrk -t12 -c400 -d30s http://127.0.0.1/api/health #Adding latency to the network $ tc qdisc add dev eth0 root netem delay 300ms # Blocks DNS resolution $ iptables -A INPUT -p udp -m udp --dport 53 -j DROP 1. 로컬 장애 주입 테스트
  • 10. Eleanor 로컬 PC에 기본적인 아키텍처를 구성한 후 이를 기반으로 장애 주입 테스트 가능 https://github.com/adhorn/eleanor
  • 11. 2. AWS System Manager 기반 실패 주입 AWS System Manager는 클라우드 자원에 대한 관리 및 자동화를 위한 도구 • Run commannd: 서버에 로그인하지 않고 대규모로 인스턴스를 원격으로 안전하게 관리할 수 있는 기능 Injecting Chaos to Amazon EC2 using AWS System Manager https://github.com/adhorn/chaos-ssm-documents
  • 12. 2. AWS System Manager 기반 실패 주입 • CPU burn using cpu-stress.yml • IO stress using io-stress.yml • memory stress using memory-stress.yml • network stress using network-corruption-stress.yml • packet Loss stress using network-loss-stress.yml
  • 13. 2. AWS System Manager 기반 실패 주입 • EC2 stress using blackhole-ec2-stress.yml • S3 stress using blackhole-s3-stress.yml • RDS block using blackhole-rds-stress.yml • DynamoDB stress using blackhole-dynamo-stress.yml • DNS stress using blackhole-dns-stress.yml
  • 14. 3. AWS Lambda 함수 장애 주입 • Latency injection using delay • Exception injection using exception_msg • HTTP Error status code injection using error_code • Adding rate of failure using rate https://github.com/adhorn/aws-lambda-chaos-injection
  • 15. 3. AWS Lambda 함수 장애 주입 $ pip install chaos-lambda https://github.com/gunnargrosch/failure-lambda $ npm install failure-lambda $ npm i failure-lambda $ sls deploy • Failure Lambda• Chaos Lambda https://github.com/artilleryio/chaos-lambda
  • 16. 4. Amazon Aurora 질의 장애 주입 시뮬레이션을 위해 만든 SQL 명령 : • 라이터 또는 리더 DB 인스턴스의 충돌 • Aurora 복제 실패 • 디스크 실패 • 디스크 정체 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Man aging.FaultInjectionQueries.html ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK FAILURE [ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };
  • 17. 5. 가용영역(AZ) 전체 자원 실패 주입 https://github.com/adhorn/aws-chaos-scripts
  • 19. II. 서드 파티 장애 주입 도구
  • 20. ToxiProxy • 자동화된 테스트 목적으로 시작 • 테스트 환경에서의 실패 주입 목적 (not production) • HTTP API /CLI 지원 • 주요 기능 • Timeouts, latency, connections and bandwidth limitation, etc.. • 안정적인 테스트가 된 도구 (Shopify에서 3년간 사용) https://github.com/Shopify/toxiproxy https://www.youtube.com/watch?v=6u2wCVzAyeQ
  • 22.
  • 23. The Chaos Toolkit • 카오스엔지니어링 Open API • 확장 기능을 활용 가능 • 인프라/플랫폼 장애 주입 • 애플리케이션 장애 주입 • 가시성 확보 가능 • CI/CD 파이프라인과 결합 가능 https://chaostoolkit.org https://www.youtube.com/watch?v=bqDsgOVNiIM https://github.com/chaostoolkit-incubator/chaostoolkit-aws
  • 25. 더 자세한 정보가 필요하시면… https://medium.com/@adhorn/the-chaos-engineering-collection-5e188d6a90e2