다음을 통해 공유


Azure에서 탄소 배출 감소

Azure의 탄소 최적화는 Azure Advisor와 함께 작동하여 최적화 권장 사항을 제공합니다. Azure Advisor는 유휴 및 사용량이 부족한 리소스를 식별하고 권장 사항 구현과 관련된 탄소 및 비용 절감을 보여 줍니다. 권장 사항에는 유휴 가상 머신의 종료 및 가상 머신의 권한 부여가 포함될 수 있습니다. Azure Advisor에 대한 자세한 권장 사항 및 정보는 Azure Advisor사용하여 서비스 비용 절감을 참조하세요.

탄소 최적화 권장 사항을 보려면 배출 감소 페이지로 이동하여 원하는 구독 및 리소스 그룹을 선택합니다.

이 페이지에서는 비용 및 탄소 측면에서 사용 가능한 권장 사항의 총 수와 잠재적인 절약 기회를 보여 줍니다. 또한 미국 EPA Greenhouse Gas Equivalents 계산기계산된 탄소 절감액을 보여 줍니다.

권장 사항 보기

표의 권장 사항 목록은 탄소 배출을 줄이는 데 도움이 될 수 있는 비효율적으로 활용된 리소스를 보여 줍니다. 각 권장 사항은 권장 사항에 따라 행동할 때 발생할 수 있는 관련 탄소 절감 및 잠재적 비용 절감을 보여줍니다.

권장 사항에 따라 행동

권장 사항에 따라 작업하려면 권장 사항 열에서 리소스 이름 또는 텍스트를 선택합니다. 권장 사항 텍스트를 선택하면 리소스의 작업 페이지로 이동합니다. 예를 들어 크기 조정 페이지, 인스턴스 수 변경 페이지 또는 삭제 권장 사항에 대한 리소스 개요 페이지가 있습니다.

배출량 감소 페이지를 보여 주는 스크린샷

배출량 절감액을 동등한 값으로 변환

Greenhouse Gas Equivalencies 계산기 사용하면 배출 데이터를 해당 양을 사용하여 방출되는 CO2(이산화탄소)의 동등한 양으로 변환할 수 있습니다. 계산기는 추상 측정값을 나무, 가구 또는 쓰레기 봉투의 연간 배출량과 같이 이해할 수 있는 구체적인 용어로 변환하는 데 도움이 됩니다. 이 계산기는 온실 가스 감축 전략, 감소 목표 또는 온실 가스 배출을 줄이기 위한 기타 이니셔티브를 전달하는 데 유용할 수 있습니다.

권장 사항 유형에 대한 자세한 내용은 Azure Advisor사용하여 서비스 비용 절감을 참조하세요.

내보내기 배출 감소 권장 사항

Azure Resource Graph를 사용하여 배출 감소 권장 사항을 내보낼 수 있습니다. Azure Resource Graph Explorer에서 다음 쿼리를 실행합니다. 그 후 결과를 CSV로 다운로드할 수 있습니다.

내보내기에는 다음이 포함됩니다.

  • 권장 사항 ID
  • 구독 ID/구독 이름
  • 리소스 그룹 이름
  • 월별 비용 절감
  • 월별 탄소 절감(킬로그램)
  • 리소스 이름
  • 권장 사항 메시지
  • 추천 유형
  • 리소스 ID 및 역할 이름과 같은 리소스 메타데이터를 포함하여 권장 사항에 대한 세부 정보
// Export emissions reduction recommendations using Azure Resource Graph

advisorresources
  | where tolower(type) == "microsoft.advisor/recommendations"
  | extend RecommendationTypeId = tostring(properties.recommendationTypeId)
  | where RecommendationTypeId in ("94aea435-ef39-493f-a547-8408092c22a7", "e10b1381-5f0a-47ff-8c7b-37bd13d7c974")
  | project stableId=name, subscriptionId, resourceGroup, properties, recommendationId=id
  | join kind=leftouter(
      advisorresources
      | where tolower(type) == 'microsoft.advisor/suppressions'
      | extend tokens = split(id, '/')
      | extend stableId = iff(array_length(tokens) > 3, tokens[(array_length(tokens)-3)], '')
      | extend expirationTimeStamp = todatetime(iff(strcmp(tostring(properties.ttl), '-1') == 0, '9999-12-31', properties.expirationTimeStamp))
      | where expirationTimeStamp > now()
      | project suppressionId = tostring(properties.suppressionId), stableId, expirationTimeStamp
  ) on stableId
  | join kind = leftouter (
      advisorresources
      | where tolower(type) == 'microsoft.advisor/configurations'
      | where isempty(resourceGroup) == true
      | project subscriptionId, excludeRecomm = properties.exclude, lowCpuThreshold = properties.lowCpuThreshold
  ) on subscriptionId
  | extend isActive = iff(isempty(excludeRecomm), true, tobool(excludeRecomm) == false)
  | extend isNotExcludedViaCpuThreshold = iff((isnotempty(lowCpuThreshold) and isnotnull(properties.extendedProperties) and isnotempty(properties.extendedProperties.MaxCpuP95)),
      todouble(properties.extendedProperties.MaxCpuP95) < todouble(lowCpuThreshold),
      iff((isnull(properties.extendedProperties) or isempty(properties.extendedProperties.MaxCpuP95) or todouble(properties.extendedProperties.MaxCpuP95) < 100),
          true,
          false))
  | where isActive == true and isNotExcludedViaCpuThreshold == true
  | join kind = leftouter (
      advisorresources
      | where type =~ 'microsoft.advisor/configurations'
      | where isnotempty(resourceGroup) == true
      | project subscriptionId, resourceGroup, excludeProperty = properties.exclude
  ) on subscriptionId, resourceGroup
  | extend shouldBeIncluded = iff(isempty(excludeProperty), true, tobool(excludeProperty) == false)
  | where shouldBeIncluded == true
  | summarize expirationTimeStamp = max(expirationTimeStamp), suppressionIds = make_list(suppressionId) by recommendationId, stableId, subscriptionId, resourceGroup, tostring(properties)
  | extend isRecommendationActive = (isnull(expirationTimeStamp) or isempty(expirationTimeStamp))
  | extend properties = parse_json(properties)
  | extend monthlyCostSavings = toreal(properties.extendedProperties.savingsAmount)
  | extend monthlyCarbonSavingsKg = toreal(properties.extendedProperties.PotentialMonthlyCarbonSavings)
  | where monthlyCarbonSavingsKg > 0
  | extend resourceId = properties.resourceMetadata.resourceId, resourceName = tostring(properties.extendedProperties.roleName), recommendationMessage = properties.extendedProperties.recommendationMessage, recommendationType=tostring(properties.extendedProperties.recommendationType)
  | project recommendationId, subscriptionId, resourceGroup, suppressionIds, isRecommendationActive, monthlyCostSavings, monthlyCarbonSavingsKg, resourceId, resourceName, recommendationMessage, recommendationType| where isRecommendationActive == true| order by monthlyCarbonSavingsKg desc

다음 단계