SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
카오스 엔지니어링을 활용한
마이크로서비스 안정성 개선하기
정준우
솔루션즈 아키텍트
AWS Korea
Agenda
카오스 엔지니어링
실패 주입 방법
복원력 개선 방법
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Microservices Architecture
• 목표: Amazon.com 시스템 안정성
• 정기적인 테스트 및 훈련 이벤트
• 컴퓨팅 용량 계획 및 준비를 검증
• 필요한 모든 운영 방식에 대한 동작 확인
• 의도적인 장애 주입
• 반복적인 문제 식별 및 해결
• 복원력 개선 효과
Jesse Robbins, “Master of Disaster”
자원봉사 소방관
Chef and Velocity 설립자
GameDay 운영 (2004년~)
“Simian Army to keep our cloud safe, secure, and highly available.”
- 2011 Netflix blog
목적별 에이전트 기반:
• 무작위로 서비스 종료
• 성능 저하
• 적합성 점검
• 특정 가용영역 또는 리전 전체를 공격
• Spinnaker (CI/CD)와 통합
Chaos Monkey 도입 (2011년)
카오스 엔지니어링은
프로덕션 서비스에서
각종 장애 조건을 견딜 수 있는
안정적인 시스템을 구축하기 위해서
분산 시스템을 대상으로
실험하고 배우는 분야입니다.
Principles of Chaos Engineering
http://principlesofchaos.org/
카오스 엔지니어링은
목적성 없이 시스템을 파괴하는 것이 아닙니다
카오스 엔지니어링은
통제된 환경에서 의도적으로 구성된 실험을 통해
잠재적인 문제를 선제적으로 발견하는데 도움을 줍니다.
사전에 준비해야 할 것들이 많이 있습니다.
운영
데이터 / 네트워크
애플리케이션
인프라
https://aws.amazon.com/ko/well-architected-tool
정상상태
가설
실험
검증
개선
카오스 엔지니어링 단계
정상상태 란?
• 시스템의 “정상” 동작
• 시스템 내부 속성이 아님 (CPU, memory, etc.)
• 비즈니스 및 고객 경험과 연계된 운영 매트릭스가 정상상태가 될 수 있음
• Amazon : 페이지 로딩 100ms ↑ 주문 수 1% ↓
• Netflix : 초당 시작 횟수, SPS (Starts-per-second), The Pulse of Netflix
가설
정상상태
가설
실험
검증
개선
만약…?
“Load Balancer가 고장 난다면?”
“Kubernetes 노드 중 하나가 내려간다면?”
“Redis가 느려 진다면?”
”Latency time이 300ms 증가 한다면?”
”Database가 갑자기 정지 한다면?”
장애 이력, 서비스 의존 관계 참조
다양한 역할 담당자들의 의견 수렴
실험
정상상태
가설
실험
검증
개선
실패 주입
• 작은 것부터 시작
• Application level (exceptions, errors, etc.)
• Host level (services, processes, etc.)
• Resource attacks (CPU, memory, IO, etc.)
• Network attacks (dependencies, latency, packet loss, etc.)
• AZ attack
• Region attack
• People attack
빠르고 간단한 방법으로 실험을 중지하고 롤백!
롤백 할 수 없는 상태에 주의
(손상되거나 잘못된 데이터)
실험이 정상상태를 유지하지 못하면
검증
정상상태
가설
실험
검증
개선
실험 결과 정량화
• 감지 시간?
• 알림 시간?
• SNS 등을 통해서 공개적으로 알려진 장애 시간?
• 단계별 성능 완화가 시작된 시간?
• 자가 치유가 일어난 시간?
• 부분 및 전체 복구하는데 걸린 시간?
• 안정화될 때까지 걸린 시간?
개선을 위한 Postmortem
• 구체적인 장애 상황
• 고객과 비즈니스에 미치는 영향 (고객, 기능, 지역)
• 근본 원인? The 5 whys
• 분석을 위해 필요한 데이터
• 매트릭 및 그래프
• 장애를 통해 배운 점
• 필요한 조치
• 액션 아이템
개선 그리고 지속적으로 반복
정상상태
가설
실험
검증
개선
카오스 엔지니어링은
숨어있는 문제를 발견하는데 도움을 주는 방법론입니다.
결국 사람이 시스템을 개선해야합니다.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
실패 주입 방법
• 리소스 레벨
• Exhausting CPU, memory, and I/O : stress-ng
• Exhausting the disk space on hard drives : dd
• Exhausting application APIs : wrk
• 네트워크 및 의존성 레벨
• Injecting latency, loss and corrupting the network : tc, /etc/hosts, Blackholing
• 애플리케이션, 프로세스, 서비스 레벨
• Killing Java processes, Python processes
• Database failure injection, Failures in the serverless world
• 인프라 레벨
• Randomly stopping an EC2 instance in an availability zone
카오스 엔지니어링 도구
• Chaos Monkey from Netflix (https://netflix.github.io/chaosmonkey/)
• Simian Army
• Chaos Gorilla, Chaos Kong
• Latency Monkey, Doctor Monkey, Conformity Monkey
• Kube Monkey
• Chaos Toolkit, ChaosIQ (https://chaostoolkit.org/)
• Litmus (https://litmuschaos.io/)
• PowerfulSeal (https://github.com/bloomberg/powerfulseal)
• Istio (https://istio.io/)
• Gremlin Inc. (https://www.gremlin.com/)
Failure as a service
Easy to use API and UI
타겟 유형
• Hosts, Containers, Kubernetes
공격 유형
• Resource : CPU, Memory, Disk
• State : Process Killer, Shutdown
• Network : Latency, Packet Loss
https://app.gremlin.com/
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EKS를 통한 복원력 개선
프로덕션
워크로드
표준,
업스트림
준수
완벽한 통합오픈소스 공헌
Amazon EKS가 제공하는 이점
EKS control plane
관리형 서비스
Phase 1
Phase 2
EKS data plane
관리형 서비스
Amazon EKS
AWS Fargate
(Serverless)
Managed
Node Groups
EKS Control Plane
고 가용성
Native AWS 컴포넌트로 구성
NLB 프론트엔드
VPC
Instances
Instances
ELB
Etcd ASG
API servers ASG
NLB
AZ-3AZ-1 AZ-2
EKS Data Plane
mycluster.eks.amazonaws.com
Amazon EKS workers
Kubectl
AZ 1 AZ 2 AZ 3
• Cluster Autoscaling
• Horizontal Pod Autoscaling
• Node/Pod Affinity
• Readiness/Liveness probes
• Pre-stop commands
AWS App Mesh를 통한 복원력 개선
AWS App Mesh 동작 방식
http/http2/grpc/tcp
Service
team A
Service
team B
Control plane
상태 변경을 프록시에 배포
Proxy
서비스 간 트래픽 모니터링 및 관리
App Mesh 적용 전 마이크로서비스
App Mesh 적용 후 마이크로서비스
Avoiding Cascading Failures
• Traffic Management
• Retry
• Timeout
• Fallback
• Circuit Breaker
https://martinfowler.com/bliki/CircuitBreaker.html
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Book Info Application
https://istio.io/docs/examples/bookinfo/
Next step
• Demo 관련 실습 가이드
• https://openzon.github.io/aws/summit-2020
• Kubernetes 레퍼런스 문서
• https://kubernetes.io/docs/home/
• Amazon EKS & App Mesh 실습 가이드
• https://eksworkshop.com
• https://appmeshworkshop.com
• Gremlin 실습 가이드
• https://www.gremlin.com/community/tutorials/how-to-install-and-use-gremlin-with-eks/
• Litmus 실습 가이드
• https://docs.litmuschaos.io/docs/getstarted/
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
감사합니다
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
 
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
 
ElastiCache & Redis
ElastiCache & RedisElastiCache & Redis
ElastiCache & Redis
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
quick intro to elastic search
quick intro to elastic search quick intro to elastic search
quick intro to elastic search
 
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) ::  한국 카오스엔지니어링 밋업
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
 
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈 Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
 
[AWS Builders] 클라우드 비용, 어떻게 줄일 수 있을까?
[AWS Builders] 클라우드 비용, 어떻게 줄일 수 있을까?[AWS Builders] 클라우드 비용, 어떻게 줄일 수 있을까?
[AWS Builders] 클라우드 비용, 어떻게 줄일 수 있을까?
 
(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep Dive(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep Dive
 
Introduction to Incident Response on AWS
Introduction to Incident Response on AWSIntroduction to Incident Response on AWS
Introduction to Incident Response on AWS
 
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
 
Log analysis using elk
Log analysis using elkLog analysis using elk
Log analysis using elk
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
 
Getting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir VolkGetting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir Volk
 
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep Dive
 
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
 

Ähnlich wie 카오스 엔지니어링을 활용한 마이크로서비스 안정성 개선하기 - 정준우, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020

AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
Amazon Web Services Korea
 

Ähnlich wie 카오스 엔지니어링을 활용한 마이크로서비스 안정성 개선하기 - 정준우, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020 (20)

Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
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
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
 
AWS를 활용한 미디어 고객사 서비스 혁신 사례 - 양승도 :: AWS 미디어 커스토머 데이
AWS를 활용한 미디어 고객사 서비스 혁신 사례 - 양승도 :: AWS 미디어 커스토머 데이AWS를 활용한 미디어 고객사 서비스 혁신 사례 - 양승도 :: AWS 미디어 커스토머 데이
AWS를 활용한 미디어 고객사 서비스 혁신 사례 - 양승도 :: AWS 미디어 커스토머 데이
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
[ORA클라우드 지식먹방] - #11 개발자 X 오라클 MySQL 클라우드 서비스를 만나다!
[ORA클라우드 지식먹방] - #11 개발자 X 오라클 MySQL 클라우드 서비스를 만나다![ORA클라우드 지식먹방] - #11 개발자 X 오라클 MySQL 클라우드 서비스를 만나다!
[ORA클라우드 지식먹방] - #11 개발자 X 오라클 MySQL 클라우드 서비스를 만나다!
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 
AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
AWS Support에서 제안하는 멋진 클라우드 아키텍처 디자인::조성열:: AWS Summit Seoul 2018
 
Migration Success with IEM 사례를 통해 알아보는 AWS Migration Story – 진교선, 곽영화, AWS 테크...
Migration Success with IEM 사례를 통해 알아보는 AWS Migration Story – 진교선, 곽영화, AWS 테크...Migration Success with IEM 사례를 통해 알아보는 AWS Migration Story – 진교선, 곽영화, AWS 테크...
Migration Success with IEM 사례를 통해 알아보는 AWS Migration Story – 진교선, 곽영화, AWS 테크...
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practiceOpensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
 

Mehr von Amazon Web Services Korea

Mehr von Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

카오스 엔지니어링을 활용한 마이크로서비스 안정성 개선하기 - 정준우, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020

  • 1. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. 카오스 엔지니어링을 활용한 마이크로서비스 안정성 개선하기 정준우 솔루션즈 아키텍트 AWS Korea
  • 2. Agenda 카오스 엔지니어링 실패 주입 방법 복원력 개선 방법
  • 3. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 5. • 목표: Amazon.com 시스템 안정성 • 정기적인 테스트 및 훈련 이벤트 • 컴퓨팅 용량 계획 및 준비를 검증 • 필요한 모든 운영 방식에 대한 동작 확인 • 의도적인 장애 주입 • 반복적인 문제 식별 및 해결 • 복원력 개선 효과 Jesse Robbins, “Master of Disaster” 자원봉사 소방관 Chef and Velocity 설립자 GameDay 운영 (2004년~)
  • 6. “Simian Army to keep our cloud safe, secure, and highly available.” - 2011 Netflix blog 목적별 에이전트 기반: • 무작위로 서비스 종료 • 성능 저하 • 적합성 점검 • 특정 가용영역 또는 리전 전체를 공격 • Spinnaker (CI/CD)와 통합 Chaos Monkey 도입 (2011년)
  • 7. 카오스 엔지니어링은 프로덕션 서비스에서 각종 장애 조건을 견딜 수 있는 안정적인 시스템을 구축하기 위해서 분산 시스템을 대상으로 실험하고 배우는 분야입니다. Principles of Chaos Engineering http://principlesofchaos.org/
  • 8. 카오스 엔지니어링은 목적성 없이 시스템을 파괴하는 것이 아닙니다 카오스 엔지니어링은 통제된 환경에서 의도적으로 구성된 실험을 통해 잠재적인 문제를 선제적으로 발견하는데 도움을 줍니다.
  • 9. 사전에 준비해야 할 것들이 많이 있습니다.
  • 13. 정상상태 란? • 시스템의 “정상” 동작 • 시스템 내부 속성이 아님 (CPU, memory, etc.) • 비즈니스 및 고객 경험과 연계된 운영 매트릭스가 정상상태가 될 수 있음 • Amazon : 페이지 로딩 100ms ↑ 주문 수 1% ↓ • Netflix : 초당 시작 횟수, SPS (Starts-per-second), The Pulse of Netflix
  • 15. 만약…? “Load Balancer가 고장 난다면?” “Kubernetes 노드 중 하나가 내려간다면?” “Redis가 느려 진다면?” ”Latency time이 300ms 증가 한다면?” ”Database가 갑자기 정지 한다면?” 장애 이력, 서비스 의존 관계 참조 다양한 역할 담당자들의 의견 수렴
  • 17. 실패 주입 • 작은 것부터 시작 • Application level (exceptions, errors, etc.) • Host level (services, processes, etc.) • Resource attacks (CPU, memory, IO, etc.) • Network attacks (dependencies, latency, packet loss, etc.) • AZ attack • Region attack • People attack
  • 18. 빠르고 간단한 방법으로 실험을 중지하고 롤백! 롤백 할 수 없는 상태에 주의 (손상되거나 잘못된 데이터) 실험이 정상상태를 유지하지 못하면
  • 20. 실험 결과 정량화 • 감지 시간? • 알림 시간? • SNS 등을 통해서 공개적으로 알려진 장애 시간? • 단계별 성능 완화가 시작된 시간? • 자가 치유가 일어난 시간? • 부분 및 전체 복구하는데 걸린 시간? • 안정화될 때까지 걸린 시간?
  • 21. 개선을 위한 Postmortem • 구체적인 장애 상황 • 고객과 비즈니스에 미치는 영향 (고객, 기능, 지역) • 근본 원인? The 5 whys • 분석을 위해 필요한 데이터 • 매트릭 및 그래프 • 장애를 통해 배운 점 • 필요한 조치 • 액션 아이템
  • 22. 개선 그리고 지속적으로 반복 정상상태 가설 실험 검증 개선
  • 23. 카오스 엔지니어링은 숨어있는 문제를 발견하는데 도움을 주는 방법론입니다. 결국 사람이 시스템을 개선해야합니다.
  • 24. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 25. 실패 주입 방법 • 리소스 레벨 • Exhausting CPU, memory, and I/O : stress-ng • Exhausting the disk space on hard drives : dd • Exhausting application APIs : wrk • 네트워크 및 의존성 레벨 • Injecting latency, loss and corrupting the network : tc, /etc/hosts, Blackholing • 애플리케이션, 프로세스, 서비스 레벨 • Killing Java processes, Python processes • Database failure injection, Failures in the serverless world • 인프라 레벨 • Randomly stopping an EC2 instance in an availability zone
  • 26. 카오스 엔지니어링 도구 • Chaos Monkey from Netflix (https://netflix.github.io/chaosmonkey/) • Simian Army • Chaos Gorilla, Chaos Kong • Latency Monkey, Doctor Monkey, Conformity Monkey • Kube Monkey • Chaos Toolkit, ChaosIQ (https://chaostoolkit.org/) • Litmus (https://litmuschaos.io/) • PowerfulSeal (https://github.com/bloomberg/powerfulseal) • Istio (https://istio.io/) • Gremlin Inc. (https://www.gremlin.com/)
  • 27. Failure as a service Easy to use API and UI 타겟 유형 • Hosts, Containers, Kubernetes 공격 유형 • Resource : CPU, Memory, Disk • State : Process Killer, Shutdown • Network : Latency, Packet Loss https://app.gremlin.com/
  • 28. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 29.
  • 30.
  • 31. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 32. Amazon EKS를 통한 복원력 개선
  • 34. EKS control plane 관리형 서비스 Phase 1 Phase 2 EKS data plane 관리형 서비스 Amazon EKS AWS Fargate (Serverless) Managed Node Groups
  • 35. EKS Control Plane 고 가용성 Native AWS 컴포넌트로 구성 NLB 프론트엔드 VPC Instances Instances ELB Etcd ASG API servers ASG NLB AZ-3AZ-1 AZ-2
  • 36. EKS Data Plane mycluster.eks.amazonaws.com Amazon EKS workers Kubectl AZ 1 AZ 2 AZ 3 • Cluster Autoscaling • Horizontal Pod Autoscaling • Node/Pod Affinity • Readiness/Liveness probes • Pre-stop commands
  • 37. AWS App Mesh를 통한 복원력 개선
  • 38. AWS App Mesh 동작 방식 http/http2/grpc/tcp Service team A Service team B Control plane 상태 변경을 프록시에 배포 Proxy 서비스 간 트래픽 모니터링 및 관리
  • 39. App Mesh 적용 전 마이크로서비스
  • 40. App Mesh 적용 후 마이크로서비스
  • 41. Avoiding Cascading Failures • Traffic Management • Retry • Timeout • Fallback • Circuit Breaker https://martinfowler.com/bliki/CircuitBreaker.html
  • 42. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 44.
  • 45. Next step • Demo 관련 실습 가이드 • https://openzon.github.io/aws/summit-2020 • Kubernetes 레퍼런스 문서 • https://kubernetes.io/docs/home/ • Amazon EKS & App Mesh 실습 가이드 • https://eksworkshop.com • https://appmeshworkshop.com • Gremlin 실습 가이드 • https://www.gremlin.com/community/tutorials/how-to-install-and-use-gremlin-with-eks/ • Litmus 실습 가이드 • https://docs.litmuschaos.io/docs/getstarted/
  • 46. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 47. 감사합니다 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.