Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Channy Yun / AWS TechEvangelist
Chaos Engineering Tools
최신 카오스 도구 업데이트
2020.5.21
@channyun | channyun@amazon.com
카오스엔지니어링 밋업 (2018-)
• Netflix 사례 공부
• Chaos Engineering 소책자 리뷰
• Game Day 방법론
• Chaos 도구 탐색
• ChaosMonkey
• Gremlin
• Kube...
실 서비스에 장애를 주입(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 you...
Eleanor
로컬 PC에 기본적인
아키텍처를 구성한 후
이를 기반으로 장애
주입 테스트 가능
https://github.com/adhorn/eleanor
2. AWS System Manager 기반 실패 주입
AWS System Manager는
클라우드 자원에 대한 관리
및 자동화를 위한 도구
• Run commannd: 서버에
로그인하지 않고 대규모로
인스턴스를 원격으...
2. AWS System Manager 기반 실패 주입
• CPU burn using cpu-stress.yml
• IO stress using io-stress.yml
• memory stress using memor...
2. AWS System Manager 기반 실패 주입
• EC2 stress using blackhole-ec2-stress.yml
• S3 stress using blackhole-s3-stress.yml
• RDS...
3. AWS Lambda 함수 장애 주입
• Latency injection using delay
• Exception injection using exception_msg
• HTTP Error status code ...
3. AWS Lambda 함수 장애 주입
$ pip install chaos-lambda
https://github.com/gunnargrosch/failure-lambda
$ npm install failure-lam...
4. Amazon Aurora 질의 장애 주입
시뮬레이션을 위해 만든 SQL 명령 :
• 라이터 또는 리더 DB 인스턴스의 충돌
• Aurora 복제 실패
• 디스크 실패
• 디스크 정체
https://docs.aws....
5. 가용영역(AZ) 전체 자원 실패 주입
https://github.com/adhorn/aws-chaos-scripts
https://go.aws/3efGU4l
강연 다시 보기
II. 서드 파티 장애 주입 도구
ToxiProxy
• 자동화된 테스트 목적으로 시작
• 테스트 환경에서의 실패 주입 목적 (not production)
• HTTP API /CLI 지원
• 주요 기능
• Timeouts, latency, connect...
https://atscaleconference.com/videos/resiliency-testing-with-toxiproxy/
ToxiProxy
The Chaos Toolkit
• 카오스엔지니어링 Open API
• 확장 기능을 활용 가능
• 인프라/플랫폼 장애 주입
• 애플리케이션 장애 주입
• 가시성 확보 가능
• CI/CD 파이프라인과 결합 가능
https...
https://chaosiq.io
https://www.gremlin.com
상용 도구
더 자세한 정보가 필요하시면…
https://medium.com/@adhorn/the-chaos-engineering-collection-5e188d6a90e2
Chaos Engineering을 위한 최신 도구 업데이트 - 윤석찬 (AWS 테크에반젤리스트)
Prochain SlideShare
Chargement dans…5
×

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

325 vues

Publié le

- 발표 영상: https://www.youtube.com/watch?v=mLWD4KCQuT4

카오스 엔지니어링(Chaos Engineering)을 테스트해 볼 수 있는 각종 도구에 대해 최신 업데이트를 해드립니다. 로컬 장애 주입용 도구 부터, AWS System Manager기반 Runcommand 도구, AWS Lambda 도구, 그리고 ToxiProxy, ChaosToolkit 같은 오픈 소스 기반 도구와 간단한 데모를 함께 보여드립니다.

Publié dans : Technologie
  • Soyez le premier à commenter

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

  1. 1. Channy Yun / AWS TechEvangelist Chaos Engineering Tools 최신 카오스 도구 업데이트 2020.5.21 @channyun | channyun@amazon.com
  2. 2. 카오스엔지니어링 밋업 (2018-) • Netflix 사례 공부 • Chaos Engineering 소책자 리뷰 • Game Day 방법론 • Chaos 도구 탐색 • ChaosMonkey • Gremlin • KubeMonkey • SRE vs. Chaos Engineering • Grab/Alibaba/Audible 사례 소개 • ServiceMesh와 카오스
  3. 3. 실 서비스에 장애를 주입(Failure Injection)하여, 출시 전 테스트에서 드러나지 않은 아키텍처상의 문제를 직접 드러내는 것 Choas Engineering이란? 프로덕션 서비스의 각종 장애 조건을 견딜 수 있는 시스템의 신뢰성을 확보하기 위해 분산 시스템을 실험 하고 배우는 분야입니다.
  4. 4. • 애플리케이션 부하 테스트 • 호스트 서버 이슈 발생 • 데이터베이스 서버 셧다운 • 자원 공격 (CPU, memory, …) • 네트워크 공격 (dependencies, latency, …) • 데이터 센터 공격!
  5. 5. Chaos doesn’t cause problems. It reveals them.
  6. 6. 우리 사장님이 허락해 줄까요? 우선 작게 시작하세요!
  7. 7. ⚠ 주의 – 아래 도구들을 활용하면서 아셔야 할 점 아래 속개하는 도구를 사용하면 알지 못하는 시스템 위험이 발생 할 수 있습니다. 여기에 제공된 도구를 자신의 의지로 사용하는 경우, 자신의 위험을 감수해야합니다. 어떤 방식 으로든 도구 개발자나 발표자 또는 이들 도구를 소개한 사람들은 사용의 결과에 대해 책임을지지 않습니다. 도구의 기능을 제대로 이해한 경우에만 사용하십시오.
  8. 8. I. AWS 서비스용 장애 주입 도구
  9. 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. 10. Eleanor 로컬 PC에 기본적인 아키텍처를 구성한 후 이를 기반으로 장애 주입 테스트 가능 https://github.com/adhorn/eleanor
  11. 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. 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. 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. 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. 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. 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. 17. 5. 가용영역(AZ) 전체 자원 실패 주입 https://github.com/adhorn/aws-chaos-scripts
  18. 18. https://go.aws/3efGU4l 강연 다시 보기
  19. 19. II. 서드 파티 장애 주입 도구
  20. 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
  21. 21. https://atscaleconference.com/videos/resiliency-testing-with-toxiproxy/ ToxiProxy
  22. 22. The Chaos Toolkit • 카오스엔지니어링 Open API • 확장 기능을 활용 가능 • 인프라/플랫폼 장애 주입 • 애플리케이션 장애 주입 • 가시성 확보 가능 • CI/CD 파이프라인과 결합 가능 https://chaostoolkit.org https://www.youtube.com/watch?v=bqDsgOVNiIM https://github.com/chaostoolkit-incubator/chaostoolkit-aws
  23. 23. https://chaosiq.io https://www.gremlin.com 상용 도구
  24. 24. 더 자세한 정보가 필요하시면… https://medium.com/@adhorn/the-chaos-engineering-collection-5e188d6a90e2

×