Page MenuHomePhabricator

D10398.diff
No OneTemporary

D10398.diff

This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/resources/cost/amazon/linux-od-current.json b/resources/cost/amazon/linux-od-current.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/amazon/linux-od-current.json
@@ -0,0 +1,2823 @@
+{
+ "vers": 0.01,
+ "config": {
+ "rate": "perhr",
+ "valueColumns": [
+ "vCPU",
+ "ECU",
+ "memoryGiB",
+ "storageGB",
+ "linux"
+ ],
+ "currencies": [
+ "USD"
+ ],
+ "regions": [
+ {
+ "region": "us-east",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.013"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.026"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.052"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.070"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.140"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.280"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.560"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.105"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.420"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.680"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.650"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.175"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.350"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.700"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.400"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.800"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.853"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.705"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.410"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "6.820"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.600"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west-2",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.013"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.026"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.052"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.070"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.140"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.280"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.560"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.105"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.420"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.680"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.650"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.175"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.350"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.700"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.400"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.800"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.853"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.705"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.410"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "6.820"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.600"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.017"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.034"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.068"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.077"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.154"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.308"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.616"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.120"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.239"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.478"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.956"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.912"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.702"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.195"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.390"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.780"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.560"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.120"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.938"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.876"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.751"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "7.502"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "eu-ireland",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.014"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.028"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.056"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.077"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.154"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.308"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.616"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.120"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.239"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.478"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.956"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.912"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.702"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.195"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.390"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.780"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.560"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.120"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.938"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.876"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.751"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "7.502"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.900"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-sin",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.040"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.098"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.196"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.392"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.784"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.132"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.265"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.529"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.117"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.000"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.420"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.680"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.360"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.018"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.035"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.070"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "8.140"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "5.570"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-tokyo",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.040"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.101"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.203"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.405"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.810"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.128"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.255"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.511"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.021"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.043"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.898"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.420"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.680"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.360"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.001"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.001"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.002"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "8.004"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "5.400"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-syd",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.040"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.098"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.196"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.392"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.784"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.132"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.265"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.529"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.117"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.898"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.420"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.680"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.360"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.018"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.035"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.070"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "8.140"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "5.570"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "sa-east-1",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.027"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.054"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.108"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.095"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.190"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.381"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.761"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.163"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.325"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.650"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.300"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.600"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/resources/cost/amazon/linux-od-previous.json b/resources/cost/amazon/linux-od-previous.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/amazon/linux-od-previous.json
@@ -0,0 +1,1658 @@
+{
+ "vers": 0.01,
+ "config": {
+ "rate": "perhr",
+ "valueColumns": [
+ "vCPU",
+ "ECU",
+ "memoryGiB",
+ "storageGB",
+ "linux"
+ ],
+ "currencies": [
+ "USD"
+ ],
+ "regions": [
+ {
+ "region": "us-east",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.044"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.087"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.175"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.350"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.130"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.520"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.000"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuPreviousGen",
+ "sizes": [
+ {
+ "size": "cg1.4xlarge",
+ "vCPU": "16",
+ "ECU": "33.5",
+ "memoryGiB": "22.5",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.100"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.245"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.490"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.980"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.100"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west-2",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.044"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.087"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.175"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.350"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.130"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.520"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.000"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.245"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.490"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.980"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.100"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.047"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.095"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.190"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.379"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.148"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.592"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.275"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.550"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.100"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.025"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "eu-ireland",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.047"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.095"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.190"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.379"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.148"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.592"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.250"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuPreviousGen",
+ "sizes": [
+ {
+ "size": "cg1.4xlarge",
+ "vCPU": "16",
+ "ECU": "33.5",
+ "memoryGiB": "22.5",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.360"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.275"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.550"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.100"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.750"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.100"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-sin",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.117"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.233"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.467"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.164"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.655"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.296"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.592"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.183"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-tokyo",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.061"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.122"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.243"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.486"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.158"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.632"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.349"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.287"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.575"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.150"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.105"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.276"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.026"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-syd",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.117"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.233"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.467"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.164"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.655"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.296"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.592"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.183"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "sa-east-1",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.117"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.233"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.467"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.179"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.718"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.323"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.645"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.291"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.027"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/resources/cost/amazon/mswin-od-current.json b/resources/cost/amazon/mswin-od-current.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/amazon/mswin-od-current.json
@@ -0,0 +1,2823 @@
+{
+ "vers": 0.01,
+ "config": {
+ "rate": "perhr",
+ "valueColumns": [
+ "vCPU",
+ "ECU",
+ "memoryGiB",
+ "storageGB",
+ "mswin"
+ ],
+ "currencies": [
+ "USD"
+ ],
+ "regions": [
+ {
+ "region": "us-east",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.018"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.036"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.072"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.133"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.266"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.532"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.064"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.188"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.376"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.752"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.504"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.008"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.767"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.300"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.600"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.944"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.973"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.946"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.891"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "7.782"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.931"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west-2",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.018"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.036"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.072"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.133"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.266"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.532"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.064"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.188"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.376"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.752"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.504"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.008"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.767"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.300"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.600"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.944"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.973"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.946"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.891"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "7.782"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.931"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.022"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.044"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.088"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.140"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.280"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.560"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.120"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.188"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.376"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.752"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.504"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.008"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.819"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.330"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.652"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.173"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.111"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.800"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.058"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.116"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.232"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "8.464"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "eu-ireland",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.019"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.038"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.076"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.133"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.266"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.532"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.064"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.188"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.376"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.752"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.504"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.008"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.767"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.300"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.600"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.080"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.944"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "3.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.973"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.946"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.891"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "7.782"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.931"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-sin",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.050"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.100"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.161"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.322"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.644"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.288"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.238"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.477"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.953"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.906"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.813"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.160"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.323"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.646"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.292"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.447"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.600"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.169"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.337"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.674"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "9.348"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "5.901"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-tokyo",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.025"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.050"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.100"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.151"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.302"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.603"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.206"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.231"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.462"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.925"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.849"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.699"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.010"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.310"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.620"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.219"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.276"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.250"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.113"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.226"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.451"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "8.903"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "5.714"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-syd",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.050"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.100"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.161"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.322"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.644"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.288"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.238"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.477"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.953"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.906"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.813"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuCurrentGen",
+ "sizes": [
+ {
+ "size": "g2.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "15",
+ "storageGB": "60 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.058"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "hiMemCurrentGen",
+ "sizes": [
+ {
+ "size": "r3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "15",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.323"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "0.646"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "61",
+ "storageGB": "1 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "1.292"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.4xlarge",
+ "vCPU": "16",
+ "ECU": "52",
+ "memoryGiB": "122",
+ "storageGB": "1 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "2.447"
+ }
+ }
+ ]
+ },
+ {
+ "size": "r3.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "linux",
+ "prices": {
+ "USD": "4.600"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storageCurrentGen",
+ "sizes": [
+ {
+ "size": "i2.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "30.5",
+ "storageGB": "1 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.169"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.2xlarge",
+ "vCPU": "8",
+ "ECU": "27",
+ "memoryGiB": "61",
+ "storageGB": "2 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.337"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.4xlarge",
+ "vCPU": "16",
+ "ECU": "53",
+ "memoryGiB": "122",
+ "storageGB": "4 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.674"
+ }
+ }
+ ]
+ },
+ {
+ "size": "i2.8xlarge",
+ "vCPU": "32",
+ "ECU": "104",
+ "memoryGiB": "244",
+ "storageGB": "8 x 800 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "9.348"
+ }
+ }
+ ]
+ },
+ {
+ "size": "hs1.8xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "117",
+ "storageGB": "24 x 2048",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "5.901"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "sa-east-1",
+ "instanceTypes": [
+ {
+ "type": "generalCurrentGen",
+ "sizes": [
+ {
+ "size": "t2.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "1",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.032"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.small",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "2",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.064"
+ }
+ }
+ ]
+ },
+ {
+ "size": "t2.medium",
+ "vCPU": "2",
+ "ECU": "variable",
+ "memoryGiB": "4",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.128"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.medium",
+ "vCPU": "1",
+ "ECU": "3",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 4 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.158"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.large",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "7.5",
+ "storageGB": "1 x 32 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.316"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "15",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.633"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m3.2xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "30",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "1.265"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computeCurrentGen",
+ "sizes": [
+ {
+ "size": "c3.large",
+ "vCPU": "2",
+ "ECU": "7",
+ "memoryGiB": "3.75",
+ "storageGB": "2 x 16 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.246"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.xlarge",
+ "vCPU": "4",
+ "ECU": "14",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 40 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.491"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.2xlarge",
+ "vCPU": "8",
+ "ECU": "28",
+ "memoryGiB": "15",
+ "storageGB": "2 x 80 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.982"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.4xlarge",
+ "vCPU": "16",
+ "ECU": "55",
+ "memoryGiB": "30",
+ "storageGB": "2 x 160 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.964"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c3.8xlarge",
+ "vCPU": "32",
+ "ECU": "108",
+ "memoryGiB": "60",
+ "storageGB": "2 x 320 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.928"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/resources/cost/amazon/mswin-od-previous.json b/resources/cost/amazon/mswin-od-previous.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/amazon/mswin-od-previous.json
@@ -0,0 +1,1658 @@
+{
+ "vers": 0.01,
+ "config": {
+ "rate": "perhr",
+ "valueColumns": [
+ "vCPU",
+ "ECU",
+ "memoryGiB",
+ "storageGB",
+ "mswin"
+ ],
+ "currencies": [
+ "USD"
+ ],
+ "regions": [
+ {
+ "region": "us-east",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.075"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.149"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.299"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.598"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.570"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuPreviousGen",
+ "sizes": [
+ {
+ "size": "cg1.4xlarge",
+ "vCPU": "16",
+ "ECU": "33.5",
+ "memoryGiB": "22.5",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.600"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.345"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.690"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.380"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.831"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.580"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west-2",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.075"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.149"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.299"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.598"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.570"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.345"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.690"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.380"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.831"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.580"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "us-west",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.078"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.157"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.314"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.627"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.228"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.912"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.375"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.750"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.500"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.035"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "eu-ireland",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.075"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.149"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.299"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.598"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.210"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.840"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.570"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "gpuPreviousGen",
+ "sizes": [
+ {
+ "size": "cg1.4xlarge",
+ "vCPU": "16",
+ "ECU": "33.5",
+ "memoryGiB": "22.5",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.600"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.345"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.690"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.380"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.831"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.580"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-sin",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.093"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.187"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.373"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.747"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.266"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.065"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.371"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.742"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.483"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-tokyo",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.088"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.177"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.353"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.706"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.258"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.032"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cc2.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "60.5",
+ "storageGB": "4 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "2.919"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.352"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.705"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.410"
+ }
+ }
+ ]
+ },
+ {
+ "size": "cr1.8xlarge",
+ "vCPU": "32",
+ "ECU": "88",
+ "memoryGiB": "244",
+ "storageGB": "2 x 120 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "4.420"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "storagePreviousGen",
+ "sizes": [
+ {
+ "size": "hi1.4xlarge",
+ "vCPU": "16",
+ "ECU": "35",
+ "memoryGiB": "60.5",
+ "storageGB": "2 x 1024 SSD",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "3.686"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.033"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "apac-syd",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.093"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.187"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.373"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.747"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.266"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.065"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.371"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.742"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.483"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.020"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region": "sa-east-1",
+ "instanceTypes": [
+ {
+ "type": "generalPreviousGen",
+ "sizes": [
+ {
+ "size": "m1.small",
+ "vCPU": "1",
+ "ECU": "1",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 160",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.089"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.medium",
+ "vCPU": "1",
+ "ECU": "2",
+ "memoryGiB": "3.75",
+ "storageGB": "1 x 410",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.179"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.large",
+ "vCPU": "2",
+ "ECU": "4",
+ "memoryGiB": "7.5",
+ "storageGB": "2 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.357"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m1.xlarge",
+ "vCPU": "4",
+ "ECU": "8",
+ "memoryGiB": "15",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.715"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "computePreviousGen",
+ "sizes": [
+ {
+ "size": "c1.medium",
+ "vCPU": "2",
+ "ECU": "5",
+ "memoryGiB": "1.7",
+ "storageGB": "1 x 350",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.259"
+ }
+ }
+ ]
+ },
+ {
+ "size": "c1.xlarge",
+ "vCPU": "8",
+ "ECU": "20",
+ "memoryGiB": "7",
+ "storageGB": "4 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.038"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Memory Optimized - Previous Generation",
+ "sizes": [
+ {
+ "size": "m2.xlarge",
+ "vCPU": "2",
+ "ECU": "6.5",
+ "memoryGiB": "17.1",
+ "storageGB": "1 x 420",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.423"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.2xlarge",
+ "vCPU": "4",
+ "ECU": "13",
+ "memoryGiB": "34.2",
+ "storageGB": "1 x 850",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "0.845"
+ }
+ }
+ ]
+ },
+ {
+ "size": "m2.4xlarge",
+ "vCPU": "8",
+ "ECU": "26",
+ "memoryGiB": "68.4",
+ "storageGB": "2 x 840",
+ "valueColumns": [
+ {
+ "name": "mswin",
+ "prices": {
+ "USD": "1.691"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "Micro Instances - Previous Generation",
+ "sizes": [
+ {
+ "size": "t1.micro",
+ "vCPU": "1",
+ "ECU": "variable",
+ "memoryGiB": "0.615",
+ "storageGB": "ebsonly",
+ "valueColumns": [
+ {
+ "name": "os",
+ "prices": {
+ "USD": "0.037"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/resources/cost/azure/global-price-dict.json b/resources/cost/azure/global-price-dict.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/azure/global-price-dict.json
@@ -0,0 +1,607 @@
+{
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "a0": {
+ "price": 0.02
+ },
+ "a1": {
+ "price": 0.09
+ },
+ "a2": {
+ "price": 0.18
+ },
+ "a3": {
+ "price": 0.36
+ },
+ "a4": {
+ "price": 0.72
+ },
+ "a5": {
+ "price": 0.4
+ },
+ "a6": {
+ "price": 0.8
+ },
+ "a7": {
+ "price": 1.6
+ },
+ "msdn": {
+ "a1": {
+ "price": 0.06
+ },
+ "a2": {
+ "price": 0.12
+ },
+ "a3": {
+ "price": 0.24
+ },
+ "a4": {
+ "price": 0.48
+ }
+ },
+ "basic": {
+ "a0": {
+ "price": 0
+ },
+ "a1": {
+ "price": 0
+ },
+ "a2": {
+ "price": 0
+ },
+ "a3": {
+ "price": 0
+ },
+ "a4": {
+ "price": 0
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.02
+ },
+ "a1": {
+ "price": 0.09
+ },
+ "a2": {
+ "price": 0.18
+ },
+ "a3": {
+ "price": 0.36
+ },
+ "a4": {
+ "price": 0.72
+ },
+ "a5": {
+ "price": 0.4
+ },
+ "a6": {
+ "price": 0.8
+ },
+ "a7": {
+ "price": 1.6
+ },
+ "a8": {
+ "price": 2.45
+ },
+ "a9": {
+ "price": 4.9
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0
+ },
+ "a6": {
+ "price": 0
+ },
+ "a7": {
+ "price": 0
+ }
+ }
+ },
+ "windowsPromo": {
+ "a0": {
+ "price": 0.0133
+ },
+ "a1": {
+ "price": 0.08
+ },
+ "a2": {
+ "price": 0.16
+ },
+ "a3": {
+ "price": 0.32
+ },
+ "a4": {
+ "price": 0.64
+ }
+ },
+ "linux": {
+ "a0": {
+ "price": 0.02
+ },
+ "a1": {
+ "price": 0.06
+ },
+ "a2": {
+ "price": 0.12
+ },
+ "a3": {
+ "price": 0.24
+ },
+ "a4": {
+ "price": 0.48
+ },
+ "a5": {
+ "price": 0.32
+ },
+ "a6": {
+ "price": 0.64
+ },
+ "a7": {
+ "price": 1.29
+ },
+ "basic": {
+ "a0": {
+ "price": 0
+ },
+ "a1": {
+ "price": 0
+ },
+ "a2": {
+ "price": 0
+ },
+ "a3": {
+ "price": 0
+ },
+ "a4": {
+ "price": 0
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.02
+ },
+ "a1": {
+ "price": 0.06
+ },
+ "a2": {
+ "price": 0.12
+ },
+ "a3": {
+ "price": 0.24
+ },
+ "a4": {
+ "price": 0.48
+ },
+ "a5": {
+ "price": 0.32
+ },
+ "a6": {
+ "price": 0.64
+ },
+ "a7": {
+ "price": 1.29
+ },
+ "a8": {
+ "price": 1.97
+ },
+ "a9": {
+ "price": 4.47
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0
+ },
+ "a6": {
+ "price": 0
+ },
+ "a7": {
+ "price": 0
+ }
+ },
+ "support": {
+ "SLES": {
+ "a0": {
+ "price": 0.1
+ },
+ "a1": {
+ "price": 0.1
+ },
+ "a2": {
+ "price": 0.2
+ },
+ "a3": {
+ "price": 0.2
+ },
+ "a4": {
+ "price": 0.32
+ },
+ "a5": {
+ "price": 0.32
+ },
+ "a6": {
+ "price": 0.32
+ },
+ "a7": {
+ "price": 0.32
+ }
+ }
+ }
+ },
+ "enterpriseLinux": {
+ "SLES": {
+ "basic": {
+ "a0": {
+ "price": 0.01
+ },
+ "a1": {
+ "price": 0.025
+ },
+ "a2": {
+ "price": 0.05
+ },
+ "a3": {
+ "price": 0.05
+ },
+ "a4": {
+ "price": 0.08
+ },
+ "a5": {
+ "price": 0.08
+ },
+ "a6": {
+ "price": 0.08
+ },
+ "a7": {
+ "price": 0.08
+ }
+ },
+ "premium": {
+ "a0": {
+ "price": 0.1
+ },
+ "a1": {
+ "price": 0.1
+ },
+ "a2": {
+ "price": 0.2
+ },
+ "a3": {
+ "price": 0.2
+ },
+ "a4": {
+ "price": 0.32
+ },
+ "a5": {
+ "price": 0.32
+ },
+ "a6": {
+ "price": 0.32
+ },
+ "a7": {
+ "price": 0.32
+ }
+ }
+ },
+ "canonical": {
+ "basic": {
+ "a0": {
+ "price": 0
+ },
+ "a1": {
+ "price": 0
+ },
+ "a2": {
+ "price": 0
+ },
+ "a3": {
+ "price": 0
+ },
+ "a4": {
+ "price": 0
+ },
+ "a5": {
+ "price": 0
+ },
+ "a6": {
+ "price": 0
+ },
+ "a7": {
+ "price": 0
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.04
+ },
+ "a1": {
+ "price": 0.04
+ },
+ "a2": {
+ "price": 0.08
+ },
+ "a3": {
+ "price": 0.16
+ },
+ "a4": {
+ "price": 0.32
+ },
+ "a5": {
+ "price": 0.08
+ },
+ "a6": {
+ "price": 0.16
+ },
+ "a7": {
+ "price": 0.32
+ }
+ },
+ "premium": {
+ "a0": {
+ "price": 0.08
+ },
+ "a1": {
+ "price": 0.08
+ },
+ "a2": {
+ "price": 0.16
+ },
+ "a3": {
+ "price": 0.32
+ },
+ "a4": {
+ "price": 0.64
+ },
+ "a5": {
+ "price": 0.16
+ },
+ "a6": {
+ "price": 0.32
+ },
+ "a7": {
+ "price": 0.64
+ }
+ }
+ },
+ "openLogic": {
+ "basic": {
+ "a0": {
+ "price": 0
+ },
+ "a1": {
+ "price": 0
+ },
+ "a2": {
+ "price": 0
+ },
+ "a3": {
+ "price": 0
+ },
+ "a4": {
+ "price": 0
+ },
+ "a5": {
+ "price": 0
+ },
+ "a6": {
+ "price": 0
+ },
+ "a7": {
+ "price": 0
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.0188
+ },
+ "a1": {
+ "price": 0.0188
+ },
+ "a2": {
+ "price": 0.0188
+ },
+ "a3": {
+ "price": 0.0188
+ },
+ "a4": {
+ "price": 0.0188
+ },
+ "a5": {
+ "price": 0.0188
+ },
+ "a6": {
+ "price": 0.0188
+ },
+ "a7": {
+ "price": 0.0188
+ }
+ }
+ }
+ },
+ "sql": {
+ "web": {
+ "t1": {
+ "price": 0.045
+ },
+ "t2": {
+ "price": 0.045
+ },
+ "t3": {
+ "price": 0.045
+ },
+ "t4": {
+ "price": 0.09
+ },
+ "t5": {
+ "price": 0.18
+ }
+ },
+ "standard": {
+ "t1": {
+ "price": 0.55
+ },
+ "t2": {
+ "price": 0.55
+ },
+ "t3": {
+ "price": 0.55
+ },
+ "t4": {
+ "price": 1.1
+ },
+ "t5": {
+ "price": 2.2
+ }
+ },
+ "enterprise": {
+ "t1": {
+ "price": 2.1
+ },
+ "t2": {
+ "price": 2.1
+ },
+ "t3": {
+ "price": 2.1
+ },
+ "t4": {
+ "price": 4.2
+ },
+ "t5": {
+ "price": 8.4
+ }
+ }
+ },
+ "biztalk": {
+ "standard": {
+ "t1": {
+ "price": 0.66
+ },
+ "t2": {
+ "price": 0.66
+ },
+ "t3": {
+ "price": 0.66
+ },
+ "t4": {
+ "price": 1.32
+ },
+ "t5": {
+ "price": 2.64
+ }
+ },
+ "enterprise": {
+ "t1": {
+ "price": 2.9
+ },
+ "t2": {
+ "price": 2.9
+ },
+ "t3": {
+ "price": 2.9
+ },
+ "t4": {
+ "price": 5.8
+ },
+ "t5": {
+ "price": 11.6
+ }
+ }
+ },
+ "oracle": {
+ "java": {
+ "c1": {
+ "price": 0.08
+ },
+ "c2": {
+ "price": 0.16
+ },
+ "c4": {
+ "price": 0.32
+ },
+ "c8": {
+ "price": 0.64
+ },
+ "c16": {
+ "price": 1.28
+ }
+ },
+ "weblogic": {
+ "standard": {
+ "c1": {
+ "price": 0.5
+ },
+ "c2": {
+ "price": 0.5
+ },
+ "c4": {
+ "price": 1
+ },
+ "c8": {
+ "price": 2
+ },
+ "c16": {
+ "price": 4
+ }
+ },
+ "enterprise": {
+ "c1": {
+ "price": 1.28
+ },
+ "c2": {
+ "price": 1.28
+ },
+ "c4": {
+ "price": 2.56
+ },
+ "c8": {
+ "price": 5.12
+ },
+ "c16": {
+ "price": 10.24
+ }
+ }
+ },
+ "database": {
+ "standard": {
+ "c1": {
+ "price": 1.11
+ },
+ "c2": {
+ "price": 1.11
+ },
+ "c4": {
+ "price": 1.28
+ },
+ "c8": {
+ "price": 2.55
+ },
+ "c16": {
+ "price": 5.1
+ }
+ },
+ "enterprise": {
+ "c1": {
+ "price": 3.16
+ },
+ "c2": {
+ "price": 3.16
+ },
+ "c4": {
+ "price": 6.32
+ },
+ "c8": {
+ "price": 12.63
+ },
+ "c16": {
+ "price": 25.27
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/resources/cost/azure/regional-price-dict.json b/resources/cost/azure/regional-price-dict.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/azure/regional-price-dict.json
@@ -0,0 +1,1904 @@
+{
+ "us-east": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.074
+ },
+ "a2": {
+ "price": 0.148
+ },
+ "a3": {
+ "price": 0.296
+ },
+ "a4": {
+ "price": 0.592
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.33
+ },
+ "a6": {
+ "price": 0.66
+ },
+ "a7": {
+ "price": 1.32
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.044
+ },
+ "a2": {
+ "price": 0.088
+ },
+ "a3": {
+ "price": 0.176
+ },
+ "a4": {
+ "price": 0.352
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.25
+ },
+ "a6": {
+ "price": 0.5
+ },
+ "a7": {
+ "price": 1
+ }
+ }
+ }
+ }
+ }
+ },
+ "us-west": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.077
+ },
+ "a2": {
+ "price": 0.154
+ },
+ "a3": {
+ "price": 0.308
+ },
+ "a4": {
+ "price": 0.616
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.33
+ },
+ "a6": {
+ "price": 0.66
+ },
+ "a7": {
+ "price": 1.32
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.047
+ },
+ "a2": {
+ "price": 0.094
+ },
+ "a3": {
+ "price": 0.188
+ },
+ "a4": {
+ "price": 0.376
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.25
+ },
+ "a6": {
+ "price": 0.5
+ },
+ "a7": {
+ "price": 1
+ }
+ }
+ }
+ }
+ }
+ },
+ "us-east-2": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.074
+ },
+ "a2": {
+ "price": 0.148
+ },
+ "a3": {
+ "price": 0.296
+ },
+ "a4": {
+ "price": 0.592
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.3
+ },
+ "a6": {
+ "price": 0.6
+ },
+ "a7": {
+ "price": 1.2
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.044
+ },
+ "a2": {
+ "price": 0.088
+ },
+ "a3": {
+ "price": 0.176
+ },
+ "a4": {
+ "price": 0.352
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.22
+ },
+ "a6": {
+ "price": 0.44
+ },
+ "a7": {
+ "price": 0.88
+ }
+ }
+ }
+ }
+ }
+ },
+ "us-central": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.077
+ },
+ "a2": {
+ "price": 0.154
+ },
+ "a3": {
+ "price": 0.308
+ },
+ "a4": {
+ "price": 0.616
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.33
+ },
+ "a6": {
+ "price": 0.66
+ },
+ "a7": {
+ "price": 1.32
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.047
+ },
+ "a2": {
+ "price": 0.094
+ },
+ "a3": {
+ "price": 0.188
+ },
+ "a4": {
+ "price": 0.376
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.25
+ },
+ "a6": {
+ "price": 0.5
+ },
+ "a7": {
+ "price": 1
+ }
+ }
+ }
+ }
+ }
+ },
+ "us-south-central": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.074
+ },
+ "a2": {
+ "price": 0.148
+ },
+ "a3": {
+ "price": 0.296
+ },
+ "a4": {
+ "price": 0.592
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.3
+ },
+ "a6": {
+ "price": 0.6
+ },
+ "a7": {
+ "price": 1.2
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.044
+ },
+ "a2": {
+ "price": 0.088
+ },
+ "a3": {
+ "price": 0.176
+ },
+ "a4": {
+ "price": 0.352
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.22
+ },
+ "a6": {
+ "price": 0.44
+ },
+ "a7": {
+ "price": 0.88
+ }
+ }
+ }
+ }
+ }
+ },
+ "us-north-central": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.077
+ },
+ "a2": {
+ "price": 0.154
+ },
+ "a3": {
+ "price": 0.308
+ },
+ "a4": {
+ "price": 0.616
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.33
+ },
+ "a6": {
+ "price": 0.66
+ },
+ "a7": {
+ "price": 1.32
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.047
+ },
+ "a2": {
+ "price": 0.094
+ },
+ "a3": {
+ "price": 0.188
+ },
+ "a4": {
+ "price": 0.376
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.25
+ },
+ "a6": {
+ "price": 0.5
+ },
+ "a7": {
+ "price": 1
+ }
+ }
+ }
+ }
+ }
+ },
+ "europe-north": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.075
+ },
+ "a2": {
+ "price": 0.15
+ },
+ "a3": {
+ "price": 0.3
+ },
+ "a4": {
+ "price": 0.6
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.3
+ },
+ "a6": {
+ "price": 0.6
+ },
+ "a7": {
+ "price": 1.2
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.047
+ },
+ "a2": {
+ "price": 0.094
+ },
+ "a3": {
+ "price": 0.188
+ },
+ "a4": {
+ "price": 0.376
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.248
+ },
+ "a6": {
+ "price": 0.496
+ },
+ "a7": {
+ "price": 0.992
+ }
+ }
+ }
+ }
+ }
+ },
+ "europe-west": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.081
+ },
+ "a2": {
+ "price": 0.162
+ },
+ "a3": {
+ "price": 0.324
+ },
+ "a4": {
+ "price": 0.648
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.34
+ },
+ "a6": {
+ "price": 0.68
+ },
+ "a7": {
+ "price": 1.36
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.051
+ },
+ "a2": {
+ "price": 0.102
+ },
+ "a3": {
+ "price": 0.204
+ },
+ "a4": {
+ "price": 0.408
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.27
+ },
+ "a6": {
+ "price": 0.54
+ },
+ "a7": {
+ "price": 1.08
+ }
+ }
+ }
+ }
+ }
+ },
+ "asia-pacific-southeast": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.087
+ },
+ "a2": {
+ "price": 0.174
+ },
+ "a3": {
+ "price": 0.348
+ },
+ "a4": {
+ "price": 0.696
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.32
+ },
+ "a6": {
+ "price": 0.64
+ },
+ "a7": {
+ "price": 1.28
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.058
+ },
+ "a2": {
+ "price": 0.116
+ },
+ "a3": {
+ "price": 0.232
+ },
+ "a4": {
+ "price": 0.464
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.27
+ },
+ "a6": {
+ "price": 0.54
+ },
+ "a7": {
+ "price": 1.08
+ }
+ }
+ }
+ }
+ }
+ },
+ "asia-pacific-east": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.087
+ },
+ "a2": {
+ "price": 0.174
+ },
+ "a3": {
+ "price": 0.348
+ },
+ "a4": {
+ "price": 0.696
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.36
+ },
+ "a6": {
+ "price": 0.72
+ },
+ "a7": {
+ "price": 1.44
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.058
+ },
+ "a2": {
+ "price": 0.116
+ },
+ "a3": {
+ "price": 0.232
+ },
+ "a4": {
+ "price": 0.464
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.294
+ },
+ "a6": {
+ "price": 0.588
+ },
+ "a7": {
+ "price": 1.176
+ }
+ }
+ }
+ }
+ }
+ },
+ "japan-east": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.095
+ },
+ "a2": {
+ "price": 0.19
+ },
+ "a3": {
+ "price": 0.38
+ },
+ "a4": {
+ "price": 0.76
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.0265
+ },
+ "a1": {
+ "price": 0.106
+ },
+ "a2": {
+ "price": 0.212
+ },
+ "a3": {
+ "price": 0.424
+ },
+ "a4": {
+ "price": 0.848
+ },
+ "a5": {
+ "price": 0.47
+ },
+ "a6": {
+ "price": 0.94
+ },
+ "a7": {
+ "price": 1.88
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.35
+ },
+ "a6": {
+ "price": 0.7
+ },
+ "a7": {
+ "price": 1.4
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.069
+ },
+ "a2": {
+ "price": 0.138
+ },
+ "a3": {
+ "price": 0.276
+ },
+ "a4": {
+ "price": 0.552
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.0265
+ },
+ "a1": {
+ "price": 0.081
+ },
+ "a2": {
+ "price": 0.162
+ },
+ "a3": {
+ "price": 0.324
+ },
+ "a4": {
+ "price": 0.648
+ },
+ "a5": {
+ "price": 0.432
+ },
+ "a6": {
+ "price": 0.864
+ },
+ "a7": {
+ "price": 1.728
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.281
+ },
+ "a6": {
+ "price": 0.562
+ },
+ "a7": {
+ "price": 1.124
+ }
+ }
+ },
+ "sql": {
+ "web": {
+ "a0": {
+ "price": 0.072
+ },
+ "a1": {
+ "price": 0.151
+ },
+ "a2": {
+ "price": 0.257
+ },
+ "a3": {
+ "price": 0.469
+ },
+ "a4": {
+ "price": 0.938
+ },
+ "a5": {
+ "price": 0.515
+ },
+ "a6": {
+ "price": 0.985
+ },
+ "a7": {
+ "price": 1.97
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.577
+ },
+ "a1": {
+ "price": 0.656
+ },
+ "a2": {
+ "price": 0.762
+ },
+ "a3": {
+ "price": 0.974
+ },
+ "a4": {
+ "price": 1.948
+ },
+ "a5": {
+ "price": 1.02
+ },
+ "a6": {
+ "price": 1.49
+ },
+ "a7": {
+ "price": 2.98
+ }
+ },
+ "enterprise": {
+ "a0": {
+ "price": 2.127
+ },
+ "a1": {
+ "price": 2.206
+ },
+ "a2": {
+ "price": 2.312
+ },
+ "a3": {
+ "price": 2.524
+ },
+ "a4": {
+ "price": 5.048
+ },
+ "a5": {
+ "price": 2.57
+ },
+ "a6": {
+ "price": 3.04
+ },
+ "a7": {
+ "price": 6.08
+ }
+ }
+ },
+ "biztalk": {
+ "standard": {
+ "a0": {
+ "price": 0.687
+ },
+ "a1": {
+ "price": 0.766
+ },
+ "a2": {
+ "price": 0.872
+ },
+ "a3": {
+ "price": 1.084
+ },
+ "a4": {
+ "price": 2.168
+ },
+ "a5": {
+ "price": 1.13
+ },
+ "a6": {
+ "price": 1.6
+ },
+ "a7": {
+ "price": 3.2
+ }
+ },
+ "enterprise": {
+ "a0": {
+ "price": 2.927
+ },
+ "a1": {
+ "price": 3.006
+ },
+ "a2": {
+ "price": 3.112
+ },
+ "a3": {
+ "price": 3.324
+ },
+ "a4": {
+ "price": 6.648
+ },
+ "a5": {
+ "price": 3.37
+ },
+ "a6": {
+ "price": 3.84
+ },
+ "a7": {
+ "price": 7.68
+ }
+ }
+ }
+ },
+ "cloudServices": {
+ "a0": {
+ "price": 0.0235
+ },
+ "a1": {
+ "price": 0.094
+ },
+ "a2": {
+ "price": 0.188
+ },
+ "a3": {
+ "price": 0.376
+ },
+ "a4": {
+ "price": 0.752
+ },
+ "a5": {
+ "price": 0.443
+ },
+ "a6": {
+ "price": 0.886
+ },
+ "a7": {
+ "price": 1.771
+ }
+ },
+ "webSites": {
+ "shared": {
+ "price": 0.0153
+ },
+ "basic": {
+ "small": {
+ "price": 0.0885
+ },
+ "medium": {
+ "price": 0.177
+ },
+ "large": {
+ "price": 0.354
+ }
+ },
+ "standard": {
+ "small": {
+ "price": 0.118
+ },
+ "medium": {
+ "price": 0.236
+ },
+ "large": {
+ "price": 0.472
+ }
+ }
+ },
+ "sqlDatabase": {
+ "basic": {
+ "monthly": {
+ "price": 2.82
+ },
+ "daily": {
+ "price": 0.091
+ }
+ },
+ "standard": {
+ "s1": {
+ "monthly": {
+ "price": 23
+ },
+ "daily": {
+ "price": 0.7291
+ }
+ },
+ "s2": {
+ "monthly": {
+ "price": 113
+ },
+ "daily": {
+ "price": 3.6452
+ }
+ }
+ },
+ "premium": {
+ "p1": {
+ "monthly": {
+ "price": 525
+ },
+ "daily": {
+ "price": 16.95
+ }
+ },
+ "p2": {
+ "monthly": {
+ "price": 1051
+ },
+ "daily": {
+ "price": 33.9
+ }
+ },
+ "p3": {
+ "monthly": {
+ "price": 4204
+ },
+ "daily": {
+ "price": 135.6
+ }
+ }
+ },
+ "webAndBusiness": {
+ "t1": {
+ "price": 5.644
+ },
+ "t2": {
+ "price": 11.29
+ },
+ "t3": {
+ "first": {
+ "price": 11.29
+ },
+ "add": {
+ "price": 4.516
+ }
+ },
+ "t4": {
+ "first": {
+ "price": 51.94
+ },
+ "add": {
+ "price": 2.256
+ }
+ },
+ "t5": {
+ "first": {
+ "price": 142.24
+ },
+ "add": {
+ "price": 1.129
+ }
+ }
+ }
+ }
+ }
+ },
+ "japan-west": {
+ "services": {
+ "hdInsight": {
+ "head": {
+ "a3": {
+ "price": 0.68
+ },
+ "a4": {
+ "price": 1.36
+ }
+ },
+ "compute": {
+ "price": 0.34
+ },
+ "msdn": {
+ "head": {
+ "price": 0.48
+ },
+ "compute": {
+ "price": 0.24
+ }
+ },
+ "hbase": {
+ "price": 0.51
+ }
+ },
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.088
+ },
+ "a2": {
+ "price": 0.176
+ },
+ "a3": {
+ "price": 0.352
+ },
+ "a4": {
+ "price": 0.704
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.02375
+ },
+ "a1": {
+ "price": 0.095
+ },
+ "a2": {
+ "price": 0.19
+ },
+ "a3": {
+ "price": 0.38
+ },
+ "a4": {
+ "price": 0.76
+ },
+ "a5": {
+ "price": 0.423
+ },
+ "a6": {
+ "price": 0.846
+ },
+ "a7": {
+ "price": 1.692
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.31
+ },
+ "a6": {
+ "price": 0.62
+ },
+ "a7": {
+ "price": 1.24
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.018
+ },
+ "a1": {
+ "price": 0.061
+ },
+ "a2": {
+ "price": 0.122
+ },
+ "a3": {
+ "price": 0.244
+ },
+ "a4": {
+ "price": 0.488
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.02433
+ },
+ "a1": {
+ "price": 0.073
+ },
+ "a2": {
+ "price": 0.146
+ },
+ "a3": {
+ "price": 0.292
+ },
+ "a4": {
+ "price": 0.584
+ },
+ "a5": {
+ "price": 0.398
+ },
+ "a6": {
+ "price": 0.778
+ },
+ "a7": {
+ "price": 1.55
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.258
+ },
+ "a6": {
+ "price": 0.516
+ },
+ "a7": {
+ "price": 1.032
+ }
+ }
+ },
+ "sql": {
+ "web": {
+ "a0": {
+ "price": 0.069
+ },
+ "a1": {
+ "price": 0.14
+ },
+ "a2": {
+ "price": 0.235
+ },
+ "a3": {
+ "price": 0.425
+ },
+ "a4": {
+ "price": 0.85
+ },
+ "a5": {
+ "price": 0.468
+ },
+ "a6": {
+ "price": 0.891
+ },
+ "a7": {
+ "price": 1.782
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.574
+ },
+ "a1": {
+ "price": 0.645
+ },
+ "a2": {
+ "price": 0.74
+ },
+ "a3": {
+ "price": 0.93
+ },
+ "a4": {
+ "price": 1.86
+ },
+ "a5": {
+ "price": 0.973
+ },
+ "a6": {
+ "price": 1.396
+ },
+ "a7": {
+ "price": 2.792
+ }
+ },
+ "enterprise": {
+ "a0": {
+ "price": 2.124
+ },
+ "a1": {
+ "price": 2.195
+ },
+ "a2": {
+ "price": 2.29
+ },
+ "a3": {
+ "price": 2.48
+ },
+ "a4": {
+ "price": 4.96
+ },
+ "a5": {
+ "price": 2.523
+ },
+ "a6": {
+ "price": 2.946
+ },
+ "a7": {
+ "price": 5.892
+ }
+ }
+ },
+ "biztalk": {
+ "standard": {
+ "a0": {
+ "price": 0.684
+ },
+ "a1": {
+ "price": 0.755
+ },
+ "a2": {
+ "price": 0.85
+ },
+ "a3": {
+ "price": 1.04
+ },
+ "a4": {
+ "price": 2.08
+ },
+ "a5": {
+ "price": 1.083
+ },
+ "a6": {
+ "price": 1.506
+ },
+ "a7": {
+ "price": 3.012
+ }
+ },
+ "enterprise": {
+ "a0": {
+ "price": 2.924
+ },
+ "a1": {
+ "price": 2.995
+ },
+ "a2": {
+ "price": 3.09
+ },
+ "a3": {
+ "price": 3.28
+ },
+ "a4": {
+ "price": 6.56
+ },
+ "a5": {
+ "price": 3.323
+ },
+ "a6": {
+ "price": 3.746
+ },
+ "a7": {
+ "price": 7.492
+ }
+ }
+ }
+ },
+ "cloudServices": {
+ "a0": {
+ "price": 0.02125
+ },
+ "a1": {
+ "price": 0.085
+ },
+ "a2": {
+ "price": 0.17
+ },
+ "a3": {
+ "price": 0.34
+ },
+ "a4": {
+ "price": 0.68
+ },
+ "a5": {
+ "price": 0.398
+ },
+ "a6": {
+ "price": 0.797
+ },
+ "a7": {
+ "price": 1.594
+ }
+ },
+ "webSites": {
+ "shared": {
+ "price": 0.0138
+ },
+ "basic": {
+ "small": {
+ "price": 0.085
+ },
+ "medium": {
+ "price": 0.17
+ },
+ "large": {
+ "price": 0.34
+ }
+ },
+ "standard": {
+ "small": {
+ "price": 0.106
+ },
+ "medium": {
+ "price": 0.212
+ },
+ "large": {
+ "price": 0.424
+ }
+ }
+ },
+ "sqlDatabase": {
+ "basic": {
+ "monthly": {
+ "price": 2.82
+ },
+ "daily": {
+ "price": 0.091
+ }
+ },
+ "standard": {
+ "s1": {
+ "monthly": {
+ "price": 23
+ },
+ "daily": {
+ "price": 0.7291
+ }
+ },
+ "s2": {
+ "monthly": {
+ "price": 113
+ },
+ "daily": {
+ "price": 3.6452
+ }
+ }
+ },
+ "premium": {
+ "p1": {
+ "monthly": {
+ "price": 525
+ },
+ "daily": {
+ "price": 16.95
+ }
+ },
+ "p2": {
+ "monthly": {
+ "price": 1051
+ },
+ "daily": {
+ "price": 33.9
+ }
+ },
+ "p3": {
+ "monthly": {
+ "price": 4204
+ },
+ "daily": {
+ "price": 135.6
+ }
+ }
+ },
+ "webAndBusiness": {
+ "t1": {
+ "price": 5.644
+ },
+ "t2": {
+ "price": 11.29
+ },
+ "t3": {
+ "first": {
+ "price": 11.29
+ },
+ "add": {
+ "price": 4.516
+ }
+ },
+ "t4": {
+ "first": {
+ "price": 51.94
+ },
+ "add": {
+ "price": 2.256
+ }
+ },
+ "t5": {
+ "first": {
+ "price": 142.24
+ },
+ "add": {
+ "price": 1.129
+ }
+ }
+ }
+ }
+ }
+ },
+ "brazil-south": {
+ "services": {
+ "virtualMachines": {
+ "windows": {
+ "basic": {
+ "a0": {
+ "price": 0.022
+ },
+ "a1": {
+ "price": 0.089
+ },
+ "a2": {
+ "price": 0.178
+ },
+ "a3": {
+ "price": 0.356
+ },
+ "a4": {
+ "price": 0.712
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.028
+ },
+ "a1": {
+ "price": 0.11
+ },
+ "a2": {
+ "price": 0.22
+ },
+ "a3": {
+ "price": 0.44
+ },
+ "a4": {
+ "price": 0.88
+ },
+ "a5": {
+ "price": 0.368
+ },
+ "a6": {
+ "price": 0.736
+ },
+ "a7": {
+ "price": 1.472
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.368
+ },
+ "a6": {
+ "price": 0.736
+ },
+ "a7": {
+ "price": 1.472
+ }
+ }
+ },
+ "linux": {
+ "basic": {
+ "a0": {
+ "price": 0.022
+ },
+ "a1": {
+ "price": 0.058
+ },
+ "a2": {
+ "price": 0.116
+ },
+ "a3": {
+ "price": 0.232
+ },
+ "a4": {
+ "price": 0.464
+ }
+ },
+ "standard": {
+ "a0": {
+ "price": 0.027
+ },
+ "a1": {
+ "price": 0.08
+ },
+ "a2": {
+ "price": 0.16
+ },
+ "a3": {
+ "price": 0.32
+ },
+ "a4": {
+ "price": 0.64
+ },
+ "a5": {
+ "price": 0.291
+ },
+ "a6": {
+ "price": 0.582
+ },
+ "a7": {
+ "price": 1.164
+ }
+ },
+ "standardNew": {
+ "a5": {
+ "price": 0.291
+ },
+ "a6": {
+ "price": 0.582
+ },
+ "a7": {
+ "price": 1.164
+ }
+ }
+ }
+ },
+ "cloudServices": {
+ "a0": {
+ "price": 0.024
+ },
+ "a1": {
+ "price": 0.098
+ },
+ "a2": {
+ "price": 0.196
+ },
+ "a3": {
+ "price": 0.392
+ },
+ "a4": {
+ "price": 0.784
+ },
+ "a5": {
+ "price": 0.435
+ },
+ "a6": {
+ "price": 0.87
+ },
+ "a7": {
+ "price": 1.74
+ },
+ "a8": {
+ "price": 2.989
+ },
+ "a9": {
+ "price": 5.98
+ }
+ },
+ "webSites": {
+ "shared": {
+ "price": 0.0158
+ },
+ "basic": {
+ "small": {
+ "price": 0.0915
+ },
+ "medium": {
+ "price": 0.183
+ },
+ "large": {
+ "price": 0.366
+ }
+ },
+ "standard": {
+ "small": {
+ "price": 0.122
+ },
+ "medium": {
+ "price": 0.244
+ },
+ "large": {
+ "price": 0.488
+ }
+ }
+ },
+ "sqlDatabase": {
+ "basic": {
+ "monthly": {
+ "price": 3
+ },
+ "daily": {
+ "price": 0.094
+ }
+ },
+ "standard": {
+ "s1": {
+ "monthly": {
+ "price": 24
+ },
+ "daily": {
+ "price": 0.7807
+ }
+ },
+ "s2": {
+ "monthly": {
+ "price": 121
+ },
+ "daily": {
+ "price": 3.9032
+ }
+ }
+ },
+ "premium": {
+ "p1": {
+ "monthly": {
+ "price": 563
+ },
+ "daily": {
+ "price": 18.15
+ }
+ },
+ "p2": {
+ "monthly": {
+ "price": 1125
+ },
+ "daily": {
+ "price": 36.3
+ }
+ },
+ "p3": {
+ "monthly": {
+ "price": 4501
+ },
+ "daily": {
+ "price": 145.2
+ }
+ }
+ },
+ "webAndBusiness": {
+ "t1": {
+ "price": 6.04
+ },
+ "t2": {
+ "price": 12.09
+ },
+ "t3": {
+ "first": {
+ "price": 12.09
+ },
+ "add": {
+ "price": 4.84
+ }
+ },
+ "t4": {
+ "first": {
+ "price": 55.61
+ },
+ "add": {
+ "price": 2.42
+ }
+ },
+ "t5": {
+ "first": {
+ "price": 152.31
+ },
+ "add": {
+ "price": 1.21
+ }
+ }
+ }
+ },
+ "storage": {
+ "block": {
+ "LRS": {
+ "t1": {
+ "price": 0.0326
+ },
+ "t2": {
+ "price": 0.032
+ },
+ "t3": {
+ "price": 0.0315
+ },
+ "t4": {
+ "price": 0.0309
+ },
+ "t5": {
+ "price": 0.0304
+ }
+ },
+ "GRS": {
+ "t1": {
+ "price": 0.0655
+ },
+ "t2": {
+ "price": 0.0645
+ },
+ "t3": {
+ "price": 0.0635
+ },
+ "t4": {
+ "price": 0.0625
+ },
+ "t5": {
+ "price": 0.061
+ }
+ },
+ "RAGRS": {
+ "t1": {
+ "price": 0.0832
+ },
+ "t2": {
+ "price": 0.0819
+ },
+ "t3": {
+ "price": 0.0806
+ },
+ "t4": {
+ "price": 0.0794
+ },
+ "t5": {
+ "price": 0.0775
+ }
+ }
+ },
+ "page": {
+ "LRS": {
+ "t1": {
+ "price": 0.12
+ },
+ "t2": {
+ "price": 0.12
+ },
+ "t3": {
+ "price": 0.12
+ },
+ "t4": {
+ "price": 0.12
+ },
+ "t5": {
+ "price": 0.115
+ }
+ },
+ "GRS": {
+ "t1": {
+ "price": 0.17
+ },
+ "t2": {
+ "price": 0.17
+ },
+ "t3": {
+ "price": 0.17
+ },
+ "t4": {
+ "price": 0.17
+ },
+ "t5": {
+ "price": 0.165
+ }
+ },
+ "RAGRS": {
+ "t1": {
+ "price": 0.221
+ },
+ "t2": {
+ "price": 0.221
+ },
+ "t3": {
+ "price": 0.221
+ },
+ "t4": {
+ "price": 0.221
+ },
+ "t5": {
+ "price": 0.215
+ }
+ }
+ },
+ "table": {
+ "LRS": {
+ "t1": {
+ "price": 0.095
+ },
+ "t2": {
+ "price": 0.088
+ },
+ "t3": {
+ "price": 0.082
+ },
+ "t4": {
+ "price": 0.075
+ },
+ "t5": {
+ "price": 0.061
+ }
+ },
+ "GRS": {
+ "t1": {
+ "price": 0.129
+ },
+ "t2": {
+ "price": 0.109
+ },
+ "t3": {
+ "price": 0.095
+ },
+ "t4": {
+ "price": 0.088
+ },
+ "t5": {
+ "price": 0.082
+ }
+ },
+ "RAGRS": {
+ "t1": {
+ "price": 0.163
+ },
+ "t2": {
+ "price": 0.136
+ },
+ "t3": {
+ "price": 0.122
+ },
+ "t4": {
+ "price": 0.109
+ },
+ "t5": {
+ "price": 0.102
+ }
+ }
+ },
+ "files": {
+ "LRS": {
+ "t1": {
+ "price": 0.054
+ }
+ },
+ "GRS": {
+ "t1": {
+ "price": 0.068
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/resources/cost/linode/plans.json b/resources/cost/linode/plans.json
new file mode 100644
--- /dev/null
+++ b/resources/cost/linode/plans.json
@@ -0,0 +1,164 @@
+[
+ {
+ "CORES": 1,
+ "PRICE": 10,
+ "RAM": 1024,
+ "XFER": 2000,
+ "PLANID": 1,
+ "LABEL": "Linode 1024",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 24,
+ "HOURLY": 0.015
+ },
+ {
+ "CORES": 2,
+ "PRICE": 20,
+ "RAM": 2048,
+ "XFER": 3000,
+ "PLANID": 2,
+ "LABEL": "Linode 2048",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 48,
+ "HOURLY": 0.03
+ },
+ {
+ "CORES": 4,
+ "PRICE": 40,
+ "RAM": 4096,
+ "XFER": 4000,
+ "PLANID": 4,
+ "LABEL": "Linode 4096",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 96,
+ "HOURLY": 0.06
+ },
+ {
+ "CORES": 6,
+ "PRICE": 80,
+ "RAM": 8192,
+ "XFER": 8000,
+ "PLANID": 6,
+ "LABEL": "Linode 8192",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 192,
+ "HOURLY": 0.12
+ },
+ {
+ "CORES": 8,
+ "PRICE": 160,
+ "RAM": 16384,
+ "XFER": 16000,
+ "PLANID": 7,
+ "LABEL": "Linode 16384",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 384,
+ "HOURLY": 0.24
+ },
+ {
+ "CORES": 12,
+ "PRICE": 320,
+ "RAM": 32768,
+ "XFER": 20000,
+ "PLANID": 8,
+ "LABEL": "Linode 32768",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 768,
+ "HOURLY": 0.48
+ },
+ {
+ "CORES": 16,
+ "PRICE": 480,
+ "RAM": 49152,
+ "XFER": 20000,
+ "PLANID": 9,
+ "LABEL": "Linode 49152",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 1152,
+ "HOURLY": 0.72
+ },
+ {
+ "CORES": 20,
+ "PRICE": 640,
+ "RAM": 65536,
+ "XFER": 20000,
+ "PLANID": 10,
+ "LABEL": "Linode 65536",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 1536,
+ "HOURLY": 0.96
+ },
+ {
+ "CORES": 20,
+ "PRICE": 960,
+ "RAM": 98304,
+ "XFER": 20000,
+ "PLANID": 12,
+ "LABEL": "Linode 98304",
+ "AVAIL": {
+ "2": 500,
+ "3": 500,
+ "4": 500,
+ "6": 500,
+ "7": 500,
+ "8": 500
+ },
+ "DISK": 1920,
+ "HOURLY": 1.44
+ }
+]
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -9,6 +9,7 @@
phutil_register_library_map(array(
'__library_version__' => 2,
'class' => array(
+ 'AmazonEC2CostTable' => 'applications/drydock/cost/AmazonEC2CostTable.php',
'Aphront304Response' => 'aphront/response/Aphront304Response.php',
'Aphront400Response' => 'aphront/response/Aphront400Response.php',
'Aphront403Response' => 'aphront/response/Aphront403Response.php',
@@ -573,6 +574,7 @@
'DrydockAllocationContext' => 'applications/drydock/util/DrydockAllocationContext.php',
'DrydockAllocatorWorker' => 'applications/drydock/worker/DrydockAllocatorWorker.php',
'DrydockAmazonEC2HostBlueprintImplementation' => 'applications/drydock/blueprint/DrydockAmazonEC2HostBlueprintImplementation.php',
+ 'DrydockAmazonEC2HostTestBlueprintImplementation' => 'applications/drydock/blueprint/DrydockAmazonEC2HostTestBlueprintImplementation.php',
'DrydockApacheWebrootInterface' => 'applications/drydock/interface/webroot/DrydockApacheWebrootInterface.php',
'DrydockBlueprint' => 'applications/drydock/storage/DrydockBlueprint.php',
'DrydockBlueprintController' => 'applications/drydock/controller/DrydockBlueprintController.php',
@@ -594,6 +596,7 @@
'DrydockConsoleController' => 'applications/drydock/controller/DrydockConsoleController.php',
'DrydockConstants' => 'applications/drydock/constants/DrydockConstants.php',
'DrydockController' => 'applications/drydock/controller/DrydockController.php',
+ 'DrydockCostAwareBlueprintInterface' => 'applications/drydock/cost/DrydockCostAwareBlueprintInterface.php',
'DrydockCreateBlueprintsCapability' => 'applications/drydock/capability/DrydockCreateBlueprintsCapability.php',
'DrydockDAO' => 'applications/drydock/storage/DrydockDAO.php',
'DrydockDefaultEditCapability' => 'applications/drydock/capability/DrydockDefaultEditCapability.php',
@@ -610,6 +613,7 @@
'DrydockLeaseSearchEngine' => 'applications/drydock/query/DrydockLeaseSearchEngine.php',
'DrydockLeaseStatus' => 'applications/drydock/constants/DrydockLeaseStatus.php',
'DrydockLeaseViewController' => 'applications/drydock/controller/DrydockLeaseViewController.php',
+ 'DrydockLinodeHostTestBlueprintImplementation' => 'applications/drydock/blueprint/DrydockLinodeHostTestBlueprintImplementation.php',
'DrydockLocalCommandInterface' => 'applications/drydock/interface/command/DrydockLocalCommandInterface.php',
'DrydockLog' => 'applications/drydock/storage/DrydockLog.php',
'DrydockLogController' => 'applications/drydock/controller/DrydockLogController.php',
@@ -618,10 +622,12 @@
'DrydockLogQuery' => 'applications/drydock/query/DrydockLogQuery.php',
'DrydockLogSearchEngine' => 'applications/drydock/query/DrydockLogSearchEngine.php',
'DrydockManagementCloseWorkflow' => 'applications/drydock/management/DrydockManagementCloseWorkflow.php',
+ 'DrydockManagementCostWorkflow' => 'applications/drydock/management/DrydockManagementCostWorkflow.php',
'DrydockManagementCreateResourceWorkflow' => 'applications/drydock/management/DrydockManagementCreateResourceWorkflow.php',
'DrydockManagementLeaseWorkflow' => 'applications/drydock/management/DrydockManagementLeaseWorkflow.php',
'DrydockManagementReleaseWorkflow' => 'applications/drydock/management/DrydockManagementReleaseWorkflow.php',
'DrydockManagementWorkflow' => 'applications/drydock/management/DrydockManagementWorkflow.php',
+ 'DrydockMicrosoftAzureHostTestBlueprintImplementation' => 'applications/drydock/blueprint/DrydockMicrosoftAzureHostTestBlueprintImplementation.php',
'DrydockMinMaxBlueprintImplementation' => 'applications/drydock/blueprint/DrydockMinMaxBlueprintImplementation.php',
'DrydockMinMaxExpiryBlueprintImplementation' => 'applications/drydock/blueprint/DrydockMinMaxExpiryBlueprintImplementation.php',
'DrydockMinMaxTestBlueprintImplementation' => 'applications/drydock/blueprint/DrydockMinMaxTestBlueprintImplementation.php',
@@ -630,6 +636,7 @@
'DrydockResource' => 'applications/drydock/storage/DrydockResource.php',
'DrydockResourceCloseController' => 'applications/drydock/controller/DrydockResourceCloseController.php',
'DrydockResourceController' => 'applications/drydock/controller/DrydockResourceController.php',
+ 'DrydockResourceCostCalculator' => 'applications/drydock/cost/DrydockResourceCostCalculator.php',
'DrydockResourceListController' => 'applications/drydock/controller/DrydockResourceListController.php',
'DrydockResourceListView' => 'applications/drydock/view/DrydockResourceListView.php',
'DrydockResourcePHIDType' => 'applications/drydock/phid/DrydockResourcePHIDType.php',
@@ -841,6 +848,7 @@
'LegalpadTransactionQuery' => 'applications/legalpad/query/LegalpadTransactionQuery.php',
'LegalpadTransactionType' => 'applications/legalpad/constants/LegalpadTransactionType.php',
'LegalpadTransactionView' => 'applications/legalpad/view/LegalpadTransactionView.php',
+ 'LinodeCostTable' => 'applications/drydock/cost/LinodeCostTable.php',
'LiskChunkTestCase' => 'infrastructure/storage/lisk/__tests__/LiskChunkTestCase.php',
'LiskDAO' => 'infrastructure/storage/lisk/LiskDAO.php',
'LiskDAOSet' => 'infrastructure/storage/lisk/LiskDAOSet.php',
@@ -928,6 +936,7 @@
'MetaMTAMailSentGarbageCollector' => 'applications/metamta/garbagecollector/MetaMTAMailSentGarbageCollector.php',
'MetaMTANotificationType' => 'applications/metamta/constants/MetaMTANotificationType.php',
'MetaMTAReceivedMailStatus' => 'applications/metamta/constants/MetaMTAReceivedMailStatus.php',
+ 'MicrosoftAzureCostTable' => 'applications/drydock/cost/MicrosoftAzureCostTable.php',
'NuanceConduitAPIMethod' => 'applications/nuance/conduit/NuanceConduitAPIMethod.php',
'NuanceConstants' => 'applications/nuance/constants/NuanceConstants.php',
'NuanceController' => 'applications/nuance/controller/NuanceController.php',
@@ -1475,6 +1484,7 @@
'PhabricatorDraft' => 'applications/draft/storage/PhabricatorDraft.php',
'PhabricatorDraftDAO' => 'applications/draft/storage/PhabricatorDraftDAO.php',
'PhabricatorDrydockApplication' => 'applications/drydock/application/PhabricatorDrydockApplication.php',
+ 'PhabricatorDrydockConfigOptions' => 'applications/drydock/config/PhabricatorDrydockConfigOptions.php',
'PhabricatorEdgeConfig' => 'infrastructure/edges/constants/PhabricatorEdgeConfig.php',
'PhabricatorEdgeConstants' => 'infrastructure/edges/constants/PhabricatorEdgeConstants.php',
'PhabricatorEdgeCycleException' => 'infrastructure/edges/exception/PhabricatorEdgeCycleException.php',
@@ -3332,6 +3342,10 @@
'DrydockAllocationContext' => 'Phobject',
'DrydockAllocatorWorker' => 'PhabricatorWorker',
'DrydockAmazonEC2HostBlueprintImplementation' => 'DrydockMinMaxExpiryBlueprintImplementation',
+ 'DrydockAmazonEC2HostTestBlueprintImplementation' => array(
+ 'DrydockBlueprintImplementation',
+ 'DrydockCostAwareBlueprintInterface',
+ ),
'DrydockApacheWebrootInterface' => 'DrydockWebrootInterface',
'DrydockBlueprint' => array(
'DrydockDAO',
@@ -3375,6 +3389,10 @@
'DrydockLeaseSearchEngine' => 'PhabricatorApplicationSearchEngine',
'DrydockLeaseStatus' => 'DrydockConstants',
'DrydockLeaseViewController' => 'DrydockLeaseController',
+ 'DrydockLinodeHostTestBlueprintImplementation' => array(
+ 'DrydockBlueprintImplementation',
+ 'DrydockCostAwareBlueprintInterface',
+ ),
'DrydockLocalCommandInterface' => 'DrydockCommandInterface',
'DrydockLog' => array(
'DrydockDAO',
@@ -3386,10 +3404,15 @@
'DrydockLogQuery' => 'DrydockQuery',
'DrydockLogSearchEngine' => 'PhabricatorApplicationSearchEngine',
'DrydockManagementCloseWorkflow' => 'DrydockManagementWorkflow',
+ 'DrydockManagementCostWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementCreateResourceWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementLeaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementReleaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementWorkflow' => 'PhabricatorManagementWorkflow',
+ 'DrydockMicrosoftAzureHostTestBlueprintImplementation' => array(
+ 'DrydockBlueprintImplementation',
+ 'DrydockCostAwareBlueprintInterface',
+ ),
'DrydockMinMaxBlueprintImplementation' => 'DrydockBlueprintImplementation',
'DrydockMinMaxExpiryBlueprintImplementation' => 'DrydockMinMaxBlueprintImplementation',
'DrydockMinMaxTestBlueprintImplementation' => 'DrydockMinMaxExpiryBlueprintImplementation',
@@ -4332,6 +4355,7 @@
'PhabricatorDraft' => 'PhabricatorDraftDAO',
'PhabricatorDraftDAO' => 'PhabricatorLiskDAO',
'PhabricatorDrydockApplication' => 'PhabricatorApplication',
+ 'PhabricatorDrydockConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorEdgeConfig' => 'PhabricatorEdgeConstants',
'PhabricatorEdgeCycleException' => 'Exception',
'PhabricatorEdgeEditor' => 'Phobject',
diff --git a/src/applications/drydock/blueprint/DrydockAmazonEC2HostTestBlueprintImplementation.php b/src/applications/drydock/blueprint/DrydockAmazonEC2HostTestBlueprintImplementation.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/blueprint/DrydockAmazonEC2HostTestBlueprintImplementation.php
@@ -0,0 +1,166 @@
+<?php
+
+final class DrydockAmazonEC2HostTestBlueprintImplementation
+ extends DrydockBlueprintImplementation
+ implements DrydockCostAwareBlueprintInterface {
+
+ public function isEnabled() {
+ return true;
+ }
+
+ public function isTest() {
+ return true;
+ }
+
+ public function getBlueprintName() {
+ return pht('Amazon EC2 Remote Hosts (Test)');
+ }
+
+ public function getDescription() {
+ return pht(
+ 'A test allocator which emulates the pricing model of Amazon EC2.');
+ }
+
+ public function canAllocateResourceForLease(DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === $this->getDetail('platform');
+ }
+
+ protected function shouldAllocateLease(
+ DrydockAllocationContext $context,
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ return true;
+ }
+
+ protected function shouldCloseUnleasedResource(
+ DrydockAllocationContext $context,
+ DrydockResource $resource) {
+
+ return false;
+ }
+
+ protected function canAllocateLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === $resource->getAttribute('platform');
+ }
+
+ protected function executeAllocateResource(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ $resource->setName('Test Resource');
+ $resource->setStatus(DrydockResourceStatus::STATUS_OPEN);
+ $resource->save();
+ return $resource;
+ }
+
+ protected function executeCloseResource(DrydockResource $resource) {
+
+ }
+
+ protected function executeAcquireLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ protected function executeReleaseLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ public function getType() {
+ return 'test-host';
+ }
+
+ public function getInterface(
+ DrydockResource $resource,
+ DrydockLease $lease,
+ $type) {
+
+ throw new Exception("No interface of type '{$type}'.");
+ }
+
+ public function getFieldSpecifications() {
+ return array(
+ 'amazon' => array(
+ 'name' => pht('Amazon Configuration'),
+ 'type' => 'header'
+ ),
+ 'region' => array(
+ 'name' => pht('Region'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s', 'us-west-1')
+ ),
+ 'size' => array(
+ 'name' => pht('Instance Size'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s', 't2.micro')
+ ),
+ 'platform' => array(
+ 'name' => pht('Platform Name'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s or %s', 'windows', 'linux')
+ ),
+ 'spot' => array(
+ 'name' => pht('Spot Instances'),
+ 'type' => 'header'
+ ),
+ 'spot-enabled' => array(
+ 'name' => pht('Use Spot Instances'),
+ 'type' => 'bool',
+ 'caption' => pht(
+ 'Use spot instances when allocating EC2 instances. Spot instances '.
+ 'are cheaper, but can be terminated at any time (for example, in '.
+ 'the middle of a Harbormaster build)'),
+ ),
+ 'spot-price' => array(
+ 'name' => pht('Maximum Bid'),
+ 'type' => 'decimal',
+ 'caption' => pht(
+ 'The maximum bid to pay per hour when running spot instances. If '.
+ 'the current bid price exceeds this amount, then the instance will '.
+ 'be terminated. WARNING: You should not set this higher '.
+ 'than the On Demand price for this instance type, or you could end '.
+ 'up paying more than the non-spot instance price.'),
+ ),
+ ) + parent::getFieldSpecifications();
+ }
+
+
+/* -( DrydockCostAwareBlueprintInterface )--------------------------------- */
+
+
+ public function getBillingPeriod() {
+ return DrydockCostAwareBlueprintInterface::PERIOD_HOUR;
+ }
+
+ public function getBillingCostPerPeriod() {
+ if ($this->getDetail('spot-enabled')) {
+ // The user may be charged less than this price, but this is the
+ // maximum that they will ever be charged for the resource.
+ return $this->getDetail('spot-price');
+ } else {
+ return id(new AmazonEC2CostTable())
+ ->getCost(
+ $this->getDetail('platform'),
+ $this->getDetail('region'),
+ $this->getDetail('size'));
+ }
+ }
+
+ public function getBillingMinimumPeriod() {
+ // Minimum billing period is 1 hour.
+ return 1;
+ }
+
+
+}
diff --git a/src/applications/drydock/blueprint/DrydockLinodeHostTestBlueprintImplementation.php b/src/applications/drydock/blueprint/DrydockLinodeHostTestBlueprintImplementation.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/blueprint/DrydockLinodeHostTestBlueprintImplementation.php
@@ -0,0 +1,126 @@
+<?php
+
+final class DrydockLinodeHostTestBlueprintImplementation
+ extends DrydockBlueprintImplementation
+ implements DrydockCostAwareBlueprintInterface {
+
+ public function isEnabled() {
+ return true;
+ }
+
+ public function isTest() {
+ return true;
+ }
+
+ public function getBlueprintName() {
+ return pht('Linode Remote Hosts (Test)');
+ }
+
+ public function getDescription() {
+ return pht(
+ 'A test allocator which emulates the pricing model of Linode.');
+ }
+
+ public function canAllocateResourceForLease(DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === 'linux';
+ }
+
+ protected function shouldAllocateLease(
+ DrydockAllocationContext $context,
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ return true;
+ }
+
+ protected function shouldCloseUnleasedResource(
+ DrydockAllocationContext $context,
+ DrydockResource $resource) {
+
+ return false;
+ }
+
+ protected function canAllocateLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === $resource->getAttribute('platform');
+ }
+
+ protected function executeAllocateResource(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ $resource->setName('Test Resource');
+ $resource->setStatus(DrydockResourceStatus::STATUS_OPEN);
+ $resource->save();
+ return $resource;
+ }
+
+ protected function executeCloseResource(DrydockResource $resource) {
+
+ }
+
+ protected function executeAcquireLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ protected function executeReleaseLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ public function getType() {
+ return 'test-host';
+ }
+
+ public function getInterface(
+ DrydockResource $resource,
+ DrydockLease $lease,
+ $type) {
+
+ throw new Exception("No interface of type '{$type}'.");
+ }
+
+ public function getFieldSpecifications() {
+ $table = new LinodeCostTable();
+
+ return array(
+ 'linode' => array(
+ 'name' => pht('Linode Configuration'),
+ 'type' => 'header'
+ ),
+ 'plan-id' => array(
+ 'name' => pht('Size'),
+ 'type' => 'select',
+ 'required' => true,
+ 'options' => $table->getPlanMap(),
+ ),
+ ) + parent::getFieldSpecifications();
+ }
+
+
+/* -( DrydockCostAwareBlueprintInterface )--------------------------------- */
+
+
+ public function getBillingPeriod() {
+ return DrydockCostAwareBlueprintInterface::PERIOD_HOUR;
+ }
+
+ public function getBillingCostPerPeriod() {
+ return id(new LinodeCostTable())
+ ->getCost(
+ $this->getDetail('plan-id'));
+ }
+
+ public function getBillingMinimumPeriod() {
+ // Minimum billing period is 1 hour.
+ return 1;
+ }
+
+
+}
diff --git a/src/applications/drydock/blueprint/DrydockMicrosoftAzureHostTestBlueprintImplementation.php b/src/applications/drydock/blueprint/DrydockMicrosoftAzureHostTestBlueprintImplementation.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/blueprint/DrydockMicrosoftAzureHostTestBlueprintImplementation.php
@@ -0,0 +1,146 @@
+<?php
+
+final class DrydockMicrosoftAzureHostTestBlueprintImplementation
+ extends DrydockBlueprintImplementation
+ implements DrydockCostAwareBlueprintInterface {
+
+ public function isEnabled() {
+ return true;
+ }
+
+ public function isTest() {
+ return true;
+ }
+
+ public function getBlueprintName() {
+ return pht('Microsoft Azure Remote Hosts (Test)');
+ }
+
+ public function getDescription() {
+ return pht(
+ 'A test allocator which emulates the pricing model of Microsoft Azure.');
+ }
+
+ public function canAllocateResourceForLease(DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === $this->getDetail('platform');
+ }
+
+ protected function shouldAllocateLease(
+ DrydockAllocationContext $context,
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ return true;
+ }
+
+ protected function shouldCloseUnleasedResource(
+ DrydockAllocationContext $context,
+ DrydockResource $resource) {
+
+ return false;
+ }
+
+ protected function canAllocateLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+ return
+ $lease->getAttribute('platform') === $resource->getAttribute('platform');
+ }
+
+ protected function executeAllocateResource(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ $resource->setName('Test Resource');
+ $resource->setStatus(DrydockResourceStatus::STATUS_OPEN);
+ $resource->save();
+ return $resource;
+ }
+
+ protected function executeCloseResource(DrydockResource $resource) {
+
+ }
+
+ protected function executeAcquireLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ protected function executeReleaseLease(
+ DrydockResource $resource,
+ DrydockLease $lease) {
+
+ }
+
+ public function getType() {
+ return 'test-host';
+ }
+
+ public function getInterface(
+ DrydockResource $resource,
+ DrydockLease $lease,
+ $type) {
+
+ throw new Exception("No interface of type '{$type}'.");
+ }
+
+ public function getFieldSpecifications() {
+ return array(
+ 'amazon' => array(
+ 'name' => pht('Azure Configuration'),
+ 'type' => 'header'
+ ),
+ 'region' => array(
+ 'name' => pht('Region'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s', 'us-central')
+ ),
+ 'size' => array(
+ 'name' => pht('Instance Size'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s', 'A0')
+ ),
+ 'platform' => array(
+ 'name' => pht('Platform Name'),
+ 'type' => 'text',
+ 'required' => true,
+ 'caption' => pht('e.g. %s or %s', 'windows', 'linux')
+ ),
+ ) + parent::getFieldSpecifications();
+ }
+
+
+/* -( DrydockCostAwareBlueprintInterface )--------------------------------- */
+
+
+ public function getBillingPeriod() {
+ return DrydockCostAwareBlueprintInterface::PERIOD_MINUTE;
+ }
+
+ public function getBillingCostPerPeriod() {
+ if ($this->getDetail('spot-enabled')) {
+ // The user may be charged less than this price, but this is the
+ // maximum that they will ever be charged for the resource.
+ return $this->getDetail('spot-price');
+ } else {
+ return id(new MicrosoftAzureCostTable())
+ ->getCost(
+ $this->getDetail('platform'),
+ $this->getDetail('region'),
+ $this->getDetail('size'));
+ }
+ }
+
+ public function getBillingMinimumPeriod() {
+ // Microsoft Azure doesn't appear to have a minimum number of minutes
+ // as far as I can tell, but they round up, so you have to use at least
+ // 1 minute.
+ return 1;
+ }
+
+
+}
diff --git a/src/applications/drydock/config/PhabricatorDrydockConfigOptions.php b/src/applications/drydock/config/PhabricatorDrydockConfigOptions.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/config/PhabricatorDrydockConfigOptions.php
@@ -0,0 +1,81 @@
+<?php
+
+final class PhabricatorDrydockConfigOptions
+ extends PhabricatorApplicationConfigOptions {
+
+ public function getName() {
+ return pht('Drydock');
+ }
+
+ public function getDescription() {
+ return pht('Configure Drydock resource allocator.');
+ }
+
+ public function getOptions() {
+ $cost_estimation_summary = $this->deformat(pht(<<<EOTEXT
+Allows Drydock to select the best blueprint when allocating new resources, based
+on a provided estimation of the lifetime of the resource.
+
+(IMPORTANT) **DISCLAIMER**: This system uses **estimations only** and attempts
+to predict the future. It can not guarantee the best option is chosen.
+
+When requesting a lease, provide an `estimation` attribute to the lease. With
+this option enabled, Drydock will attempt to calculate how much a given resource
+will cost based on the provided estimated lifetime, and will choose the cheapest
+option based on the blueprints available.
+
+For this calculation to be somewhat accurate, the estimation value provided
+has to be the estimated lifetime of the resource, not the lifetime of the lease.
+There are an endless array of real world situations which will cause this
+calculation to be incorrect, including, but not limited to:
+
+ * Resources which are not closed due to minimum resource requirements.
+ * Resources which have more than one lease against them, or are not limited
+ to one lease by their blueprint configuration.
+ * Additional charges based on external factors (such as network
+ traffic charges for cloud based virtual machines).
+ * Changes to pricing by the provider which have not yet been reflected
+ in Drydock's costing tables.
+ * Discounts for resource reservations.
+ * Resource allocation and startup time.
+
+To determine what blueprint Drydock will choose based on an estimated number
+of minutes, you can use the following command:
+
+```
+bin/drydock --type host --estimation 10
+```
+
+This will return the cost calculations for all suitable blueprints, and
+indicate the cheapest option for a resource that is open for 10 minutes.
+
+EOTEXT
+));
+ return array(
+ $this->newOption('drydock.cost-estimation', 'bool', false)
+ ->setBoolOptions(
+ array(
+ pht('Choose the best blueprint based on resource cost'),
+ pht('Randomly select blueprints when allocating resources'),
+ ))
+ ->setSummary(pht(
+ 'Use cost tables to determine the best blueprint '.
+ 'when allocating resources?'))
+ ->setDescription($cost_estimation_summary),
+ $this->newOption('drydock.test-blueprints', 'bool', false)
+ ->setBoolOptions(
+ array(
+ pht('Enable test blueprints'),
+ pht('Disable test blueprints'),
+ ))
+ ->setSummary(pht('Allow creation of test blueprints?'))
+ ->setDescription(
+ pht(
+ 'Test blueprints are used to ensure correct behaviour of the '.
+ 'Drydock allocator. This should only be enabled during '.
+ 'development.'))
+ ->setLocked(true),
+ );
+ }
+
+}
diff --git a/src/applications/drydock/controller/DrydockBlueprintCreateController.php b/src/applications/drydock/controller/DrydockBlueprintCreateController.php
--- a/src/applications/drydock/controller/DrydockBlueprintCreateController.php
+++ b/src/applications/drydock/controller/DrydockBlueprintCreateController.php
@@ -35,9 +35,11 @@
->setError($e_blueprint);
foreach ($implementations as $implementation_name => $implementation) {
- if ($implementation->isTest()) {
- // Never show testing blueprints in the interface.
- continue;
+ if (!PhabricatorEnv::getEnvConfig('drydock.test-blueprints')) {
+ if ($implementation->isTest()) {
+ // Never show testing blueprints in the interface.
+ continue;
+ }
}
$disabled = !$implementation->isEnabled();
diff --git a/src/applications/drydock/cost/AmazonEC2CostTable.php b/src/applications/drydock/cost/AmazonEC2CostTable.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/cost/AmazonEC2CostTable.php
@@ -0,0 +1,55 @@
+<?php
+
+final class AmazonEC2CostTable {
+
+ private $linuxCurrent;
+ private $linuxPrevious;
+ private $windowsCurrent;
+ private $windowsPrevious;
+
+ public function __construct() {
+ $this->linuxCurrent = $this->loadTable('linux-od-current');
+ $this->linuxPrevious = $this->loadTable('linux-od-previous');
+ $this->windowsCurrent = $this->loadTable('mswin-od-current');
+ $this->windowsPrevious = $this->loadTable('mswin-od-previous');
+ }
+
+ private function loadTable($name) {
+ $file =
+ dirname(phutil_get_library_root('phabricator')).
+ '/resources/cost/amazon/'.$name.'.json';
+ $contents = Filesystem::readFile($file);
+ return phutil_json_decode($contents);
+ }
+
+ public function getCost($platform, $region_name, $instance_size_name) {
+ if ($platform === 'windows') {
+ $tables = array(
+ $this->windowsCurrent,
+ $this->windowsPrevious);
+ } else {
+ $tables = array(
+ $this->linuxCurrent,
+ $this->linuxPrevious);
+ }
+
+ foreach ($tables as $table) {
+ foreach ($table['config']['regions'] as $region) {
+ if ($region['region'] !== $region_name) {
+ continue;
+ }
+
+ foreach ($region['instanceTypes'] as $instance_type) {
+ foreach ($instance_type['sizes'] as $instance_size) {
+ if ($instance_size['size'] === $instance_size_name) {
+ return (float)$instance_size['valueColumns'][0]['prices']['USD'];
+ }
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+}
diff --git a/src/applications/drydock/cost/DrydockCostAwareBlueprintInterface.php b/src/applications/drydock/cost/DrydockCostAwareBlueprintInterface.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/cost/DrydockCostAwareBlueprintInterface.php
@@ -0,0 +1,30 @@
+<?php
+
+interface DrydockCostAwareBlueprintInterface {
+
+ const PERIOD_MINUTE = 'minute';
+
+ const PERIOD_HOUR = 'hour';
+
+ /**
+ * Returns the period on which a resource is billed. Can return
+ * PERIOD_MINUTE or PERIOD_HOUR.
+ */
+ public function getBillingPeriod();
+
+ /**
+ * Returns the cost per period for a new resource. The returned value is
+ * in USD$, so for a server that costs $0.015 per hour to run, you would
+ * return 0.015.
+ */
+ public function getBillingCostPerPeriod();
+
+ /**
+ * Returns the minimum period for which billing will count. Some services
+ * have a minimum billing period (e.g. 10 minutes) in which usage of a
+ * server for 5 minutes will incur the cost of usage as if it was
+ * running for 10 minutes.
+ */
+ public function getBillingMinimumPeriod();
+
+}
diff --git a/src/applications/drydock/cost/DrydockResourceCostCalculator.php b/src/applications/drydock/cost/DrydockResourceCostCalculator.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/cost/DrydockResourceCostCalculator.php
@@ -0,0 +1,86 @@
+<?php
+
+final class DrydockResourceCostCalculator {
+
+ private $blueprints = array();
+
+ public function addBlueprint(DrydockCostAwareBlueprintInterface $blueprint) {
+ $this->blueprints[] = $blueprint;
+ return $this;
+ }
+
+ public function getCosts($estimated_minutes) {
+ $blueprint_costs = array();
+
+ foreach ($this->blueprints as $key => $blueprint) {
+ $cost = $this->calculateCost(
+ $blueprint,
+ $estimated_minutes);
+
+ if ($cost === null) {
+ continue;
+ }
+
+ $blueprint_costs[$key] = array(
+ 'blueprint' => $blueprint,
+ 'cost' => $cost,
+ );
+ }
+
+ return $blueprint_costs;
+ }
+
+ public function getCheapest($estimated_minutes) {
+ $blueprint_costs = $this->getCosts($estimated_minutes);
+
+ $cheapest_blueprint = null;
+ $cheapest_cost = null;
+
+ foreach ($blueprint_costs as $key => $map) {
+ $cost = $map['cost'];
+ if ($cheapest_cost === null || $cost < $cheapest_cost) {
+ $cheapest_blueprint = $map['blueprint'];
+ $cheapest_cost = $cost;
+ }
+ }
+
+ return $cheapest_blueprint;
+ }
+
+ private function calculateCost(
+ DrydockCostAwareBlueprintInterface $blueprint,
+ $estimated_minutes) {
+
+ $period = $blueprint->getBillingPeriod();
+ $cost_per_period = $blueprint->getBillingCostPerPeriod();
+ $cost_minimum = $blueprint->getBillingMinimumPeriod();
+
+ if ($cost_per_period === null) {
+ return null;
+ }
+
+ switch ($period) {
+ case DrydockCostAwareBlueprintInterface::PERIOD_MINUTE:
+ $priced_minutes = $estimated_minutes;
+ if ($priced_minutes < $cost_minimum) {
+ $priced_minutes = $cost_minimum;
+ }
+ $final_cost = $priced_minutes * $cost_per_period;
+
+ break;
+ case DrydockCostAwareBlueprintInterface::PERIOD_HOUR:
+ $priced_hours = ceil($estimated_minutes / 60.0);
+ if ($priced_hours < $cost_minimum) {
+ $priced_hours = $cost_minimum;
+ }
+ $final_cost = $priced_hours * $cost_per_period;
+
+ break;
+ default:
+ throw new Exception('Unknown costing period');
+ }
+
+ return $final_cost;
+ }
+
+}
diff --git a/src/applications/drydock/cost/LinodeCostTable.php b/src/applications/drydock/cost/LinodeCostTable.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/cost/LinodeCostTable.php
@@ -0,0 +1,33 @@
+<?php
+
+final class LinodeCostTable {
+
+ private $plans;
+
+ public function __construct() {
+ $this->plans = $this->loadTable('plans');
+ }
+
+ private function loadTable($name) {
+ $file =
+ dirname(phutil_get_library_root('phabricator')).
+ '/resources/cost/linode/'.$name.'.json';
+ $contents = Filesystem::readFile($file);
+ return phutil_json_decode($contents);
+ }
+
+ public function getCost($plan_id) {
+ foreach ($this->plans as $plan) {
+ if ($plan['PLANID'] === (int)$plan_id) {
+ return $plan['HOURLY'];
+ }
+ }
+
+ return null;
+ }
+
+ public function getPlanMap() {
+ return ipull($this->plans, 'LABEL', 'PLANID');
+ }
+
+}
diff --git a/src/applications/drydock/cost/MicrosoftAzureCostTable.php b/src/applications/drydock/cost/MicrosoftAzureCostTable.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/cost/MicrosoftAzureCostTable.php
@@ -0,0 +1,52 @@
+<?php
+
+final class MicrosoftAzureCostTable {
+
+ private $globalPriceTable;
+ private $regionalPriceTable;
+
+ public function __construct() {
+ $this->globalPriceTable = $this->loadTable('global-price-dict');
+ $this->regionalPriceTable = $this->loadTable('regional-price-dict');
+ }
+
+ private function loadTable($name) {
+ $file =
+ dirname(phutil_get_library_root('phabricator')).
+ '/resources/cost/azure/'.$name.'.json';
+ $contents = Filesystem::readFile($file);
+ return phutil_json_decode($contents);
+ }
+
+ public function getCost($platform, $region_name, $instance_size_name) {
+
+ $glob_lookup =
+ $this->globalPriceTable
+ ['services']
+ ['virtualMachines']
+ [$platform]
+ [strtolower($instance_size_name)]
+ ['price'];
+ $region_lookup =
+ $this->regionalPriceTable
+ [$region_name]
+ ['services']
+ ['virtualMachines']
+ [$platform];
+
+ foreach ($region_lookup as $type) {
+ foreach ($type as $size_name => $size_obj) {
+ if ($size_name === strtolower($instance_size_name)) {
+ return $size_obj['price'] / 60.0;
+ }
+ }
+ }
+
+ if ($glob_lookup !== null) {
+ return $glob_lookup / 60.0;
+ }
+
+ return null;
+ }
+
+}
diff --git a/src/applications/drydock/management/DrydockManagementCostWorkflow.php b/src/applications/drydock/management/DrydockManagementCostWorkflow.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/management/DrydockManagementCostWorkflow.php
@@ -0,0 +1,78 @@
+<?php
+
+final class DrydockManagementCostWorkflow
+ extends DrydockManagementWorkflow {
+
+ public function didConstruct() {
+ $this
+ ->setName('cost')
+ ->setSynopsis(
+ 'Determine the cheapest blueprint to '.
+ 'allocate a specific resource type.')
+ ->setArguments(
+ array(
+ array(
+ 'name' => 'type',
+ 'param' => 'resource_type',
+ 'help' => 'Resource type.',
+ ),
+ array(
+ 'name' => 'estimation',
+ 'param' => 'minutes',
+ 'help' =>
+ 'Estimated minutes that the resource will exist for.',
+ ),
+ ));
+ }
+
+ public function execute(PhutilArgumentParser $args) {
+ $console = PhutilConsole::getConsole();
+
+ $resource_type = $args->getArg('type');
+ $estimated_minutes = (int)$args->getArg('estimation');
+
+ $blueprints = id(new DrydockBlueprintQuery())
+ ->setViewer(PhabricatorUser::getOmnipotentUser())
+ ->execute();
+
+ $calculator = new DrydockResourceCostCalculator();
+
+ foreach ($blueprints as $blueprint) {
+ $implementation = $blueprint->getImplementation();
+
+ if ($implementation->getType() === $resource_type) {
+ if ($implementation instanceof DrydockCostAwareBlueprintInterface) {
+ $calculator->addBlueprint($implementation);
+ }
+ }
+ }
+
+ $console->writeOut(
+ "Determining cheapest '%s' resource for %d minutes of usage.\n",
+ $resource_type,
+ $estimated_minutes);
+
+ $costs = $calculator->getCosts($estimated_minutes);
+
+ foreach ($costs as $entry) {
+ $console->writeOut(
+ " - '%s' blueprint would cost $%04.4f\n",
+ get_class($entry['blueprint']),
+ $entry['cost']);
+ }
+
+ $cheapest = $calculator->getCheapest($estimated_minutes);
+
+ if ($cheapest === null) {
+ $console->writeOut(
+ "There is no blueprint that can provide this resource.\n");
+ } else {
+ $console->writeOut(
+ "The blueprint that would provide the cheapest resource is '%s'.\n",
+ get_class($cheapest));
+ }
+
+ return 0;
+ }
+
+}
diff --git a/src/applications/drydock/worker/DrydockAllocatorWorker.php b/src/applications/drydock/worker/DrydockAllocatorWorker.php
--- a/src/applications/drydock/worker/DrydockAllocatorWorker.php
+++ b/src/applications/drydock/worker/DrydockAllocatorWorker.php
@@ -224,10 +224,36 @@
return;
}
- // TODO: Rank intelligently.
- shuffle($blueprints);
+ // If the user has provided an estimation amount, use the Drydock
+ // resource cost calculator to determine the cheapest option.
+ if (PhabricatorEnv::getEnvConfig('drydock.cost-estimation') &&
+ $lease->getAttribute('estimation') !== null) {
+
+ $calculator = new DrydockResourceCostCalculator();
+
+ foreach ($blueprints as $implementation) {
+ $implements =
+ $implementation instanceof DrydockCostAwareBlueprintInterface;
+ if ($implements) {
+ $calculator->addBlueprint($implementation);
+ }
+ }
+
+ $blueprint = $calculator->getCheapest(
+ (int)$lease->getAttribute('estimation'));
- $blueprint = head($blueprints);
+ if ($blueprint === null) {
+ // Unable to find the best blueprint based on cost, fallback to
+ // random shuffle.
+ shuffle($blueprints);
+ $blueprint = head($blueprints);
+ }
+
+ } else {
+ // Otherwise randomize blueprints.
+ shuffle($blueprints);
+ $blueprint = head($blueprints);
+ }
// Create and save the resource preemptively with STATUS_ALLOCATING
// before we unlock, so that other workers will correctly count the

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 19, 6:01 AM (3 d, 10 h ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/pe/cg/xjprfaigq2ehie6o
Default Alt Text
D10398.diff (512 KB)

Event Timeline