구성 요소 비용 최적화를 위한 권장 사항

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

CO:07 구성 요소 비용을 최적화합니다. 애플리케이션 기능, 플랫폼 기능 및 리소스를 포함하여 레거시, 불필요한 워크로드 구성 요소를 정기적으로 제거하거나 최적화합니다.

이 가이드에서는 워크로드 구성 요소 비용을 최적화하기 위한 권장 사항을 설명합니다. 구성 요소 비용 최적화는 워크로드 내에서 개별 요소의 비용 효율성을 평가하고 개선하는 프로세스를 의미합니다. 애플리케이션 기능, 플랫폼 기능 및 리소스와 같이 오래되거나 불필요하거나 거의 사용되지 않는 구성 요소의 지속적인 검토 및 잠재적 제거 또는 개선을 강조합니다. 또한 재해 복구 환경의 비용 최적화와 최적화되지 않은 구성 요소의 도입을 방지하는 방법도 다룹니다. 이 문서의 지침은 디자인 단계에 없는 기존 워크로드에 적용됩니다. 일반 구성 요소 최적화를 무시하면 시간과 비용을 모두 소모하는 비용, 리소스 낭비 및 비효율적인 워크로드가 발생할 수 있습니다.

정의

용어 정의
애플리케이션 기능 사용자가 특정 작업을 수행하거나 특정 정보에 액세스할 수 있도록 하는 애플리케이션 소프트웨어 내의 고유한 기능입니다.
플랫폼 기능 플랫폼에서 제공하는 특정 기능 또는 기능입니다. 플랫폼에 따라 다를 수 있지만 일반적으로 플랫폼 기능은 사용자 환경을 향상시키거나 생산성을 향상시키거나 특정 작업 또는 작업을 사용하도록 설계되었습니다.
리소스 클라우드 서비스 공급자 내에서 만들고 구성하고 활용할 수 있는 단일 엔터티 또는 구성 요소입니다.

주요 디자인 전략

워크로드 구성 요소 최적화는 애플리케이션 기능, 플랫폼 기능 및 리소스를 포함하여 워크로드의 다양한 요소를 구체화하는 것입니다. 목표는 워크로드가 모든 구성 요소를 효율적이고 비용 효율적으로 사용하도록 하는 것입니다. 전략에는 필요한 것보다 더 많은 지출이 발생하는 구성 요소를 제거, 수정 및 방지하는 것이 포함됩니다. 구성 요소 비용 최적화 프로세스를 사용하면 불필요한 비용을 방지하면서 가장 많은 가치를 제공하는 기능 및 구성 요소에 리소스를 할당할 수 있습니다.

애플리케이션 기능 최적화

애플리케이션 기능 최적화는 값에 따라 애플리케이션 기능을 제거, 재투자 또는 수익 창출하는 프로세스입니다. 이를 통해 고객에게 가장 많은 가치를 제공하는 애플리케이션 기능에 리소스를 할당할 수 있습니다. 애플리케이션 기능을 최적화하면 기술 부채에 기여하거나 투자 수익률이 충분하지 않은 기능에 투자하지 않도록 할 수 있습니다.

애플리케이션 기능 값 평가

기능의 값을 확인하려면 전체 애플리케이션에 미치는 영향과 고객에게 제공하는 값을 고려합니다. 고려해야 할 몇 가지 요인은 다음과 같습니다.

  • 고객 요구 사항: 이 기능이 고객의 요구와 기대치를 얼마나 잘 충족하는지 평가합니다. 고객 피드백, 설문 조사 및 사용량 현황 데이터는 인식된 가치를 이해하는 데 유용할 수 있습니다.

  • 비즈니스 목표: 기능이 비즈니스의 전략적 목표에 어떻게 부합하는지 평가합니다. 기능이 수익 창출, 고객 만족도 또는 경쟁 우위를 지원하는 방법을 고려합니다.

  • 사용자 환경에 미치는 영향: 이 기능이 사용자 환경을 향상시키고 유용성 또는 생산성을 향상시키는 데 미치는 영향을 확인합니다.

  • 차별화: 이 기능이 시장의 다른 애플리케이션에 비해 고유한 판매 지점 또는 경쟁 우위를 제공하는지 여부를 평가합니다.

애플리케이션 기능 비용 평가

효과적인 리소스 할당 및 최적화를 위해 각 기능과 관련된 비용을 이해하는 것이 중요합니다. 비용을 평가할 때 다음과 같은 다양한 측면을 고려합니다.

  • 개발 노력: 기능 또는 주변 기능을 개발하고 유지 관리하는 데 필요한 시간, 리소스 및 전문 지식을 평가합니다. 사용량이 부족한 기능은 종종 기술적인 문제의 주요 원천이 됩니다.

  • 유지 관리 및 지원: 버그 수정, 보안 업데이트 및 문제 해결을 포함하여 기능 유지 관리 및 지원과 관련된 지속적인 비용을 고려합니다.

  • 인프라 및 리소스 사용률: 서버 리소스, 스토리지 및 대역폭을 비롯한 인프라 요구 사항에 대한 기능의 영향을 평가합니다.

  • 통합 복잡성: 기능을 다른 시스템 또는 타사 서비스와 통합하는 복잡성과 비용을 평가합니다.

  • 성능 고려 사항: 확장성, 응답 시간 및 리소스 사용량을 포함하여 이 기능이 애플리케이션의 성능에 미치는 영향을 평가합니다.

관련자를 사용하여 애플리케이션 기능 값 검토

제품 관리자, 소프트웨어 개발자 및 비즈니스 분석가와 같은 주요 담당자를 참여시켜 관련자와 함께 애플리케이션 기능의 가치를 검토하여 비즈니스 목표에 대한 특정 기능의 가치를 평가합니다. 이 협업은 유지 관리 작업에 대한 인사이트를 제공하고 생산성을 저해하거나 새롭고 중요한 기능 개발을 방해할 수 있는 기능을 식별하므로 비용 최적화에 필수적입니다. 개발 팀은 특정 기능을 유지하는 데 걸리는 작업에 대한 중요한 정보를 제공할 수 있습니다. 특히 이러한 기능이 팀이 새 기능을 만드는 데 방해가 되는 경우 가치보다 더 문제가 될 수 있는 기능에 대해 이야기하도록 권장합니다.

기능의 미래 결정

분석 및 평가에 따라 애플리케이션 기능의 미래를 결정합니다. 투자 수익을 제공하지 않는 애플리케이션 기능을 제거, 재투자 또는 수익 창출:

  • 제거: 데이터를 기반으로 애플리케이션 기능의 계획된 수명 종료를 고려합니다. 기능 제거의 원인으로는 낮은 고객 수요, 높은 유지 관리 비용, 복잡성 또는 수정할 가치가 없는 중복성이 포함될 수 있습니다. 코드 리팩터링, 종속성 업데이트 또는 UI 재구성을 포함할 수 있는 제거 계획을 만듭니다.

    위험 아이콘 위험: 특정 사용자 또는 시나리오에 중요하고 애플리케이션의 성능, 작업 및 보안에 부정적인 영향을 줄 수 있는 기능을 실수로 제거할 수 있습니다.

  • 재투자: 일부 애플리케이션 기능은 현재 상태에서 충분한 값을 추가하지 못할 수 있지만 재투자하는 경우 값을 추가할 수 있습니다. 재투자란 애플리케이션 기능을 재작업하거나 승격하는 것을 의미합니다. 해당 값 및 타당성에 따라 식별된 개선 사항의 우선 순위를 지정합니다. 변경 내용을 구현하기 위한 로드맵 및 타임라인 결정합니다. 개발 리소스, 종속성 및 애플리케이션에 미치는 잠재적 영향과 같은 요소를 고려합니다.

  • 수익 창출: 수익 창출을 통해 애플리케이션 기능을 수익 창출 기회로 전환합니다. 경우에 따라 기능은 사용자에게 가치를 제공하지만 현재 투자할 가치가 없습니다. 별도의 유료 추가 기능으로 제공하거나 다른 회사에 라이선스를 제공하는 등 이러한 기능으로 수익을 창출할 수 있는 기회를 살펴봅니다.

워크로드 리소스 최적화

워크로드 리소스를 최적화하려면 사용하지 않는 리소스를 제거하고 워크로드에 필요한 사용이 부족한 리소스를 최적화해야 합니다. 이러한 노력으로 비용을 절감하고 낭비를 방지하며 워크로드에서 가치를 추가하는 리소스만 사용할 수 있습니다.

사용되지 않는 워크로드 리소스를 제거합니다. 사용하지 않는 리소스는 워크로드 또는 운영 프로세스에서 사용하지 않는 배포된 서비스입니다. 이러한 리소스는 장기적으로 유휴 상태이거나 분리되거나 잊혀질 수 있습니다. 그들은 투자 수익을 제공하지 않으며, 당신은 그들을 제거해야합니다. 사용되지 않는 리소스의 일반적인 원인은 다음과 같습니다.

  • 경고.
  • 데모 빌드.
  • 환경 서비스 해제.
  • 기능 해제.
  • IP 주소.
  • 네트워크 방화벽.
  • 개념 증명.
  • 스냅샷
  • 스토리지 계정
  • 임시 테스트 환경.
  • 임시 심사 환경.

워크로드에서 사용되지 않는 리소스를 제거하려면 다음 단계를 고려합니다.

  1. 인벤토리 가져오기: 환경 전체에서 워크로드 내의 모든 리소스에 대한 철저한 인벤토리를 수행합니다.

  2. 분리된 리소스 찾기: 리소스가 더 이상 필요하지 않거나 부모 리소스가 제거될 때 분리될 수 있습니다. 예를 들어 가상 머신을 제거할 수 있지만 연결된 스토리지 계정은 제거되지 않습니다. 워크로드를 검토하여 불필요한 리소스 또는 분리된 리소스를 식별합니다.

  3. 유휴 구성 요소 제거: 일반적으로 배포된 리소스와 관련된 비용이 있습니다. 리소스를 중지하거나 다시 할당할 수 있는 경우에도 리소스 비용을 계속 지불할 수 있습니다. 유휴 리소스를 제거하는 것이 좋습니다. 데이터가 필요한 경우 먼저 백업한 다음 리소스를 제거합니다. 리소스를 유휴 상태로 유지하도록 허용하는 것보다 리소스를 다시 배포하고 데이터를 복원하는 것이 좋습니다.

사용량이 부족한 리소스를 최적화합니다. 사용률이 저조한 리소스는 완전히 활용되지 않는 리소스 용량에 대한 비용을 지불할 때 낭비되는 지출을 나타냅니다. 이러한 리소스를 식별하고 최적화하여 비용을 절감하고 리소스를 보다 효과적으로 할당합니다. 사용량이 부족한 리소스의 비용을 평가하고 최적화하려면 다음 단계를 수행합니다.

  1. 리소스 모니터링: 도구를 사용하여 실제로 사용하는 CPU, 메모리 및 스토리지의 양을 모니터링합니다. 이 정보에 따라 요구 사항과 일치하는 최상의 계획을 선택합니다.

  2. 사용률 분석: 데이터를 확인하여 사용하지 않는 리소스를 확인합니다. 시간에 따른 사용량이 낮거나 사용량이 많은 시간과 느린 시간 간의 사용량 차이가 큰 리소스에 주의하세요.

  3. 오른쪽 크기 조정: 사용하지 않는 기능에 할당된 리소스가 너무 많은지 확인합니다. 그렇다면 실제로 필요한 것과 더 잘 일치하도록 크기를 조정합니다.

  4. 자동 크기 조정: 자동 크기 조정을 사용하여 사용 중인 리소스에 따라 사용하는 리소스를 조정합니다. 비용이 많이 들고 불필요할 수 있는 갑작스런 급증을 방지하려면 최대 크기 조정 제한을 설정해야 합니다.

이러한 조정을 수행한 후 테스트하여 모든 것이 정상적으로 작동하는지 확인합니다. 시간이 지남에 따라 워크로드 요구가 변경됨에 따라 리소스 사용률을 지속적으로 모니터링하고 리소스 할당을 조정합니다. 비용 효율성 및 성능 최적화를 유지하기 위해 리소스 사용률을 정기적으로 검토하고 최적화합니다.

재해 복구 리소스를 최적화합니다. 재해 복구 환경을 최적화하는 것은 재해 복구에 할당된 리소스를 효율적으로 사용하는 것입니다. 웜(활성-수동) 재해 복구 전략은 활용도가 저조한 일반적인 소스입니다. 웜 재해 복구 전략에서 한 환경은 모든 부하를 수신하고 다른 환경은 재해 시나리오가 있을 때까지 유휴 상태입니다. 재해 복구 환경을 최적화하려면 핫(활성-활성), 콜드(활성-해제) 또는 활성 재배포 접근 방식을 통해 사용이 부족한 리소스를 방지하는 방법을 고려합니다. 다음 세 가지 재해 복구 방법에 대한 개요는 다음과 같습니다.

  • 핫 플랜: 기본 환경과 보조 환경 모두 동시에 트래픽을 제공합니다. 워크로드는 이러한 환경 간에 부하를 분산하고 실시간으로 요구에 대응할 수 있습니다. 두 활성 환경 간에 부하를 분산하면 더 저렴한 리소스를 사용하고, 단일 지점 병목 상태를 줄이고, 용량을 최대한 활용할 수 있습니다. 이로 인해 리소스 낭비 또는 유휴 상태 측면에서 비용이 감소할 수 있습니다. 핫 접근 방식은 두 환경 간의 동기화 및 패리티 유지에 더 많은 투자를 요구할 수 있습니다.

  • 콜드 계획: 콜드 재해 복구 모델에는 재해가 장애 조치(failover)의 필요성을 트리거할 때까지 휴면 상태로 유지되는 대기 환경이 포함됩니다. 대기 환경이 적극적으로 실행되지 않으므로 컴퓨팅, 스토리지 및 네트워크 작업과 관련된 비용이 최소화됩니다. 비용은 백업, VM(가상 머신) 이미지 또는 템플릿 저장을 중심으로 진행됩니다. 콜드 모델의 장애 조치(failover)는 리소스를 부팅해야 하고 데이터를 복원해야 할 수 있기 때문에 더 오래 걸릴 수 있습니다. 이 방법을 커밋하기 전에 복구 시간이 비즈니스의 RTO(복구 시간 목표)와 일치하는지 확인합니다.

  • 활성-재배포: 이 전략은 인프라를 코드로 사용합니다. 장애 조치(failover) 이벤트가 발생하면 미리 정의된 템플릿 및 스크립트를 사용하여 보조 환경을 배포합니다. 재해 복구 환경에 미리 배포된 컴퓨팅 리소스가 없으면 유휴 리소스 유지 관리와 관련된 비용을 절감할 수 있습니다. 장애 조치(failover) 시나리오에서 실제 배포 중에만 비용이 발생합니다. 콜드 접근 방식과 마찬가지로 이 모델은 특히 인프라의 복잡성이 높은 경우 복구 시간이 길어질 수 있습니다. 복구 시간이 복구 시간 목표를 충족하는지 테스트하고 측정해야 합니다.

플랫폼 기능 최적화

플랫폼 기능을 최적화하려면 성능 계층 및 구성 설정과 같은 플랫폼 기능을 제거하거나 업데이트하여 비용을 최적화해야 합니다. 이는 워크로드의 요구 사항에 맞게 지출을 조정하고 불필요한 기능에 대한 불필요한 비용을 방지하는 데 도움이 됩니다. 플랫폼 기능의 비용을 최적화하기 위한 몇 가지 팁은 다음과 같습니다.

  • 구매한 항목의 기능 파악: 최적화하려면 클라우드 플랫폼에서 서비스 및 해당 기능에 대한 명확한 인벤토리가 필요합니다. 워크로드에서 플랫폼 또는 서비스의 기능과 기능을 이해합니다. 선택한 특정 계층 및 각 계층이 제공하는 기능에 유의하세요. 예를 들어 자동 크기 조정 또는 고급 네트워킹이 필요하지 않은 경우 하위 계층 계획으로 충분할 수 있습니다.

  • 사용하지 않는 기능 사용 안 함: 비용이 드는 플랫폼 기능을 식별하고 사용하지 않도록 설정합니다. 불필요한 스토리지 스냅샷, 사용되지 않는 디스크, 중복 보안 기능 또는 활용도가 저조한 네트워킹 기능이 있을 수 있습니다.

  • 올바른 버전 사용: 최신 버전의 서비스는 동일한 가격에 비슷한 성능을 제공할 수 있습니다. 예를 들어 최신 하드웨어가 있는 가상 머신은 더 적은 비용을 위해 동일한 성능을 제공할 수 있습니다.

  • 올바른 구성 사용: 필요한 것보다 더 많은 가용성 또는 성능에 대한 비용을 지불할 수 있습니다. 가용성 또는 성능 보장을 제거하면 워크로드가 필요하지 않습니다.

  • 불필요한 자동화 제거: 자동화 프로세스를 평가하고 추가 비용이 발생할 수 있는 사용되지 않는 자동화를 제거합니다.

  • 도구 중복 제거: 필요하지 않은 도구 또는 동일한 기능을 제공하는 도구를 제거합니다. 소프트웨어 빌드, 코드 작성, 보안 및 모니터링에 사용하는 도구의 잠재적 중복성을 평가합니다. 예를 들어 GitHub Actions 사용하여 소프트웨어를 빌드하는 경우 소프트웨어를 빌드하는 다른 도구를 구입할 필요가 없습니다. 기능 또는 도구를 구입하기 전에 작업을 수행할 수 있는 도구가 워크로드에 이미 있는지 검사. 낭비되는 비용을 방지하고 이미 가지고 있는 것을 최대한 활용하기 위해 도구 중복성을 제거합니다.

최적화되지 않은 구성 요소 방지

최적화되지 않은 구성 요소를 방지하는 것은 구성 요소를 추가하거나 수정하기 전에 필수 구성 요소와 최적화를 사전에 보장하는 것입니다. 폐기물을 제거하는 가장 좋은 방법은 처음에 그것을 피하는 것입니다. 루트에서 비효율성을 해결하여 불필요한 비용을 방지하는 전략을 사용하여 워크로드가 처음부터 비용 효율적으로 실행되도록 합니다. 낭비를 방지하려면 다음 전략을 고려하세요.

  • 솔루션을 변경하기 전에 근본 원인을 찾습니다. 문제를 해결하기 전에 실제로 발생하는 원인을 알고 있어야 합니다. 예를 들어 웹 사이트가 느린 경우 새 시스템으로 즉시 전환하지 마세요. 먼저 느린 이유를 알아보세요. 실제 문제는 잘못된 데이터베이스 쿼리와 같은 다른 문제임을 알게 될 수 있습니다. 시간과 비용을 절약하기 위해 실제 문제를 해결합니다.

  • 메타데이터 적용: 메타데이터를 적용하여 리소스를 구성하고 추적합니다. 메타데이터를 사용하여 리소스를 분류하고 그룹화하여 분리된 리소스를 더 쉽게 추적, 삭제 및 방지할 수 있습니다. 리소스 간에 일관된 메타데이터 전략을 만듭니다. 소유자, 예상 리소스 기간(예: sunset-30d) 또는 기타 태그를 추가하는 것이 좋습니다.

  • 비표준 변경 내용 문서화: 예기치 않은 비용을 절감하기 위해 워크로드의 정상적인 제어 프로세스 외부에서 수행된 인프라 또는 구성에 대한 변경 내용을 문서화합니다. 예를 들어 단기 수요를 충족하거나 문제를 심사하기 위해 리소스의 크기 조정(업 또는 아웃) 용량을 늘릴 수 있지만 다시 축소하는 것을 잊어버릴 수 있습니다. 비표준 변경 목록을 만들고 더 이상 필요하지 않은 경우 변경 내용을 되돌리기 미리 알림으로 사용합니다.

  • 간단한 작업 유지: 인프라를 단순화하고 복잡성을 최소화하여 비용을 절감합니다. 요구 사항을 충족하는 필요한 리소스 및 서비스만 사용합니다.

Azure 촉진

애플리케이션 기능 최적화: Azure MonitorApplication Insights 를 사용하여 애플리케이션의 사용량을 모니터링하고 사용되거나 사용되지 않는 영역을 식별할 수 있습니다. 수집된 인사이트를 기반으로 사용하지 않거나 사용이 부족한 기능을 제거하거나 최적화하기 위해 정보에 입각한 결정을 내릴 수 있습니다.

워크로드 리소스 및 플랫폼 기능 최적화: Azure Advisor는 사용되지 않는 리소스를 식별하고 제거하기 위한 권장 사항을 제공하는 비용 권장 사항을 제공합니다. Advisor를 사용하여 리소스 사용량을 분석하고 리소스에 대한 제안을 받아 제거하거나 축소할 수 있습니다. Azure Advisor의 비용 최적화 통합 문서는 사용률 및 효율성 목표를 높이는 데 도움이 될 수 있는 가장 일반적으로 사용되는 도구 중 일부에 대한 중앙 집중식 허브 역할을 합니다. Azure Advisor 비용 권장 사항을 포함하여 다양한 권장 사항을 제공합니다. 또한 유휴 리소스를 식별하고 부적절하게 할당 취소된 가상 머신을 관리하는 데 도움이 됩니다.

Azure Monitor는 통합 문서를 지원합니다. Azure Monitor 통합 문서를 사용하면 정의된 scope 분리된 리소스를 찾고 보고하는 통합 문서를 찾거나 만들 수 있습니다. Azure Automation 사용하여 비활성 기간 동안 가상 머신을 종료할 수 있습니다. 리소스 종료는 유휴 리소스 사용을 최소화하여 비용을 줄이는 데 도움이 됩니다.

Azure에서 자동 크기 조정 기능을 사용하여 미리 정의된 조건에 따라 애플리케이션의 크기를 자동으로 조정할 수 있으므로 용량을 과도하게 프로비전할 필요가 없습니다. 자동 크기 조정은 리소스를 효율적이고 비용 효율적으로 할당하는 데 도움이 될 수 있습니다.

디자인 관점에서 Azure 부하 분산 장치 는 가용성 영역 및 지역에 부하를 분산할 수 있습니다. 이러한 부하 분산 장치는 재해 복구 접근 방식과 같은 유휴 리소스를 제거하는 데 도움이 될 수 있습니다.

비용 최적화 검사 목록

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