SCI 점수를 사용하여 Azure 앱 지속 가능성 측정

Azure Monitor
Azure Automation
Azure Logic Apps
Azure Table Storage
Power BI

이 예제 워크로드는 사용 가능한 프록시를 기반으로 지속 가능성 모델을 생성하는 데 도움이 됩니다. 이 모델을 사용하면 애플리케이션의 탄소 효율성을 채점할 수 있습니다. 이 SCI(소프트웨어 탄소 강도) 점수는 애플리케이션의 탄소 출력 변화를 측정하기 위한 기준을 제공합니다.

참고

이산화탄소 외에 다른 온실 가스는 환경에 다른 영향을 미칩니다. 예를 들어, 메탄 1톤은 80톤의 이산화탄소와 동일한 가열 효과를 나타냅니다. 규칙에 따라 이 문서에서는 모든 항목을 CO2에 해당하는 측정값으로 정규화합니다. 탄소에 대한 참조는 항상 CO2와 동등한 것을 의미합니다.

아키텍처

애플리케이션의 탄소 영향을 점수로 표시하는 사용 가능한 프록시를 기반으로 지속 가능성 모델을 생성하는 다이어그램

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. SCI 점수를 계산하는 데 사용할 애플리케이션 데이터 원본을 구성합니다.
  2. Azure Table Storage의 데이터를 Azure Storage 계정에 저장합니다.
  3. 이벤트 처리기를 사용하여 SCI 점수를 계산합니다. 이벤트 처리기에는 Azure Functions, Azure Logic Apps, Azure Blob Storage가 포함될 수 있습니다. 점수는 단위당 그램으로 배출되는 탄소의 양입니다. 여기서 단위는 애플리케이션 배율 인수를 참조하거나 프록시를 사용하여 근사치를 나타냅니다.
  4. Azure Functions, Logic Apps, 자동화 Runbook을 사용하여 애플리케이션에서 수요 조정을 트리거하거나 미리 정의된 애플리케이션 에코 모드를 시작합니다.
  5. 시간에 따른 점수 보고서 및 시각화에 Power BI를 사용합니다.

구성 요소

  • Azure의 배출량 영향 대시보드는 클라우드 기반 배출량 및 탄소 절감 가능성을 측정하는 데 도움이 됩니다. 클라우드 사용량과 관련된 직접 및 간접 온실 가스 배출량을 추적합니다.
  • Application Insights는 APM(애플리케이션 성능 모니터링)을 제공하는 Azure Monitor의 확장입니다. Application Insights는 사용자가 애플리케이션을 사용하는 방법을 이해하는 데 도움이 됩니다. 이 지식을 사용하여 애플리케이션 효율성을 개선합니다.
  • Azure Table Storage는 구조화되지 않은 비관계형 데이터(구조화된 NoSQL 데이터라고도 함)를 저장하는 서비스입니다. 키/특성 스토리지에 스키마 없는 디자인을 제공합니다. 많은 유형의 애플리케이션에서 Table Storage 데이터에 대한 액세스는 빠르고 비용 효율적입니다. Table Storage는 보통 비슷한 양의 데이터에 대한 기존 SQL에 비해 비용이 낮습니다.
  • Azure Logic Apps는 코드가 거의 또는 전혀 없는 자동화된 워크플로를 생성하고 실행할 수 있는 플랫폼입니다. 시각적 디자이너를 사용하고 미리 빌드된 작업에서 선택하여 프록시 원본, 데이터 스토리지, 효율성 계산 시스템을 통합하고 관리하는 워크플로를 빌드합니다.
  • Azure Functions는 더 적은 코드를 쓰고, 인프라를 적게 유지하고, 비용을 절감할 수 있도록 하는 서버리스 솔루션입니다. 클라우드 인프라는 애플리케이션을 계속 실행하는 데 필요한 모든 최신 리소스를 제공합니다.
  • Power BI는 실시간 인사이트를 제공하는 분석과 보고서로 데이터를 변환합니다. 데이터가 클라우드 기반이든 온-프레미스이든 관계없이 Azure 및 Power BI는 시각화 및 분석을 실현하기 위해 통합하고 연결합니다.

대안

이 문서에 사용된 Azure 서비스를 유사한 서비스로 바꿀 수 있습니다. 인프라에 미치는 영향을 최소화하고 기존 리소스의 밀도와 사용을 늘리려면 환경에 이미 배포된 Azure 서비스 또는 도구를 사용합니다.

  • Power BI 대시보드 대신 Azure Monitor 통합 문서 또는 Azure Managed Grafana 서비스를 사용합니다.
  • Application Insights의 경우 Elasticsearch 또는 Open APM과 같은 다른 APM 도구를 대체합니다.
  • MySQL 또는 MariaDB와 같은 다른 레코드 시스템을 사용하여 데이터 테이블을 저장할 수 있습니다.
  • 실행 중인 Azure Functions 또는 Logic Apps 애플리케이션이 있는 경우 기존 배포에서 정기적으로 계산을 시작하는 것이 좋습니다.
  • 애플리케이션 리소스가 여러 리소스 그룹에 분산된 경우 태그를 사용하여 비용 데이터의 상관 관계를 지정하고 애플리케이션에서 배출하는 탄소의 양을 계산합니다.

시나리오 정보

이 섹션에서는 탄소 배출량의 변화를 측정하기 위한 기준을 계산하는 데 필요한 세부 정보를 설명합니다.

데이터 원본

변수가 거의 없는 프록시 수식을 작성해 보세요. 애플리케이션 동작 및 성능을 나타내는 프록시 메트릭을 선택합니다. 이 예제에서는 다음 메트릭을 사용합니다.

  • Azure용 배출량 영향 대시보드에서 인프라의 탄소 배출량
  • Microsoft Cost Management의 리소스 그룹별 일일 또는 월별 지출로 측정된 인프라 비용
  • Application Insights에서 애플리케이션의 성능 및 스케일링 메트릭:
    • 애플리케이션에 연결된 사용자, API 호출 또는 서버 요청 수
    • CPU 사용량
    • 메모리 사용량
    • 보내기 또는 받기에 대한 응답 시간

메트릭에 대한 Application Insights를 설정하는 방법에 대한 자습서는 ASP.NET Core 애플리케이션용 Application Insights SDK를 참조하세요.

수식에 다음과 같은 변수를 더 추가할 수 있습니다.

  • 인프라 및 에지 서비스 탄소 배출량
  • 전기 생산 및 수요는 시간에 따라 다르기 때문에 사용자가 연결하는 시간
  • 시간이 지남에 따라 성능이 어떻게 변하는지 설명할 수 있는 애플리케이션의 다른 특수 메트릭

또한 사용자 수를 반영할 수 있는 점수로 이 수식을 작성하면 탄소 점수에 가장 가까운 근사치를 나타냅니다. 이 값은 애플리케이션의 지속 가능성 변경 및 개선에 대한 벤치마크입니다.

애플리케이션 성능에 대한 또 다른 고려 사항은 비용입니다. 대부분의 경우 성능 효율성과 비용 및 탄소 절감은 직접적인 상관 관계가 있습니다.

설명 결론
성능은 높지만 비용은 동일 애플리케이션은 최적화되고 탄소 배출량 감소
비용은 낮지만 성능은 동일 애플리케이션은 최적화되고 탄소 배출량 감소
성능 및 비용 상승 애플리케이션이 최적화되지 않고 탄소 배출량 증가
비용이 상승했지만 성능이 낮거나 같음 애플리케이션이 최적화되지 않고 탄소 배출량이 증가하거나 에너지 비용이 높아져 탄소 배출량 증가

애플리케이션 SCI 점수, 비용, 성능 간의 상관 관계는 모든 애플리케이션에 대해 고유합니다. 이는 여러 요인에 따라 달라집니다. 이러한 세 변수에 대한 데이터를 수집하면 해당 변형을 예측하는 알고리즘을 생성할 수 있습니다. SCI를 사용하면 애플리케이션 아키텍처 및 패턴에 대해 정보에 입각한 결정을 내릴 수 있습니다.

계산

이 시나리오에서는 배출량 영향 대시보드에서 수집한 데이터를 시작점으로 처리합니다. SCI 기준 계산은 다음과 같습니다.

SCI = C * R

구성 요소는 다음과 같습니다.

  • SCI. 소프트웨어 탄소 강도 결과입니다.

  • C. 애플리케이션의 탄소 배출량입니다.

    이 값은 Azure에서 애플리케이션이 배포되는 방법에 따라 달라집니다. 예를 들어 모든 애플리케이션 리소스가 단일 리소스 그룹에 있는 경우 이 리소스 그룹의 탄소 배출량이 C 변수가 됩니다.

    참고

    이 시나리오에서는 아키텍처와 에지 또는 사용자 동작에 의존하는 애플리케이션에 대한 다른 배출원을 고려하지 않습니다. 이러한 고려 사항은 탄소 프록시를 사용하는 다음 단계입니다.

  • R. 애플리케이션의 배율 인수입니다.

    이 값은 고려 기간 또는 API 요청 또는 웹 요청에 대한 평균 동시 사용자 수일 수 있습니다. 배율 인수를 사용하면 점수가 배포 공간 대신 애플리케이션 사용량의 전반적인 효과를 설명할 수 있습니다.

시간 범위는 이 계산의 또 다른 중요한 측면입니다. 에너지 그리드에는 재생 가능한 또는 대체 에너지원을 있을 수 있지만 다른 에너지원은 없을 수 있기 때문에 탄소 배출량은 에너지 소비 디바이스 또는 시스템에 따라 다릅니다. 예를 들어 태양광 발전은 가변적입니다. 가능한 한 정확하게 하려면 가능한 가장 짧은 시간 프레임(예: 일별 또는 시간별 계산)으로 시작합니다.

배출량 영향 대시보드는 구독 내의 서비스를 기반으로 월별 탄소 정보를 제공합니다. 단일 리소스 그룹에 대해 이 숫자를 가져오려면 다음 수식을 사용합니다.

Carbon (res-group) = (Carbon(subscription) * Cost(res-group)) / Cost(subscription)

다음 섹션에 설명된 대로 리소스 그룹의 월별 탄소 정보를 나머지 데이터와 함께 저장합니다.

데이터 스토리지

이전 섹션에서 수집한 탄소 및 탄소 프록시 정보를 저장합니다. 시간 경과에 따른 탄소 점수를 시각화하고 정보에 입각한 선택을 할 수 있도록 정보를 대시보드 또는 보고서로 내보냅니다. 지속 가능성의 이유와 Well Architected Framework의 모범 사례에 따라 최소 실행 가능한 레코드 시스템(예: Azure Table Storage)을 사용합니다.

수집된 데이터를 설명하는 테이블은 다음 예제와 같은 데이터를 사용합니다.

보고서의 데이터:

  • Date
  • 리소스 그룹 이름
  • 대시보드 C의 탄소 배출량
  • 비용

APM의 데이터:

  • CPU
  • 메모리
  • 응답 시간 비율(보내기/받기) 배율 인수 R

계산: SCI

자세한 내용은 다음을 참조하세요.

데이터 상관 관계

애플리케이션 탄소, 성능, 비용에 대한 데이터를 사용하면 애플리케이션과 관련된 상관 관계 알고리즘을 빌드할 수 있습니다. 이 정보는 비용, 성능, 탄소 최적화를 계획할 때 지침을 제공합니다.

참고

Azure 예약 또는 비용 절감 플랜과 같이 할인되는 비용이 포함된 수식은 상관 관계 알고리즘에서 불일치가 발생합니다.

알고리즘 선택에 대한 자세한 내용은 Azure Machine Learning에 대한 알고리즘을 선택하는 방법을 참조하세요.

데이터 표시

사용자 지정된 Azure Monitor 통합 문서 또는 간단한 Power BI 대시보드를 통해 데이터 및 계산을 여러 가지 방법으로 표시할 수 있습니다. 자세한 내용은 Application Insights를 사용하여 사용자 지정 KPI 대시보드 생성보고서에서 Power BI 대시보드 생성를 참조하세요.

SCI 점수 작업 트리거

프록시를 사용하여 애플리케이션의 탄소 효과 점수를 매긴 후 다음 단계는 탄소 점수에서 불리한 조건이 트리거해야 하는 작업을 정의하는 것입니다. 이러한 조건의 몇 가지 예는 다음과 같습니다.

  • 에너지 생산과 수요는 많고 에너지 생산 비용이 많이 듭니다.
  • 자연 재해 또는 지정학적 충돌로 인해 전기를 사용할 수 없습니다.
  • 리소스 과잉 소비 또는 공급망 문제로 인해 에지 인프라를 사용할 수 없게 됩니다.

애플리케이션에 영향을 줄 수 있는 실패 지점을 식별한 후 탄소 급증에 대한 애플리케이션 복원력 만들기 위해 수행할 작업을 결정합니다.

애플리케이션의 에코 모드 버전을 빌드하는 것이 좋습니다. 에코 모드 버전은 전체 애플리케이션에서 더 간단하고, 작고, 저렴하고, 친환경적인 버전입니다. 탄소 배출량이 급증하는 경우 애플리케이션은 이러한 최소 기능으로 되돌아갑니다.

최종 사용자가 에코 모드 버전을 선택할 수 있도록 하는 것이 좋습니다. 탄소 배출을 줄이는 대가로 더 간결한 인터페이스, 더 적은 그래픽, 제한된 기능으로 괜찮다고 선언할 수 있는 녹색 단추를 제공합니다. 사용자 참여는 기술적 변화와 함께 문화적 변화를 주도할 수 있는 기회를 제공합니다.

  • 이 선택의 효과를 지정합니다. 녹색 버전을 사용하면 <X> 양의 탄소를 절약하거나 탄소 점수를 <Y>로 가져옵니다.
  • 사용자 동작에 대해 알아보고 선택 사항을 반영하도록 에코 모드 버전을 수정합니다. 예를 들어 애플리케이션 기능의 10%만 사용하는 경우 녹색 버전의 이상적인 사용자일 수 있습니다.
  • 이상적으로는 시간이 지남에 따라 전체 버전이 배출량에 최적화되고 결국 버전이 수렴됩니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

추가 보안을 위해 Virtual Network 서비스 엔드포인트를 사용하여 가상 네트워크에 대해서만 Azure 서비스 리소스를 보호합니다. 이 방법은 해당 리소스에 대한 공용 인터넷 액세스를 닫고 가상 네트워크의 트래픽만 허용합니다.

이 방법을 사용하여 Azure에서 가상 네트워크를 생성한 다음, Azure 서비스에 대한 프라이빗 서비스 엔드포인트를 생성합니다. 그러면 이러한 서비스는 해당 가상 네트워크의 트래픽으로 제한됩니다. 게이트웨이를 통해 온-프레미스 네트워크에서 해당 서비스에 연결할 수도 있습니다.

참고

온-프레미스에서 Azure Storage로 데이터를 이동하려면 온-프레미스 컴퓨터에서 공용 IP 주소를 허용하거나 Azure ExpressRoute를 사용해야 합니다. 자세한 내용은 가상 네트워크에 전용 Azure 서비스 배포를 참조하세요.

보안 솔루션 설계에 대한 일반적인 지침은 Azure 보안 설명서를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

배출량 영향 대시보드 및 Azure Cost Management 보고서는 무료입니다. 이 예제는 비용 및 탄소 배출량을 절약하기 위해 의도적으로 최소화합니다. 몇 가지 대체 Azure 서비스를 사용하여 이 아키텍처를 배포할 수 있습니다.

애플리케이션 배포에 이미 있는 동등한 서비스를 사용합니다. 다음 리소스는 구성 요소 가격 책정 정보를 제공합니다.

성능 효율성

성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

이 아키텍처의 주요 목적은 비용 및 탄소 자체에 미치는 영향을 최소화하면서 애플리케이션에 대한 지속 가능성 점수를 제공하는 것입니다. 대부분의 구성 요소는 사용 및 트래픽에 따라 독립적으로 확장할 수 있는 PaaS(Platform as a Service) 및 서버리스 Azure 서비스입니다.

이 예제의 대시보드 및 스토리지 인터페이스는 사용량이 많고 상담에 적합하지 않습니다. 많은 사용자에게 이 솔루션을 제공하려는 경우 다음 대안을 고려하세요.

  • 추출된 데이터를 변환하고 다른 레코드 시스템에 저장하여 분리
  • Azure Table Storage를 Azure Cosmos DB와 같은 확장성 있는 데이터 구조 대안으로 전환

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

다른 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

이 작업은 Green Software Foundation의 원칙과 방법론에 부합합니다.

친환경 애플리케이션을 빌드하는 다음 단계는 탄소 인식 SDK를 애플리케이션에 포함하는 것입니다. 특정 탄소 조건을 충족하면 실시간으로 트리거를 자동화할 수 있습니다. 자세한 내용은 Green Software Foundation Carbon Aware SDK를 참조하세요.

Well Architected Framework의 지속 가능성 클라우드 워크로드 지침은 지속 가능성 워크로드 설명서를 참조하세요.

지속 가능성에 대한 자세한 내용은 다음 문서를 참조하세요.