오래된 콘텐츠입니다. 이 버전의 Well-Architected Framework는 현재 다음 위치에서 찾을 수 있습니다. https://docs.aws.amazon.com/ko_kr/wellarchitected/2022-03-31/framework/reliability.html

REL 12: 안정성은 어떻게 테스트합니까?

프로덕션 환경의 스트레스에 대한 복원력을 가지도록 워크로드를 설계한 후 설계대로 작동하고 예상한 복원력을 제공하는지 확인할 수 있는 유일한 방법은 테스트입니다.

리소스

Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
Injecting Chaos to Amazon EC2 using AWS Systems Manager
Resilience Engineering: Learning to Embrace Failure
AWS re:Invent 2019: Improving resiliency with chaos engineering (DOP309-R1)
Continuous Delivery and Continuous Integration
Using Canaries (Amazon CloudWatch Synthetics)
Use CodePipeline with AWS CodeBuild to test code and run builds
Automate your operational playbooks with AWS Systems Manager
Principles of Chaos Engineering
Apache JMeter
Casey Rosenthal, Lorin Hochstein, Aaron Blohowiak, Nora Jones, Ali Basiri. “Chaos Engineering” (August 2017)
AWS Marketplace: products that can be used for continuous integration
APN Partner: partners that can help with implementation of a continuous integration pipeline

모범 사례:

개선 계획

플레이북을 사용하여 장애 조사

  • 플레이북을 사용하여 문제 파악: 플레이북은 문제 조사를 위한 문서화된 프로세스입니다. 플레이북에 프로세스를 문서화하면 장애 발생 시나리오에 일관되고 빠르게 대응할 수 있습니다. 플레이북은 적절한 기술을 보유한 팀원이 해당하는 정보를 수집하고, 장애의 잠재적 출처를 확인하고, 결함 위치를 구분하고, 발생 요인을 확인(인시던트 사후 분석 수행)하는 데 필요한 정보와 지침을 포함해야 합니다.
  • 인시던트 사후 분석 수행

  • 인시던트 사후 분석을 위한 표준 수립: 우수한 인시던트 사후 분석은 시스템의 다른 위치에서 사용되는 아키텍처 패턴이 있는 문제에 대해 공통 솔루션을 제안할 수 있는 기회를 제공합니다.
  • 발생 요인을 확인하는 프로세스 사용: 재발을 제한하거나 방지하기 위한 완화책을 개발하고 빠르고 효과적인 대응을 위한 절차를 개발할 수 있도록 이벤트의 발생 요인을 식별하고 문서화하는 프로세스를 마련합니다. 목표 대상에 맞게 적절히 원인을 알립니다.
    What is log analytics?
  • 기능 요구 사항 테스트

  • 기능 요구 사항 테스트: 여기에는 단위 테스트와 필수 기능을 검증하는 통합 테스트가 포함됩니다.
    Use CodePipeline with AWS CodeBuild to test code and run builds
    AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild
    Continuous Delivery and Continuous Integration
    Using Canaries (Amazon CloudWatch Synthetics)
    Software test automation
  • 확장 및 성능 요구 사항 테스트

  • 확장 및 성능 요구 사항 테스트: 로드 테스트를 수행하여 워크로드가 조정 및 성능 요구 사항을 충족하는지 확인합니다.
    Distributed Load Testing on AWS: simulate thousands of connected users
    Apache JMeter
  • 카오스 엔지니어링을 이용한 복원력 테스트

  • 카오스 엔지니어링을 이용한 복원력 테스트: 사전 프로덕션 및 프로덕션 환경에 정기적으로 장애를 주입하는 테스트를 실행합니다. 워크로드에서 장애에 대응할 방법에 대한 가설을 테스트 결과와 비교하고 일치하지 않는 경우 반복합니다. 프로덕션 테스트가 사용자에게 영향을 미치지 않는지 확인합니다.
    Principles of Chaos Engineering
    Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
    Injecting Chaos to Amazon EC2 using AWS Systems Manager
    AWS re:Invent 2019: Improving resiliency with chaos engineering (DOP309-R1)
  • 정기적으로 게임 데이 진행

  • 런북 및 플레이북을 정기적으로 실행하도록 게임 데이 수행: 게임 데이에는 비즈니스 소유자, 개발 직원, 운영 직원 및 인시던트 대응 팀 등 프로덕션 중단에 관련된 모든 사람이 참여해야 합니다.