UNPKG

@cloud-carbon-footprint/aws

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.

213 lines 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AWS_EMISSIONS_FACTORS_METRIC_TON_PER_KWH = exports.AWS_CLOUD_CONSTANTS = void 0; const core_1 = require("@cloud-carbon-footprint/core"); const AWSRegions_1 = require("../lib/AWSRegions"); exports.AWS_CLOUD_CONSTANTS = { SSDCOEFFICIENT: 1.2, HDDCOEFFICIENT: 0.65, MEMORY_AVG: 80.69, MEMORY_BY_COMPUTE_PROCESSOR: { [core_1.COMPUTE_PROCESSOR_TYPES.BROADWELL]: 69.65, [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE]: 105.97, [core_1.COMPUTE_PROCESSOR_TYPES.COFFEE_LAKE]: 19.56, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_1ST_GEN]: 92.44, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_2ND_GEN]: 129.78, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN]: 137.14, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_4TH_GEN]: 152.2, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_5TH_GEN]: 74.62, [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS]: 160, [core_1.COMPUTE_PROCESSOR_TYPES.GRANITE_RAPIDS]: 221.14, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_2]: 129.78, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3]: 129.78, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3E]: 129.78, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_4]: 129.78, [core_1.COMPUTE_PROCESSOR_TYPES.HASWELL]: 31.06, [core_1.COMPUTE_PROCESSOR_TYPES.ICELAKE]: 136, [core_1.COMPUTE_PROCESSOR_TYPES.IVY_BRIDGE]: 13.33, [core_1.COMPUTE_PROCESSOR_TYPES.SANDY_BRIDGE]: 17.07, [core_1.COMPUTE_PROCESSOR_TYPES.SAPPHIRE_RAPIDS]: 130.8, [core_1.COMPUTE_PROCESSOR_TYPES.SKYLAKE]: 75.1, }, getMemory: (computeProcessors) => { const memoryForProcessors = computeProcessors.map((processor) => { return exports.AWS_CLOUD_CONSTANTS.MEMORY_BY_COMPUTE_PROCESSOR[processor]; }); const averageMemoryForProcessors = (0, core_1.getAverage)(memoryForProcessors); return averageMemoryForProcessors ? averageMemoryForProcessors : exports.AWS_CLOUD_CONSTANTS.MEMORY_AVG; }, MIN_WATTS_AVG: 0.74, MIN_WATTS_BY_COMPUTE_PROCESSOR: { [core_1.COMPUTE_PROCESSOR_TYPES.APPLE]: 6.8, [core_1.COMPUTE_PROCESSOR_TYPES.BROADWELL]: 0.71, [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE]: 0.69, [core_1.COMPUTE_PROCESSOR_TYPES.COFFEE_LAKE]: 1.14, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_1ST_GEN]: 0.85, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_2ND_GEN]: 0.47, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN]: 0.46, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_4TH_GEN]: 0.74, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_5TH_GEN]: 3.68, [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS]: 0.81, [core_1.COMPUTE_PROCESSOR_TYPES.GRANITE_RAPIDS]: 0.58, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_2]: 0.47, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3]: 0.47, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3E]: 0.47, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_4]: 0.47, [core_1.COMPUTE_PROCESSOR_TYPES.HASWELL]: 1.86, [core_1.COMPUTE_PROCESSOR_TYPES.ICELAKE]: 0.77, [core_1.COMPUTE_PROCESSOR_TYPES.IVY_BRIDGE]: 1.71, [core_1.COMPUTE_PROCESSOR_TYPES.SANDY_BRIDGE]: 2.21, [core_1.COMPUTE_PROCESSOR_TYPES.SAPPHIRE_RAPIDS]: 1.04, [core_1.COMPUTE_PROCESSOR_TYPES.SKYLAKE]: 0.61, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B300]: 168, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B200]: 120, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H200]: 84, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H100]: 84, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_A100]: 48, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_RTX_PRO_6000]: 72, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L40S]: 42, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L4]: 8.64, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_A10G]: 18, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4G]: 8.4, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4]: 8.4, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_RADEON_PRO_V520]: 27, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_V100_PCIE]: 36, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_V100_SXM2]: 30, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_K80]: 36, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_M60]: 36, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_K520]: 27, }, getMinWatts: (computeProcessors) => { const minWattsForProcessors = computeProcessors.map((processor) => { return exports.AWS_CLOUD_CONSTANTS.MIN_WATTS_BY_COMPUTE_PROCESSOR[processor]; }); const averageWattsForProcessors = (0, core_1.getWattsByAverageOrMedian)(computeProcessors, minWattsForProcessors); return averageWattsForProcessors ? averageWattsForProcessors : exports.AWS_CLOUD_CONSTANTS.MIN_WATTS_AVG; }, MAX_WATTS_AVG: 3.5, MAX_WATTS_BY_COMPUTE_PROCESSOR: { [core_1.COMPUTE_PROCESSOR_TYPES.APPLE]: 39, [core_1.COMPUTE_PROCESSOR_TYPES.BROADWELL]: 3.69, [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE]: 4.06, [core_1.COMPUTE_PROCESSOR_TYPES.COFFEE_LAKE]: 5.42, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_1ST_GEN]: 2.6, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_2ND_GEN]: 1.69, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN]: 1.96, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_4TH_GEN]: 2.28, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_5TH_GEN]: 8.96, [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS]: 4.48, [core_1.COMPUTE_PROCESSOR_TYPES.GRANITE_RAPIDS]: 2.53, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_2]: 1.69, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3]: 1.69, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_3E]: 1.69, [core_1.COMPUTE_PROCESSOR_TYPES.AWS_GRAVITON_4]: 1.69, [core_1.COMPUTE_PROCESSOR_TYPES.HASWELL]: 5.6, [core_1.COMPUTE_PROCESSOR_TYPES.ICELAKE]: 3.76, [core_1.COMPUTE_PROCESSOR_TYPES.IVY_BRIDGE]: 5.56, [core_1.COMPUTE_PROCESSOR_TYPES.SANDY_BRIDGE]: 8.63, [core_1.COMPUTE_PROCESSOR_TYPES.SAPPHIRE_RAPIDS]: 4.16, [core_1.COMPUTE_PROCESSOR_TYPES.SKYLAKE]: 4.1, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B300]: 1428, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B200]: 1020, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H200]: 714, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H100]: 714, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_A100]: 408, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_RTX_PRO_6000]: 612, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L40S]: 357, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L4]: 73.44, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_A10G]: 153, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4G]: 71.4, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4]: 71.4, [core_1.COMPUTE_PROCESSOR_TYPES.AMD_RADEON_PRO_V520]: 229.5, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_V100_PCIE]: 306, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_V100_SXM2]: 255, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_K80]: 306, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_M60]: 306, [core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_K520]: 229.5, }, getMaxWatts: (computeProcessors) => { const maxWattsForProcessors = computeProcessors.map((processor) => { return exports.AWS_CLOUD_CONSTANTS.MAX_WATTS_BY_COMPUTE_PROCESSOR[processor]; }); const averageWattsForProcessors = (0, core_1.getWattsByAverageOrMedian)(computeProcessors, maxWattsForProcessors); return averageWattsForProcessors ? averageWattsForProcessors : exports.AWS_CLOUD_CONSTANTS.MAX_WATTS_AVG; }, NETWORKING_COEFFICIENT: 0.001, MEMORY_COEFFICIENT: 0.000392, PUE_AVG: 1.135, getPUE: () => { return exports.AWS_CLOUD_CONSTANTS.PUE_AVG; }, AVG_CPU_UTILIZATION_2020: 50, REPLICATION_FACTORS: { S3: 6, S3_ONE_ZONE_REDUCED_REDUNDANCY: 2, EC2_EBS_VOLUME: 2, EC2_EBS_SNAPSHOT: 3, EFS: 3, EFS_ONE_ZONE: 2, RDS_BACKUP: 3, RDS_AURORA: 6, RDS_MULTI_AZ: 2, DOCUMENT_DB_BACKUP: 3, DOCUMENT_DB_STORAGE: 2, DYNAMO_DB: 2, ECR_STORAGE: 3, DOCUMENT_ELASTICACHE_BACKUP: 3, SIMPLE_DB: 2, DEFAULT: 1, }, KILOWATT_HOURS_BY_SERVICE_AND_USAGE_UNIT: { total: {}, }, ESTIMATE_UNKNOWN_USAGE_BY: core_1.EstimateUnknownUsageBy.COST, SERVER_EXPECTED_LIFESPAN: 35040, }; exports.AWS_EMISSIONS_FACTORS_METRIC_TON_PER_KWH = { [AWSRegions_1.AWS_REGIONS.US_EAST_1]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.SERC, [AWSRegions_1.AWS_REGIONS.US_EAST_2]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.RFC, [AWSRegions_1.AWS_REGIONS.US_WEST_1]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC, [AWSRegions_1.AWS_REGIONS.US_WEST_2]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC, [AWSRegions_1.AWS_REGIONS.US_GOV_EAST_1]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.SERC, [AWSRegions_1.AWS_REGIONS.US_GOV_WEST_1]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC, [AWSRegions_1.AWS_REGIONS.AF_SOUTH_1]: 0.00075744, [AWSRegions_1.AWS_REGIONS.AP_EAST_1]: 0.00067348, [AWSRegions_1.AWS_REGIONS.AP_EAST_2]: 0.00064142, [AWSRegions_1.AWS_REGIONS.AP_SOUTH_1]: 0.00095182, [AWSRegions_1.AWS_REGIONS.AP_SOUTH_2]: 0.00095182, [AWSRegions_1.AWS_REGIONS.AP_NORTHEAST_1]: 0.00043984, [AWSRegions_1.AWS_REGIONS.AP_NORTHEAST_2]: 0.00047739, [AWSRegions_1.AWS_REGIONS.AP_NORTHEAST_3]: 0.00043984, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_1]: 0.00049453, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_2]: 0.00058023, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_3]: 0.00071767, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_4]: 0.00058023, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_5]: 0.00062051, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_6]: 0.00007939, [AWSRegions_1.AWS_REGIONS.AP_SOUTHEAST_7]: 0.00050824, [AWSRegions_1.AWS_REGIONS.CA_CENTRAL_1]: 0.00011541, [AWSRegions_1.AWS_REGIONS.CA_WEST_1]: 0.00011541, [AWSRegions_1.AWS_REGIONS.CN_NORTH_1]: 0.0005374, [AWSRegions_1.AWS_REGIONS.CN_NORTHWEST_1]: 0.0005374, [AWSRegions_1.AWS_REGIONS.EU_CENTRAL_1]: 0.000368, [AWSRegions_1.AWS_REGIONS.EU_CENTRAL_2]: 0.000368, [AWSRegions_1.AWS_REGIONS.EU_WEST_1]: 0.000305, [AWSRegions_1.AWS_REGIONS.EU_WEST_2]: 0.000305, [AWSRegions_1.AWS_REGIONS.EU_WEST_3]: 0.000074, [AWSRegions_1.AWS_REGIONS.EU_SOUTH_1]: 0.000297, [AWSRegions_1.AWS_REGIONS.EU_SOUTH_2]: 0.000178, [AWSRegions_1.AWS_REGIONS.EU_NORTH_1]: 0.000008, [AWSRegions_1.AWS_REGIONS.IL_CENTRAL_1]: 0.00053982, [AWSRegions_1.AWS_REGIONS.ME_SOUTH_1]: 0.00050549, [AWSRegions_1.AWS_REGIONS.ME_CENTRAL_1]: 0.0003652, [AWSRegions_1.AWS_REGIONS.MX_CENTRAL_1]: 0.00041896, [AWSRegions_1.AWS_REGIONS.SA_EAST_1]: 0.00006398, [AWSRegions_1.AWS_REGIONS.UNKNOWN]: 0.0004215330139, }; //# sourceMappingURL=AwsFootprintEstimationConstants.js.map