PERF 1: 최고의 성능을 제공하는 아키텍처를 선택하려면 어떻게 해야 합니까?
워크로드에서 최적의 성능을 얻으려면 여러 접근 방식을 취해야 합니다. Well-Architected 시스템은 다수의 솔루션 및 기능을 사용하여 성능을
개선합니다.
리소스
Introducing The Amazon Builders’ Library (DOP328)
모범 사례:
-
사용 가능한 서비스 및 리소스 파악:
클라우드에서 사용 가능한 방대한 서비스와 리소스에 대해 알아보고 이해합니다. 워크로드와 관련이 있는 서비스 및 구성 옵션을 확인하고, 성능을 최적화하는
방법을 파악합니다.
-
아키텍처를 선택하는 프로세스 정의:
클라우드에 대한 내부 경험과 지식을 사용하거나 게시된 사용 사례, 관련 설명서 또는 백서 등의 외부 리소스를 사용하여 리소스 및 서비스를 선택하는
프로세스를 정의합니다. 워크로드에 사용할 수 있는 서비스를 사용한 실험과 벤치마킹을 장려하는 프로세스를 정의해야 합니다.
-
비용 요구 사항을 의사 결정에 반영합니다. :
워크로드에는 작업에 대한 비용 요구 사항이 있는 경우가 많습니다. 내부 비용 제어 기능을 사용하여 예상되는 리소스 요구 사항에 적합한 유형 및 크기의
리소스를 선택하십시오.
-
정책 또는 참조 아키텍처 사용:
내부 정책 및 기존 참조 아키텍처를 평가하고 분석을 사용하여 워크로드에 사용할 서비스 및 구성을 선택하면 성능 및 효율성을 극대화할 수 있습니다.
-
클라우드 공급자 또는 해당하는 파트너의 지침 사용:
클라우드 회사 리소스(예: 솔루션스 아키텍트, 전문 서비스 또는 적절한 파트너)를 의사 결정의 지침으로 사용하십시오. 이러한 리소스는 최적의 성능을
위해 아키텍처를 검토하고 개선하는 데 도움이 될 수 있습니다.
-
기존 워크로드 벤치마크:
기존 워크로드의 성능을 벤치마크하여 클라우드에서의 성능을 파악합니다. 이러한 벤치마크에서 수집된 데이터를 사용하면 아키텍처를 원활하게 결정할 수 있습니다.
-
워크로드에 대한 로드 테스트:
다양한 리소스 유형 및 크기의 최신 워크로드 아키텍처를 클라우드에 배포합니다. 배포를 모니터링하여 병목 현상 또는 초과 용량을 식별하는 성능 지표를
캡처합니다. 이 성능 정보를 사용하여 아키텍처 및 리소스 선택을 설계하거나 개선할 수 있습니다.
개선 계획
사용 가능한 서비스 및 리소스 파악
관련 서비스에 대한 워크로드 소프트웨어 및 아키텍처 인벤토리 생성: 워크로드의 인벤토리를 수집하고 자세히 알아볼 제품 범주를 결정합니다.관리형 서비스로 대체하여 성능을 개선하고 운영 복잡성을 줄일 수 있는 워크로드 구성 요소를 식별합니다.
아키텍처를 선택하는 프로세스 정의
아키텍처 접근 방식 선택: 성능 요구 사항을 충족하는 아키텍처의 종류를 식별합니다.전송 미디어(데스크톱, 웹, 모바일, IoT), 기존 요구 사항 및 통합 등의 제약 조건을 식별합니다.리팩터링을 포함한 재사용 기회를 식별합니다. AWS Solution Architects, AWS Reference Architectures 및 APN
파트너와 같은 다른 팀, 아키텍처 다이어그램 및 리소스를 참조하면 아키텍처 선택에 도움을 받을 수 있습니다.
성능 요구 사항 정의: 고객 경험을 사용하여 가장 중요한 지표를 식별합니다. 각 지표에 대해 목표, 측정 방식 및 우선 순위를 정합니다.고객 경험을 정의합니다. 고객이 요구하는 성능 경험 및 고객이 워크로드의 성능을 판단하는 근거를 문서화합니다.중요한 사용자 사례에 대한 경험 문제를 우선적으로 처리합니다. 성능 요구 사항을 포함하고 스크립트로 작성된 사용자 여정을 구현하여 이러한 사례의 성능이
요구 사항에 부합하는지 확인합니다.
비용 요구 사항을 의사 결정에 반영합니다.
워크로드 구성 요소를 최적화하여 비용 절감: 워크로드 구성 요소를 적정 크기로 조정하고 탄력성을 활성화하여 비용을 절감하고 구성 요소 효율성을 극대화합니다.해당하는 경우 관리형 데이터베이스, 인메모리 캐시 및 역방향 프록시와 같은 관리형 서비스로 대체할 수 있는 워크로드 구성 요소를 결정합니다.
정책 또는 참조 아키텍처 사용
기존 정책 또는 참조 아키텍처를 사용하여 워크로드 배포: 서비스를 클라우드 배포에 통합한 다음 성능 테스트를 사용하여 성능 요구 사항을 계속해서 충족할 수 있는지 확인합니다.
클라우드 공급자 또는 해당하는 파트너의 지침 사용
AWS 리소스에 지원 문의: AWS 솔루션스 아키텍트 및 Professional Services는 솔루션 구현에 대한 지침을 제공합니다.APN 파트너는 비즈니스 민첩성 및 혁신을 달성하는 데 도움이 되는 AWS 전문 지식을 제공합니다.
기존 워크로드 벤치마크
개발 중 성능 모니터링: 워크로드가 변경될 때의 성능을 파악할 수 있는 프로세스를 구현합니다.
전송 파이프라인에 통합: 전송 파이프라인에서 로드 테스트를 자동으로 실행합니다. 미리 정의된 KPI(핵심 성능 지표) 및 임계값을 기준으로 테스트 결과를 비교하여 성능 요구
사항이 계속 충족되는지 확인합니다.
사용자 여정 테스트: 로드 테스트에는 프로덕션 데이터의 통합 또는 제거 버전(민감한 정보 또는 식별 정보 제거)을 사용하십시오. 대규모 애플리케이션에서 재생 또는 사전
프로그래밍된 사용자 여정을 사용하여 전체 아키텍처를 실행합니다.
워크로드에 대한 로드 테스트
로드 테스트를 수행하여 선택한 접근 방식 검증: 개념 증명에 대한 로드 테스트를 수행하여 성능 요구 사항이 충족되는지 확인합니다. AWS 서비스를 사용하면 프로덕션 규모의 환경을 실행하여 아키텍처를
테스트할 수 있습니다. 테스트 환경이 필요할 때에만 비용을 지불하므로 온프레미스 환경을 사용하는 데 드는 비용의 일부로 필요한 모든 테스트를 수행할
수 있습니다. Amazon EC2 테스트 정책
지표 모니터링: Amazon CloudWatch는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는
파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다.
대규모 테스트: 로드 테스트에는 실제 워크로드가 사용되므로 프로덕션 환경에서 솔루션의 성능을 확인할 수 있습니다. AWS 서비스를 사용하면 프로덕션 규모의 환경을
실행하여 아키텍처를 테스트할 수 있습니다. 테스트 환경이 필요할 때만 비용을 지불하므로 온프레미스 환경을 사용할 때보다 저렴한 비용으로 전체 테스트를
실행할 수 있습니다. AWS 클라우드를 활용하여 워크로드를 테스트하면 확장에 실패한 위치 또는 비선형 방식으로 확장되는 위치를 찾을 수 있습니다.
예를 들어, 스팟 인스턴스를 사용하여 저렴한 비용으로 로드를 생성하고 프로덕션 환경에서 발생하기 전에 병목 현상을 발견할 수 있습니다.