성능을 고려한 아키텍처 선택 - 성능 효율성 원칙

성능을 고려한 아키텍처 선택

워크로드에서 최적의 성능을 얻으려면 여러 가지 방식이 필요합니다. Well-Architected 시스템은 여러 개의 솔루션을 사용하고 다양한 특성을 사용하여 성능을 높입니다.

데이터 기반 접근 방식으로 아키텍처에 적합한 패턴 및 구현을 선택하면 경제적인 솔루션을 구축할 수 있습니다. AWS 솔루션스 아키텍트, AWS 참조 아키텍처AWS 파트너 네트워크(APN) 파트너는 업계 지식을 바탕으로 사용자가 아키텍처를 선택하는 과정을 도울 수 있습니다. 하지만 아키텍처를 최적화하기 위해서는 벤치마킹 또는 로드 테스트를 통해 획득한 데이터가 필요합니다.

아키텍처는 여러 아키텍처 접근 방식(예: 이벤트 기반, ETL 또는 파이프라인)을 결합하게 될 가능성이 높습니다. 아키텍처 구현에는 아키텍처 성능 최적화에 적합한 AWS 서비스를 사용하게 됩니다. 다음 섹션에서는 고려할 네 가지 주요 리소스 유형(컴퓨팅, 스토리지, 데이터베이스, 네트워크)에 대해 살펴봅니다.

사용 가능한 서비스 및 리소스 파악: 클라우드에서 사용 가능한 방대한 서비스와 리소스에 대해 알아보고 이해합니다. 워크로드와 관련이 있는 서비스 및 구성 옵션을 확인하고, 성능을 최적화하는 방법을 파악합니다.

기존 워크로드를 평가하는 경우에는 워크로드에 사용되는 다양한 서비스 리소스의 인벤토리를 생성해야 합니다. 인벤토리는 관리형 서비스 및 최신 기술로 교체 가능한 구성 요소를 평가하는 데 도움이 됩니다.

아키텍처를 선택하는 프로세스 정의: 클라우드에 대한 내부 경험과 지식을 사용하거나 게시된 사용 사례, 관련 설명서 또는 백서 등의 외부 리소스를 사용하여 리소스 및 서비스를 선택하는 프로세스를 정의합니다. 워크로드에 사용될 수 있는 서비스는 테스트하고 벤치마킹할 수 있도록 장려하는 프로세스를 정의해야 합니다.

아키텍처에 대한 중요한 사용자 사례를 작성할 때는 각 중요 사례를 얼마나 빠르게 실행했는지 성능 요구 사항을 포함해야 합니다. 이러한 중요 사례에서는 이런 사례들이 요구 사항을 어떻게 만족시키는지 가시성을 확보하기 위한 추가적인 스크립트들이 구현되어야 합니다.

비용 요구 사항을 고려한 의사 결정: 워크로드에는 작업에 대한 비용 요구 사항이 있는 경우가 많습니다. 내부 비용 제어 기능을 사용하여 예상되는 리소스 요구 사항에 적합한 유형 및 크기의 리소스를 선택하십시오.

관리형 데이터베이스, 인메모리 캐시 및 기타 서비스와 같은 완전관리형 서비스로 대체할 수 있는 워크로드 구성 요소를 결정하십시오. 운영 워크로드를 줄이면 비즈니스 결과에 리소스를 집중시킬 수 있습니다.

비용 요구 사항 모범 사례는 다음 백서에서 비용 효율적인 리소스 섹션을 참조하십시오. 비용 최적화 원칙 백서 참조.

정책 또는 참조 아키텍처 사용: 내부 정책 및 기존 참조 아키텍처를 평가하고 분석을 사용하여 워크로드에 사용할 서비스 및 구성을 선택하면 성능 및 효율성을 극대화할 수 있습니다.

클라우드 공급자 또는 해당하는 파트너의 지침 사용: 클라우드 회사 리소스(예: 솔루션스 아키텍트, 전문 서비스 또는 적절한 파트너)를 의사 결정의 지침으로 사용하십시오. 이러한 리소스는 최적의 성능을 위해 아키텍처를 검토하고 개선하는 데 도움이 될 수 있습니다.

추가 지침 또는 제품 정보가 필요한 경우 AWS에 문의하여 지원을 받으십시오. AWS 솔루션스 아키텍트 및 AWS Professional Services 는 솔루션 구현에 대한 지침을 제공합니다. APN 파트너 는 비즈니스 민첩성 및 혁신을 달성하는 데 도움이 되는 AWS 전문 지식을 제공합니다.

기존 워크로드 벤치마크: 기존 워크로드의 성능을 벤치마크하여 클라우드에서의 성능을 파악합니다. 이러한 벤치마크에서 수집된 데이터를 사용하면 아키텍처를 원활하게 결정할 수 있습니다.

통합 테스트에서 벤치마킹을 사용하여 워크로드 구성 요소의 성능에 관한 데이터를 생성합니다. 벤치마킹은 대개 로드 테스트보다 빠르게 설정할 수 있으며, 특정 구성 요소의 기술을 평가할 때 사용됩니다. 벤치마킹은 새 프로젝트를 시작할 때 로드 테스트를 위한 완전한 솔루션이 부족한 경우 종종 사용됩니다.

사용자 지정 벤치마크 테스트를 직접 작성할 수도 있고 TPC-DS 등의 업계 표준 테스트를 사용하여 데이터 웨어하우징 워크로드를 벤치마킹할 수도 있습니다. 산업 벤치마크는 여러 환경을 비교할 때 유용합니다. 사용자 지정 벤치마크는 아키텍처 내에서 수행될 것으로 예상되는 특정 작업 유형을 타게팅하는 데 유용합니다.

벤치마킹을 사용할 때는 유효한 결과를 얻을 수 있도록 테스트 환경을 사전 준비하는 것이 중요합니다. 동일한 벤치마크를 여러 번 실행하여 시간대별 차이를 파악하십시오.

벤치마크는 대개 로드 테스트보다 더 빠르게 실행되므로 배포 파이프라인 초기에 성능 편차 관련 피드백을 더 빠르게 제공하려는 경우에 사용할 수 있습니다. 구성 요소나 서비스의 큰 변화를 평가할 때 벤치마킹을 수행하면 변경 작업의 타당성을 빠르게 확인할 수 있습니다. 벤치마킹은 로드 테스트와 함께 사용해야 합니다. 로드 테스트에서는 프로덕션 환경의 워크로드 성능에 대한 정보를 얻을 수 있기 때문입니다.

워크로드 로드 테스트: 다양한 리소스 유형 및 크기의 최신 워크로드 아키텍처를 클라우드에 배포합니다. 배포를 모니터링하여 병목 현상 또는 초과 용량을 식별하는 성능 지표를 캡처합니다. 이 성능 정보를 사용하여 아키텍처 및 리소스 선택을 설계하거나 개선할 수 있습니다.

로드 테스트에는 실제 워크로드가 사용되므로 프로덕션 환경에서 솔루션의 성능을 확인할 수 있습니다. 로드 테스트는 프로덕션 데이터의 통합 또는 제거 버전(민감한 정보 또는 식별 정보 제거)을 사용하여 실행되어야 합니다. 또한 대규모 워크로드를 통해 전체 아키텍처에서 진행되는 재생/사전 프로그래밍 방식의 사용자 작업 과정을 사용합니다. 전송 파이프라인의 일부로 로드 테스트를 자동으로 수행하고 결과를 미리 정의된 KPI 및 임계값과 비교합니다. 이렇게 하면 필요한 성능을 계속해서 달성할 수 있습니다.

Amazon CloudWatch 는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch를 사용하여 임계값이 초과되었음을 나타내는 경보를 설정합니다. 이 경보는 테스트가 기대 성능 범위를 벗어났음을 나타냅니다.

AWS 서비스를 사용하면 프로덕션 규모의 환경을 실행하여 적극적으로 아키텍처를 테스트할 수 있습니다. 테스트 환경은 필요할 때에만 비용을 지불하므로 온프레미스 환경을 사용하는 데 드는 비용의 일부로 필요한 모든 테스트를 수행할 수 있습니다. AWS Cloud를 활용하여 워크로드를 테스트해 확장이 실패하지 않는지 또는 비선형 방식으로 확장되는지 확인합니다. 여러분은 Amazon EC2 스팟 인스턴스 를 사용하여 저렴한 비용으로 로드를 생성하고 병목 현상이 프로덕션 환경에서 발생하기 전에 미리 파악할 수 있습니다.

로드 테스트를 실행하는 데 시간이 오래 걸릴 때는 테스트 환경을 복제하여 테스트를 병렬 처리합니다. 이 경우 비용은 비슷하지만 테스트 시간은 단축됩니다. 예를 들어 100시간 동안 EC2 인스턴스 하나를 실행하는 경우와 1시간 동안 인스턴스 100개를 실행하는 경우의 비용은 동일합니다. 스팟 인스턴스를 사용하고 프로덕션에 사용하는 리전보다 비용이 저렴한 리전을 선택해 로드 테스트의 비용을 줄일 수도 있습니다.

로드 테스트 클라이언트의 위치는 최종 사용자가 분산되어 있는 지역을 반영해야 합니다.