@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
156 lines • 7.75 kB
JavaScript
"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: {
[]: 98.12,
[]: 81.32,
[]: 69.65,
[]: 27.71,
[]: 19.56,
[]: 16.7,
[]: 9.67,
[]: 89.6,
[]: 129.78,
[]: 129.78,
},
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: {
[]: 0.64,
[]: 0.65,
[]: 0.71,
[]: 1,
[]: 1.14,
[]: 2.17,
[]: 3.04,
[]: 0.82,
[]: 0.47,
[]: 0.47,
[]: 26,
[]: 18,
[]: 8,
[]: 35,
[]: 35,
[]: 35,
[]: 46,
[]: 9,
[]: 36,
[]: 26,
},
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: {
[]: 3.97,
[]: 4.26,
[]: 3.69,
[]: 4.74,
[]: 5.42,
[]: 8.58,
[]: 8.25,
[]: 2.55,
[]: 1.69,
[]: 1.69,
[]: 229,
[]: 153,
[]: 71,
[]: 306,
[]: 306,
[]: 306,
[]: 407,
[]: 76.5,
[]: 306,
[]: 229,
},
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 = {
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.SERC,
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.RFC,
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC,
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC,
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.SERC,
[]: core_1.US_NERC_REGIONS_EMISSIONS_FACTORS.WECC,
[]: 0.0009006,
[]: 0.00071,
[]: 0.0007082,
[]: 0.0004658,
[]: 0.0004156,
[]: 0.000408,
[]: 0.00076,
[]: 0.0007177,
[]: 0.0004658,
[]: 0.00012,
[]: 0.0005374,
[]: 0.0005374,
[]: 0.000311,
[]: 0.0002786,
[]: 0.000225,
[]: 0.0002134,
[]: 0.0000511,
[]: 0.0000088,
[]: 0.0005059,
[]: 0.0004041,
[]: 0.0000617,
[]: 0.00039278188,
};
//# sourceMappingURL=AwsFootprintEstimationConstants.js.map