카오스 몽키
· 서비스를 공급하는 인스턴스에 일부러 랜덤으로 장애를 일으키는 것
· 목적: 1. 가장 약한 부분이 어디인지 파악하여 엔지니어가 문제에 대처하는 자동화된 트리거를 성정 ->
한밤중에 장애 발생으로 엔지니어가 호출될 일이 없음
2. 지역 단위의 중단을 시뮬레이션하는 실험을 정기적으로 실행해 조기에 모든 시스템 약점을 파악해 수정 가능
· 카오스 몽키의 종류:
1. Latency monkey: RESTful 클라이언트-서버 통신 계층에 인공적인 지연 유발
2. Conformity monkey: 최상의 조건이 아닌 인스턴스를 찾아 종료 (예:자동 스케이링 그룹에 속하지 않은 인스턴스를 찾아 재시작)
3. Doctor monkey: 인스턴스들의 상태를 점검하고 CPU 부하율 등의 정보들을 모니터링하여 불안정한 인스턴스를 탐지하여 제거
4. Janitoy monkey: 클라우드 환경이 잡음으나 낭비 없이 작동하도록 보장, 사용되지 않는 리소스들을 찾아 제거
5. Security monkey: Conformity monkey의 확장으로 보안에 위배되거나 최약점을 찾고 공격하는 인스턴스 종료
6. 10-18 monkey: 다양한 언어와 문자를 사용하여 여러 지역에서 고객에서 서비스를 제공할 경우 설정 및 런타임 문제 감지
7. monkey: AWS의 가용성 영역을 전체적으로 중단
카오스 엔지니어링
· 위에서 설명한 문제를 인위적으로 발생시켜 미리미리 준비하는 엔지니어링 방식
· 카오스엔지니어링의 원칙
1. 시스템의 정상 상태를 정의해 정상 동작의 기준을 설정
2. 대조군과 실험군 양쪽에서 모두 이 정상 상태가 계속된다는 가설을 세움
3. 서버 멈춤, 하드 드라이버 고장, 네트워크 연결 끊김과 같은 실제 상황을 반영하는 변수 도입
4. 대조군과 실험군 사이의 차이점을 확인해 가설이 틀렸음을 입증
출처
'컴퓨터공학' 카테고리의 다른 글
[Computer Science] SGML이란? , <!-- --> 주석의 유래 (0) | 2021.10.14 |
---|---|
MVVM vs MVC, 장점과 단점 (0) | 2021.10.14 |
[Computer Science] 스핀락(spinlock)의 정의와 사용 이유 (0) | 2021.09.13 |
[Computer Science] 교착상태(deadlock), 발생 조건과 방지 방법 (0) | 2021.09.12 |
문자열 인코딩, 아스키코드/유니코드 (0) | 2021.08.25 |
댓글