Resilience
Introduction
본 세션에서는 Resilience의 4가지 매커니즘에 대해 설명한다.
Resilience Hub 실습 링크(72h 유효) http://bit.ly/3zYchQB
Resilience: 워크로드가 장애에 대응하고 신속하게 복구할 수 있는 능력
고가용성
업무 연속성
지속적인 회복력
복원력 수명 주기 프레임워크
목표 설정, 설계 및 구현, 평가 및 테스트, 운영, 대응 및 학습
복원력 평가하기 위한 툴, 메커니즘들
WAF: Well Architected Review
6개의 필러
설계원칙
질의응답
모범사례
ARH: AWS Resilience Hub
CI/CD 과정 전체를 녹여서 스코어를 받고, 추천 작업이 나타난다.
CloudFormation, EKS Cluster 등의 그룹 단위로 평가 가능
RA2: Resilient Application Readiness Assessment
APN 접속해서 고객사 입력하고 수행 가능하며
질문에 대해 대답하고 나면 결과, 평가, 권장조치들에 대한 결과들을 수령할 수 있다.
RCP: Resilience Core Program
컨설턴트 주도 프로그램으로 사업기회가 클 경우 AWS와 함께 수행
Building Resilience Through Fault Isolation
Falut Isolation: 영향 범위를 제한하고 연쇄적인 장애를 방지
Redundancy: 단일 장애 지점이 없거나 장애에도 정상적인 기능을 유지/복구
Sufficient
Partition
Account
Region
Microserviec
AZ
cells
EC2
Partition: Commercial Partition, China Partition, GovCloud(US) Partition등 여러 파티션으로 나눠져있다.
Control Plain: 리소스를 Create, update, dlete, list, describe하는 업무 많은 Dependency가 있는 복잡한 Application ex) EC2 실행, 배치
Data Plain: 일상적인 Application
Static Stability
정적 상태에서 작동하고 변경할 필요 없이 정상적으로 계속 작동할 수 있게 하는 것
순환 종속성 방지
사전 프로비저닝 용량
기존 상태 유지
Synchronous integraction 제거
Control Plain API를 최대한 사용하지 않고 Data Plain의 API를 주로 사용하도록 만들면 장애 대응에 조금 더 낫다. 주로 Control Plain에 장애가 일어난다. 예를 들어 Route53의 Control plain의 역할과 Data Plain의 역할을 보면 대부분의 Read 작업들은 Control Plain 장애시에도 정상 작동하니 Data Plain을 사용하는 API만 사용하면 된다.
Shuffle Sharding
MSA에서 고양이가 장애가 나더라고 고양이와 함께 격리된 환경이 격리된 또 다른 환경에서 다른 서비스와 배포되어 있다면 장애의 전이를 막을 수 있다.
Cellular Architecture
각각의 서비스가 독립적인 하나의 어플리케이션을 구성해 아무것도 공유하지 않고도 정상 작동할 수 있게 만들어놓는 것, DB 때문에 쉽지 않지만 만들어논다면 장애의 영향을 받지 않는다. 가격과 서비스의 중요성의 Trade off가 될 것 같다.
멀티리전
주제
멀티리전 기본 사항
조직의 페일오버 전략
멀티리전 아키텍쳐 패턴
멀티리전 기본 사항
리전 내에서 충분한 복원력을 가지고 있는지 장애에 대한 정의 및 절차가 정의되어 있는지 리전 내 장애에 대한 운영 기준명확 비즈니스 요구사항에 대한 정의
멱등성
최종 일관성(최종적인 일관성은 맞도록)
정적 안정화(다른 곳에서 장애가 발생해도)
Exponential Backoff(장애시 과부하 방지)
스로틀링(서비스 과부하 방지)
서킷 브레이킹(실패시 다른 라우트로)
비즈니스에 대한 이해
데이터에 대한 이해가 필요
일관성에 대한 이해(데이터 일관성의 중요도에 따른 Replica 동작방식) 데이터 접근 방식에 대한 이해(Read or Write 가중치)
의존성에 대한 이해
원하는 지역에 AWS 서비스가 존재하는지
모니터링
다른 리전으로의 중요한 메트릭, 로그는 전송하며, 다른 리전에서도 모니터링이 가능하도록 만들어야 한다.
비용과 노력, 복잡성, 운영 부담, 일관성 & 지연을 이길 정도로 비즈니스의 복원력이 중요한 경우 시행해야 한다.
기업의 페일오버 전략
Component-level: 양극화된 동작과 테스트 복잡성이 발생
Application-level
Dependency-graph
-portpolio
pattern #1: Active/passive
pattern #2: Active/Active
극도의 고가용성
pattern #2.2: Active/Active
Single Writer, Multiple Readers
pattern #2.3: Active/Active
Single Writer, Multiple Readers(Strong Consistency)
쓰기 후 즉시 읽기 강한 일관성
pattern #2.5: Active/Active
Multiple Writers, Multiple Readers
Detecting and mitigating gray failure
outlier 탐지
Demension(AZ 정보)를 수집하면 어느곳에서 장애가 났는지 확인 가능하다.
AZ Gray Failure 완화 방법
기다리기
AZ 대피
Region DR
가장 쉬운 방법은 AZ affinity
CloudMap, DynamoDB, Systems Manager 등을 이용해 같은 AZ 안에서의 통신만 유도해 통신요금을 아낄 수 있다.
https://github.com/bamcis-io/multi-az-observability
ARC(Application Recovery Controller)
Route53의 Data Plain
Chaos Engineering
알지도 못하고 이해하지 못하는 혼돈의 상황을 대비하기 위한 것 https://signin.aws.amazon.com/federation?Issuer=workshopstudio&Destination=https://us-east-1.console.aws.amazon.com/console/home&SigninToken=4eYK7tHtk937ddwDd_K06OQV1NjCglZHei93TJ0XuZ7UFb_PamAl11dhLS5DLz_kJ_n8ZITT67bMa-ePcVtLbTZ-TQ-GGDPwRN8peIXKw0pSk5gXwxmj5yjGv8Wu7H6d5xPJyR76w6mo1PJKfYkg_rV5wEj0NXciELptwtfIHWJYZaWC6zqBGMMGXk_aRg3iSEuxQnhnMjVEsNw-M3PXQo97LWPYwNniYIyLqBtEk-G5Hoq5rdrqI6Tj9UylzYztftl_u4PATrG5ZYU-FloOAm7cHjE8VZduK_LD5CTw0dt7ne5oMX7yvpxdXsJjEtdrMyHIv7DA0XC1mVKetR6uyXi8Xhu-zQjQ86QwTDaIf60cGE2QfJJ2x-gTUYcMSB9GPIDtHHBYoMYwjStiqC9Ep32j1kxxBHaR3JPnOcCIgGxJKdFYLySrynfo4sU-bPSlbX18y98KY_k6hOVzeio_kQFwggceYAfo_G0Fu7sJHBM9Yav2KbEK9F0aiAK6iKG_VOfaCfmaZA4gK3FJb-19Pt0ywxj-oROOOth_20Vii5BAusGrD59LAo2rM0TUmddxK7ndEa31YKkVgAH8HgaZYdYxRhTKHOBoIehkJBOTsR4mMr_MYcuH-gb6ZAfNNpNKk3fuxw_Ecg5AB0LgaAYKz07kCO9wxhoOAb8NvybpfLLGkA8IlDt6NXSV3Q4DmBHryjpN0_HuYeA6SVL1lG2UpBRmcI6RUAvAxGyzoULCX7-vH1Y3x1I6YhCm4AhNcPlJ1PzCB41EHKkiAgUqUFFsMXvUcAN6ulwPlPxxP98WsQPmhBRsMEFYC6GNksmmC2w4N1jUllkSfaPxxq57bWtfVO7VYnmZ06hpzAuWYab0E_VZf3kcjSCIdO3xsj8z0s97TqJElkh0fmojB19A57-xVSkhurn_TYOhomJPocdQG9EglhzLG60_n3TbaQj1zi_FT72Bv9E4nQwlvj1gFtsO81kOhed_j2DyL7eaJ_jgl8j1xxTmONNe0J2kNtKEL-DYFSVUmJvdNkV0GEoMc_U1MrLgFtJYcaQWxVJJjsmI8JkBVqQkEC2pzMn36X7tF_6Wzbp0j9EWkCp_OBYnRCNDqg4RE9cf5VeV459yKTDXGBLdKrjOBcjxIg6OL07K_ggEJNepbS6W6SoABIsPD2kLyKynM1DWqXtkVIaOi2gHYPAv7SBwGO_qN2i8pxHPkYi3G1uPBAEEgaVVfKHKY-6Vicv1qKjRxjOL55ZIxUUeOUg_N3vPmcHkdhtUiiS7THR6xHwatYwrXDRhW_8tVv_1niaP-uDKTd2biZSFtwq2BXArOhkyBDWHil7HhubsJ6P0v-ZzgVjsqc-8LqULMKtPIpF7EtzBTCj-oP6bD1o3JhplbnOdAF8vvQS-37Y3i7ftfVCFwD8HWAixbfeJIOqjuYNAgsTj232nODPPaJw&Action=login
Last updated