흐름 비용 최적화를 위한 권장 사항

이 Azure Well-Architected Framework 비용 최적화 검사 목록 권장 사항에 적용됩니다.

CO:09 흐름 비용을 최적화합니다. 각 흐름의 비용을 흐름 우선 순위에 맞게 조정합니다. 흐름의 우선 순위를 지정할 때 각 흐름의 기능, 기능 및 비기능 요구 사항을 고려합니다. 흐름 지출을 최적화하려면 전략적 타협이 필요한 경우가 많습니다.

이 가이드에서는 워크로드에 있는 각 흐름의 비용을 최적화하기 위한 권장 사항을 설명합니다. 워크로드의 흐름을 비용 최적화하려면 전략적으로 리소스를 할당하고 관리하여 성능을 유지하면서 비용을 최소화해야 합니다. 이 최적화는 투자된 리소스의 효율적인 활용을 보장하고, 불필요한 지출을 줄이고, 인프라에 대한 전반적인 투자 수익률을 개선하기 때문에 매우 중요합니다. 워크로드의 흐름을 비용 최적화하지 않으면 리소스에 과도하게 지출할 위험이 있으므로 운영 비용이 부풀어 오르고 수익성이 저하됩니다.

정의

용어 정의
분리 여러 흐름이 포함된 리소스에서 흐름을 제거하고 별도의 리소스에 배치하는 전략입니다.
흐름 워크로드에서 특정 함수를 수행하는 작업 시퀀스입니다. 흐름에는 데이터의 이동과 워크로드 구성 요소 간의 프로세스 실행이 포함됩니다.
시스템 흐름 시스템 내 정보 및 프로세스의 흐름입니다. 시스템은 이 흐름을 자동으로 따라 사용자 흐름 또는 워크로드 기능을 사용하도록 설정합니다.
사용자 흐름 사용자가 애플리케이션 또는 시스템 내에서 수행하는 작업의 경로 또는 시퀀스입니다.

주요 디자인 전략

우선 순위가 낮은 흐름보다 우선 순위가 높은 흐름에 더 많은 투자를 합니다. 흐름 우선 순위 및 지출 조정에는 현재 동일한 리소스를 공유하는 흐름을 분리하는 작업이 포함될 수 있습니다. 요구 사항이 비슷하지만 별도의 리소스에서 실행되는 흐름을 결합하는 것도 포함될 수 있습니다. 예를 들어 사용자 등록, 로그인 및 데이터 처리와 같은 여러 흐름을 포함하는 웹 애플리케이션이 있다고 가정해 보겠습니다. 이러한 흐름은 리소스 요구 사항이 다르더라도 단일 서버에서 실행됩니다. 비용과 성능을 모두 최적화하기 위해 흐름을 분리하거나 흐름을 결합할 수 있습니다.

  • 별도의 흐름. 예를 들어 사용자 등록 흐름을 다른 사용자와 분리하고 저렴한 전용 서버로 이동할 수 있습니다. 이 흐름은 중요하지만 리소스를 많이 사용하지 않으므로 저렴한 서버에 적합합니다.

  • 흐름을 결합합니다. 예를 들어 리소스 요구 사항이 더 높은 로그인 및 데이터 처리 흐름을 결합하고 고성능 서버에서 함께 실행할 수 있습니다. 이러한 흐름을 결합하면 서버가 두 흐름의 리소스 집약적 요구를 효율적으로 처리할 수 있습니다. 성능 및 비용을 최적화합니다.

워크로드에는 고려해야 할 다양한 유형의 흐름 또는 경로가 있을 수 있습니다. 이 가이드에서는 다음 흐름 유형에 중점을 둡니다.

  • 시스템 흐름. 시스템 흐름 최적화에는 시스템 구성 요소 간의 통신 및 상호 작용을 간소화하고 병목 상태를 최소화하며 효율적인 리소스 사용률을 보장하는 작업이 포함됩니다.

  • 사용자 흐름. 사용자 흐름을 최적화하려면 사용자 환경을 개선하고, 마찰 지점을 줄이고, 애플리케이션 또는 시스템 내에서 원활한 탐색 및 상호 작용을 보장해야 합니다.

흐름 인벤토리 만들기

흐름 인벤토리는 워크로드 내의 모든 작업 시퀀스, 데이터 전환 및 시스템 상호 작용에 대한 포괄적인 목록 및 설명입니다. 흐름 인벤토리는 투자가 흐름의 우선 순위에 부합하도록 보장하는 첫 번째 단계입니다. 흐름의 목적과 종속성을 완전히 이해하는 경우에만 흐름을 최적화해야 합니다. 워크로드 흐름의 인벤토리를 만드는 단계는 다음과 같습니다.

  1. 문서 흐름. 먼저 워크로드의 모든 기존 흐름을 문서화하고 나열하여 시스템의 포괄적인 상태를 파악합니다. 작업, 데이터 전환 및 시스템 상호 작용의 모든 시퀀스를 포함합니다. 외부 서비스, 데이터베이스, 미들웨어 및 타사 통합과 같은 모든 구성 요소를 숙지합니다. 또한 시간에 따른 요청 볼륨을 추적하거나 예측합니다.

  2. 흐름을 시각화합니다. 더 명확한 관점을 얻으려면 결과(순서도 또는 다이어그램)를 시각적으로 나타냅니다. 시각화는 구성 요소 간의 상호 종속성을 확인하는 데 도움이 됩니다. 시각화에 도움이 되도록 Visio와 같은 도구를 사용하는 것이 좋습니다.

  3. 흐름을 분류합니다. 기능(예: 인증, 데이터 검색 및 트랜잭션 처리), 비즈니스에 대한 중요도 또는 사용하는 리소스(CPU, 메모리 또는 대역폭)와 같은 특성을 고려하여 유사한 흐름을 번들로 묶습니다.

흐름 우선 순위 지정

흐름 우선 순위 지정은 비즈니스 결과에 미치는 영향, 사용자 환경에 미치는 영향 및 사용하는 리소스에 따라 흐름을 분류하는 프로세스입니다. 중요한 흐름에는 워크로드 목표를 달성하기 위해 더 높은 수준의 가용성, 더 빠른 복구 시간 및 더 나은 성능이 필요한 경우가 많습니다. 흐름의 우선 순위를 지정하면 지출을 흐름 우선 순위에 더 잘 맞출 수 있습니다. 흐름의 우선 순위를 지정하려면 다음 단계를 고려합니다.

  • 흐름 값을 식별합니다. 워크로드 흐름 비용을 최적화하는 경우 가장 많은 가치를 제공하는 흐름을 식별해야 합니다. 흐름보다 더 많은 돈을 쓰고 싶지는 않습니다. 단순히 비용을 절감하는 대신 비용을 이동하여 더 가치 있는 흐름의 우선 순위를 지정하는 것이 좋습니다. 예를 들어 체크 아웃 흐름은 비즈니스에 중요하지만 구매 기록은 중요하지 않습니다. 체크 아웃 흐름에 더 많은 리소스와 예산을 할당해야 합니다.

    우선 순위가 낮은 흐름은 가용성, 복구 및 성능에 대한 기대치가 낮습니다. 더 저렴한 구성을 사용하여 성능, 가용성 또는 비즈니스 연속성 지출을 줄여 비용을 절감할 수 있습니다.

  • 흐름 메트릭을 고려합니다. 흐름의 우선 순위를 지정하는 데 어려움을 겪고 있는 경우 흐름에 할당한 가용성 및 복구 목표를 고려합니다. 중요한 흐름에는 종종 고가용성 요구 사항 및 SLA(서비스 수준 계약)가 있습니다. 낮은 RPO 및 RTO와 연결된 흐름은 RPO 및 RTO가 더 높은 흐름보다 더 중요합니다.

독립 흐름 최적화

흐름이 이미 다른 리소스에서 실행되고 있는 경우가 있습니다. 이러한 경우 지출을 보다 쉽게 평가하고 최적화할 수 있습니다. 각 독립 흐름에 관련된 구성 요소 및 프로세스를 평가하여 최적화하거나 간소화하는 방법이 있는지 확인합니다. 독립적인 흐름을 최적화하려면 다음 단계를 수행할 수 있습니다.

  • 불필요한 구성 요소를 제거합니다. 흐름의 핵심 기능에 영향을 주지 않는 불필요한 요소를 제거하여 복잡성과 비용을 줄입니다.

  • 흐름을 다시 디자인합니다. 효율성 향상을 위해 흐름의 아키텍처를 다시 디자인하는 것이 좋습니다. 예를 들어 작업 순서를 변경하거나, 대기 시간을 줄이거나, 데이터 전송 속도를 향상시킬 수 있습니다.

  • 적절한 성능 계층을 선택합니다. 흐름마다 처리 속도, 메모리 또는 기타 리소스 메트릭 측면에서 다양한 요구 사항이 있을 수 있습니다. 각 흐름의 특정 요구 사항에 잘 맞는 리소스 계층을 선택해야 합니다.

  • 크기 조정 설정을 조정합니다. 흐름이 가변적인 수요를 경험하는 경우 실시간 요구 사항에 따라 리소스를 동적으로 조정하도록 자동 크기 조정을 구현하여 비용을 최적화하는 것이 좋습니다.

  • 구성을 미세 조정합니다. 네트워킹 또는 데이터 스토리지 옵션과 같은 다른 설정을 미세 조정하여 흐름의 성능 및 예산 요구 사항에 더 잘 맞춥니다.

별개의 다른 흐름

서로 다른 흐름을 다른 리소스로 분리하는 것은 전용 리소스에 대한 계산 요구 사항이 다양한 고유 작업을 할당하는 프로세스입니다. 서로 다른 흐름은 특성이 다른 흐름입니다. 이러한 특성에는 계산 요구 사항, 데이터 종속성, I/O 작업, 대기 시간 민감도, 보안 요구 사항 및 규정 준수 요구 사항이 포함될 수 있습니다. 개별 리소스에서 다양한 유형의 흐름을 실행하는 것이 비용 효율적인 경우가 많습니다. 이렇게 하면 각 흐름에 대한 정확한 리소스 할당이 가능하므로 불필요한 지출이 줄어들고 효율성이 극대화됩니다.

현재 결합된 서로 다른 흐름을 분리하는 것이 좋습니다. 이러한 분리는 확장성, 내결함성 및 적응성을 향상시키고 비용을 간소화합니다. 각 흐름이 독립적으로 작동하도록 함으로써 간섭 위험을 줄이고 각 흐름의 우선 순위에 따라 리소스를 보다 비용 효율적으로 할당할 수 있습니다. 예를 들어 데이터 엔진(데이터 흐름)을 사용하여 CRM(사용자 흐름)을 공동 배치한다고 가정합니다. 근무 시간 동안 CRM 시스템에 대한 사용자 트래픽으로 인해 데이터 엔진이 느려질 수 있습니다. 흐름을 분리할 때 데이터 엔진은 워크로드 수요에 따라 각 구성 요소 또는 서비스를 독립적으로 확장할 수 있습니다. 이 분리는 리소스 할당을 최적화하고 비용을 절감합니다.

유사한 흐름 결합

유사한 흐름을 단일 리소스에 결합하는 것은 태스크 또는 프로세스를 비교 가능한 특성과 통합하고 공유 리소스를 사용하는 프로세스입니다. 이 전략은 중복성을 제거하고 리소스를 보다 효율적으로 사용하도록 보장하여 상당한 비용을 절감합니다. 비슷한 유형의 흐름은 비슷한 특성을 공유합니다. 계산 요구 사항, 데이터 종속성, I/O 작업, 대기 시간 민감도, 보안 요구 사항 및 규정 준수 요구 사항과 같은 다른 흐름을 구분할 때 보는 것과 동일한 특성을 고려할 수 있습니다. 동일한 리소스를 사용하기 위해 유사한 워크로드 흐름을 결합하면 상당한 절감이 발생할 수 있는 몇 가지 예는 다음과 같습니다.

  • 웹 서버. 각 애플리케이션에 대해 별도의 웹 서버를 헌납하는 대신, 특히 트래픽이 지속적으로 높지 않은 경우 통합하는 것이 좋습니다. 역방향 프록시와 쌍을 이루는 공유 웹 서버는 트래픽을 효과적으로 관리하고 여러 애플리케이션으로 라우팅할 수 있습니다.

  • API 게이트웨이. 개별 마이크로 서비스 또는 애플리케이션에 대해 개별 API 게이트웨이를 유지 관리하는 대신 중앙 집중식 API 게이트웨이를 사용하여 요청을 간소화하고 관련 서비스로 전송할 수 있습니다. 이렇게 하면 관리가 더 쉬워지고 비용이 절감됩니다.

  • 로그 처리. 각각 자체 로그 처리 인스턴스를 운영하는 여러 애플리케이션 또는 서비스가 있는 대신 모든 애플리케이션을 공유 로그 처리 도구로 보내는 것이 좋습니다. 이 방법은 활성 인스턴스 수를 최소화하여 직접 비용 절감으로 변환합니다.

  • 인증 서비스. 여러 애플리케이션이 고유한 인증 메커니즘을 배포하는 경우 중복성이 도입됩니다. SSO(Single Sign-On) 솔루션 또는 공동 인증 서비스를 통합하면 이러한 중복이 줄어들고 리소스 사용량이 최적화되어 비용이 절감됩니다.

위험: 디자인과 우연의 일치를 실수하지 마세요. 비슷하게 보이는 두 흐름이 반드시 동일한 용도로 제공되는 것은 아닙니다. 병합하거나 변경하기 전에 각 흐름의 함수와 디자인을 이해해야 합니다. 모양에만 집중하여 흐름을 잘못 해석하면 의도하지 않은 결과가 발생할 수 있으며 지원하는 서비스 또는 프로세스를 방해할 수 있습니다. 여러 흐름이 동일한 기능을 제공하고 디자인이나 의도에 눈에 띄는 차이가 없는 경우 통합하는 것이 좋습니다.

흐름 지속적으로 모니터링

흐름 및 워크로드의 특성은 시간이 지남에 따라 변경될 수 있으므로 흐름 지출을 검토하여 비용이 우선 순위에 부합하는지 확인해야 합니다. 각 흐름과 연결된 컴퓨팅, 스토리지 및 네트워크 사용량을 분석하여 각 흐름의 리소스 사용률을 평가합니다. 리소스가 활용도가 낮은 비효율성 또는 영역을 식별합니다. 이 분석을 통해 비용 최적화 기회를 정확히 파악할 수 있습니다. 다음은 흐름 사용률을 검토할 때 고려해야 할 몇 가지 고려 사항입니다.

  • 사용 패턴을 분석합니다. 흐름의 사용 패턴을 분석합니다. 일부 흐름은 하루 또는 월의 특정 시간에 더 활성화될 수 있지만 다른 흐름은 일관된 부하를 가질 수 있습니다. 이러한 패턴을 이해하면 리소스 요구 사항을 예측하고 할당을 조정하여 병목 현상 및 과잉 프로비전을 방지할 수 있습니다.

  • 관련 메트릭을 모니터링합니다. 각 흐름의 효율성과 비용 효율성을 평가하는 데 도움이 되는 메트릭을 결정합니다. CPU 사용률, 데이터 전송 비용, 트랜잭션 비용 및 스토리지 공간을 고려합니다. 모니터링 도구를 사용하여 리소스 사용량 및 성능에 대한 자세한 메트릭을 수집합니다.

  • 지속적인 유지 관리를 고려합니다. 특히 가상 머신과 같은 서비스로서의 인프라 솔루션을 사용하는 경우 유지 관리 비용을 고려합니다. 패치, 업그레이드, 백업, 모니터링 및 보안과 같은 활동을 고려해야 합니다.

분석하는 동안 리소스가 효과적으로 활용되지 않는 비효율성 또는 영역을 식별합니다. 유휴 컴퓨팅 인스턴스, 사용되지 않는 데이터 및 낮은 네트워크 대역폭을 고려합니다. 이러한 비효율성은 비용 최적화의 기회를 나타낼 수 있습니다.

Azure 촉진

흐름 우선 순위 지정, 최적화 및 모니터링: Application Insights의 사용자 흐름 도구 는 사이트의 페이지 및 기능에서 사용자 탐색을 시각적으로 표현합니다. 이 도구는 사용자가 자주 떠나거나, 작업을 반복하거나, 특정 경로를 따르는 영역을 식별하는 데 도움이 됩니다. 실제 사용자 동작을 예상 결과 및 목표와 비교하여 중요한 흐름을 식별할 수 있습니다. 또한 높은 변동률, 반복적인 작업 또는 디자인 결함과 같은 잠재적인 문제를 최적화할 수 있습니다. 또한 이 도구를 사용하면 차원을 통한 사용자 지정 속성 필터링을 통해 보다 맞춤화된 분석을 제공할 수 있습니다.

Azure Monitor 를 사용하면 애플리케이션의 성능 및 상태에 대한 인사이트를 얻을 수 있습니다. 모니터링 및 진단 기능을 제공합니다. 이러한 기능을 사용하면 성능 병목 상태를 식별하고, 리소스 사용률을 최적화하고, 비용에 영향을 줄 수 있는 문제를 감지하고 해결할 수 있습니다.

Log Analytics 는 다양한 원본에서 로그 데이터를 수집, 분석 및 시각화할 수 있는 도구입니다. Log Analytics를 사용하면 애플리케이션 및 인프라 로그에 대한 인사이트를 얻고, 추세를 식별하고, 사용량 및 데이터 보존을 관리하여 비용을 최적화할 수 있습니다. 비용을 더 잘 관리하기 위해 로그를 공동 배치하고 공유 솔루션 대신 전용 솔루션을 사용하는 것이 좋습니다.

비용 최적화 검사 목록

전체 권장 사항 집합을 참조하세요.