검토 - 성능 효율성 원칙

검토

워크로드 설계 시 선택할 수 있는 옵션은 한정되어 있습니다. 그러나 시간이 지나면 워크로드의 성능을 개선할 수 있는 새로운 기술과 접근 방식을 사용할 수 있게 됩니다. 클라우드에서는 인프라가 코드로 되어 있으므로 새 기능과 서비스를 훨씬 쉽게 사용해 볼 수 있습니다.

아키텍처에 데이터 기반 방식을 도입하려면 다음 사항을 고려하는 성능 검토 프로세스를 구현해야 합니다.

  • 인프라의 코드화: AWS CloudFormation 템플릿 등의 방식을 사용하여 인프라를 코드로 정의합니다. 템플릿을 사용하면 애플리케이션 코드 및 구성과 함께 인프라를 원본 제어에 포함할 수 있습니다. 이렇게 하면 소프트웨어를 개발하는 데 사용하는 것과 동일한 사례를 인프라에 적용할 수 있으므로 검토를 빠르게 반복할 수 있습니다.

  • 배포 파이프라인: 소스 코드 리포지토리, 빌드 시스템, 배포, 테스트 자동화 등의 CI/CD(지속적 통합/지속적 전달) 파이프라인을 사용하여 인프라를 배포합니다. 이렇게 하면 반복 가능하며 일관성 있는 저렴한 방식으로 배포를 반복해서 진행할 수 있습니다.

  • 잘 정의된 지표: KPI(핵심 성과 지표) 측정을 위한 지표와 모니터링을 설정합니다. 기술 및 비즈니스 지표를 모두 사용하는 것이 좋습니다. 웹 사이트 또는 모바일 앱의 경우 주요 지표는 첫 번째 바이트가 수신되거나 첫 번째 렌더링이 완료될 때까지의 시간을 측정합니다. 그 외에 일반적으로 적용되는 지표에는 스레드 수, 가비지 수집 속도, 대기 상태 등이 있습니다. 요청당 누적 비용 집계액 등의 비즈니스 지표에서는 비용 절감 방법을 파악할 수 있습니다. 지표를 해석할 방법을 신중하게 고려합니다. 예를 들어 평균이 아닌 최대값이나 99번째 백분위수를 선택할 수 있습니다.

  • 자동 성능 테스트: 배포 프로세스의 일환으로 더 빠르게 실행되는 테스트가 정상적으로 완료되고 나면 성능 테스트를 자동으로 트리거합니다. 이 자동 테스트에서는 새 환경을 설정하고, 테스트 데이터 등의 초기 조건을 설정한 다음 일련의 벤치마크 및 로드 테스트를 실행해야 합니다. 시간별 성능 변화를 추적할 수 있도록 이러한 테스트의 결과를 빌드에 다시 연결해야 합니다. 오래 실행되는 테스트의 경우에는 테스트를 빌드의 다른 부분과 비동기식으로 파이프라인에 포함할 수 있습니다. Amazon EC2 스팟 인스턴스를 사용하여 야간에 성능 테스트를 실행할 수도 있습니다.

  • 로드 생성: 통합/사전 녹화 방식의 사용자 여정을 복제하는 일련의 테스트 스크립트를 생성해야 합니다. 이러한 스크립트는 항상 동일한 결과를 반환하고 결합되지 않아야 합니다. 유효한 결과를 얻기 위해 “사전 준비” 스크립트를 포함해야 할 수도 있습니다. 따라서 스크립트를 최대한 많이 테스트하여 프로덕션 환경의 사용 동작을 복제하는 것이 좋습니다. 소프트웨어 또는 SaaS(Software-as-a-Service) 솔루션을 사용하여 로드를 생성할 수 있습니다. 경제적으로 로드를 생성할 수 있는 AWS Marketplace 솔루션 및 스팟 인스턴스를 사용하는 것을 고려하십시오.

  • 성능 확인: 팀이 주요 지표(특히 각 빌드 버전 관련 지표)를 확인할 수 있도록 제공해야 합니다. 이렇게 하면 시간 경과에 따른 긍정적이거나 부정적인 주요 트렌드를 확인할 수 있습니다. 또한 오류나 예외 수 관련 지표도 표시하여 작동 중인 시스템을 테스트하고 있는지를 확인해야 합니다.

  • 시각화: 성능 문제, 핫스팟, 대기 상태, 낮은 사용률 등이 확인되는 위치를 명확하게 표시하는 시각화 기술을 사용합니다. 아키텍처 다이어그램 위에 성능 지표를 겹쳐서 표시합니다. 콜 그래프나 코드는 문제를 빠르게 확인하는 데 도움을 줍니다.

이 성능 검토 프로세스는 기존 배포 파이프라인의 단순 확장으로 구현한 다음 테스트 요구 사항이 복잡해짐에 따라 장기적으로 개선할 수 있습니다. 그러면 이후 아키텍처에서는 일반화된 방식을 적용하고 동일한 프로세스와 아티팩트를 재사용할 수 있습니다.

아키텍처의 성능 저하는 성능 검토 프로세스가 없거나 효과적이지 않은 경우 주로 발생합니다. 아키텍처의 성능이 불량한 경우 이 성능 검토 프로세스를 시행하면 Deming의 PDCA(계획-작업-검사-조치) 주기를 적용해 반복 과정을 개선할 수 있습니다.