모든 유형의 확장에서 애플리케이션의 아키텍처와 가능한 최적화를 고려하세요. 예를 들어 가격 및 성능 이점을 제공하는 최적화된 콘텐츠 전송 네트워크에서 정적 콘텐츠를 제공해야 합니다. 또한 데이터 저장소 백엔드를 추가로 캐싱하면 성능이 향상되고 비용이 많이 드는 확장 요구사항을 최소화할 수 있습니다.
성능 테스트 및 벤치마크
벤치마킹 및 성능 테스트를 통해 개발 중 잠재적인 성능 병목 현상을 식별하고, 시간 경과에 따른 추세를 추적할 수 있으며, 아키텍처, 기술 스택, 클라우드 제공업체 또는 기타 옵션을 비교하여 의사결정을 지원할 수 있습니다.
부하 테스트는 미리 결정되고 제어된 유형의 부하, 트래픽 또는 데이터를 사용하여 목표를 기준으로 백엔드 성능을 측정합니다. 다양한 부하 수준이 애플리케이션 성능에 미치는 영향을 확인할 수 있습니다.
확장성 테스트는 수직 확장 및 수평 확장하는 애플리케이션의 기능을 분석하는 데 중점을 둡니다. 확장성 테스트는 애플리케이션이 늘어난 부하에 응답하는 방식과 백엔드 (데이터 저장소 포함)가 조정되는 방식을 보여줍니다.
애플리케이션 벤치마킹을 시작하기 전에 성능 및 속도 (예: 지연 시간, 처리량, 속도), 리소스 사용률 (CPU 사용률, 메모리 사용량, 백엔드 구성요소 간 네트워크 트래픽), 비용을 포함하여 명확한 목표를 정의합니다. 확장 시 발생하는 지연을 고려하세요. 예를 들어 트래픽이 급증하거나 급증할 때 애플리케이션이 할당된 '예약' 리소스 집합을 넘어서 확장해야 하는 경우입니다.
Apache JMeter 및 Locust와 같은 다양한 도구를 벤치마킹 및 성능 테스트에 사용할 수 있습니다. 테스트 도구를 선택할 때는 스크립팅 지원, 디버깅을 위한 IDE 통합, 추가 플러그인 또는 테스트할 트래픽 및 규모 유형의 지원 등 사용 가능한 테스트 유형을 고려하세요.
클라우드 제공업체를 사용하는 경우 잠재적인 제한을 피하기 위해 부하 테스트에 대한 추가 요구사항이나 권장사항이 있는지 확인합니다. 예를 들어 Cloud Run 권장사항을 고려합니다.
비용 및 성능 고려사항
수직 확장은 성능 향상에 필수적이지만, 비용 최소화를 위한 축소도 고려해야 합니다. 요청이 없는 백엔드 애플리케이션의 기준 비용과 애플리케이션 확장과 관련된 비용을 고려하세요.
사용률에 관계없이 온프레미스 또는 서버 기반 아키텍처에는 고정 비용이 청구될 수 있습니다. 일부 클라우드 환경에서는 '0으로 확장'하여 요청이 이루어지지 않을 때 비용이 발생하지 않도록 할 수 있습니다. 클라우드 제공업체는 리소스 사전 약정과 같은 다양한 구성 및 가격 책정 전략을 살펴볼 수 있는 계산기를 제공합니다.