amazon-pricing 0.1.104 → 0.1.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/amazon-pricing/aws-price-list.rb +16 -5
- data/lib/amazon-pricing/definitions/ec2-instance-type.rb +20 -1
- data/lib/amazon-pricing/definitions/instance-type.rb +24 -0
- data/lib/amazon-pricing/ec2-dhi-price-list.rb +3 -0
- data/lib/amazon-pricing/helpers/instance-type.rb +7 -3
- data/lib/amazon-pricing/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWM3OTU3ZmM0NGY0ZjNlODk0NjZjMzZmMzI3ODhiNDdhZjk5ZGY3NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MWE4YmNlOGMyNzcxYTc3YTBkNzBmYjQ5MDJlMzE2OTljOWNkYzRiMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTFkMGE1MjY1MzJkZTFjMzY5NTQ4ZWNjNDQ0MzFlOTdhMjE2ZjM2ODVjZDJm
|
10
|
+
OTQ4OTY0YWNjNzQ0YTEyMjkwZTBlMGQwM2U1MDMyNjAwOTZlYjJkNjY5YWQ1
|
11
|
+
YjE3MjIwMjViNzhkNThhMzdhMTUyNGQ4ZTkwMDUxOTA0NmNmYTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjNjNDg1NzcxMThhNzRhYjJiNjJmZDA4MmZmMTkwNDFlYzIwOWVlM2E2MGVh
|
14
|
+
MjQwNTUzY2MwZDViZDE5YWRmMDdjODEzYjdhZGNlNjQxYzIzNmY1OWJkZWMx
|
15
|
+
NzEyOGQ3NDU1ZWQwYWEzYTg1Y2NjNTgxZmE4NTk5NjBmMDVhNmM=
|
@@ -15,6 +15,7 @@ module AwsPricing
|
|
15
15
|
# json APIs.
|
16
16
|
class PriceList
|
17
17
|
attr_accessor :regions
|
18
|
+
RETRY_LIMIT = 3
|
18
19
|
|
19
20
|
def initialize()
|
20
21
|
@_regions = {}
|
@@ -56,8 +57,18 @@ module AwsPricing
|
|
56
57
|
end
|
57
58
|
|
58
59
|
def self.fetch_url(url)
|
59
|
-
|
60
|
-
|
60
|
+
# AWS appears to have started throttling URL accesses, so we now have to retry
|
61
|
+
begin
|
62
|
+
retry_count ||= 0
|
63
|
+
#$stdout.puts "[#{__method__}] url:#{url}"
|
64
|
+
uri = URI.parse(url)
|
65
|
+
page = Net::HTTP.get_response(uri)
|
66
|
+
rescue StandardError => e #Exception => e
|
67
|
+
$stderr.puts "Exception:#{e} retry-#{retry_count} Failed to fetch: #{url}"
|
68
|
+
sleep 5 # appears to get past (AWS) throttling
|
69
|
+
retry if (retry_count += 1) <= RETRY_LIMIT
|
70
|
+
end
|
71
|
+
|
61
72
|
# Now that AWS switched from json to jsonp, remove first/last lines
|
62
73
|
body = page.body.gsub("callback(", "").reverse.sub(")", "").reverse
|
63
74
|
if body.split("\n").last == ";"
|
@@ -75,9 +86,9 @@ module AwsPricing
|
|
75
86
|
# http://stackoverflow.com/questions/2060356/parsing-json-without-quoted-keys
|
76
87
|
JSON.parse(body.gsub(/(\w+)\s*:/, '"\1":'))
|
77
88
|
end
|
78
|
-
rescue
|
79
|
-
$stderr.puts "Failed to parse: #{url}"
|
80
|
-
raise
|
89
|
+
rescue Exception => e
|
90
|
+
$stderr.puts "Exception:#{e} Failed to parse: #{url} #{e.backtrace}"
|
91
|
+
raise e
|
81
92
|
end
|
82
93
|
|
83
94
|
protected
|
@@ -255,16 +255,25 @@ module AwsPricing
|
|
255
255
|
'db.m4.4xlarge' => :high,
|
256
256
|
'db.m4.large' => :moderate,
|
257
257
|
'db.m4.xlarge' => :high,
|
258
|
+
'db.m4.16xlarge' => :twentyfive_gigabit,
|
258
259
|
'db.r3.2xlarge' => :high,
|
259
260
|
'db.r3.4xlarge' => :high,
|
260
261
|
'db.r3.8xlarge' => :ten_gigabit,
|
261
262
|
'db.r3.large' => :moderate,
|
262
263
|
'db.r3.xlarge' => :moderate,
|
264
|
+
'db.r4.large' => :ten_gigabit,
|
265
|
+
'db.r4.xlarge' => :ten_gigabit,
|
266
|
+
'db.r4.2xlarge' => :ten_gigabit,
|
267
|
+
'db.r4.4xlarge' => :ten_gigabit,
|
268
|
+
'db.r4.8xlarge' => :ten_gigabit,
|
269
|
+
'db.r4.16xlarge' => :twentyfive_gigabit,
|
263
270
|
'db.t1.micro' => :very_low,
|
264
271
|
'db.t2.large' => :low_to_moderate,
|
265
272
|
'db.t2.medium' => :low_to_moderate,
|
266
273
|
'db.t2.micro' => :low,
|
267
274
|
'db.t2.small' => :low_to_moderate,
|
275
|
+
'db.t2.xlarge' => :moderate,
|
276
|
+
'db.t2.2xlarge' => :moderate,
|
268
277
|
'db.x1.16xlarge' => :ten_gigabit,
|
269
278
|
'db.x1.32xlarge' => :ten_gigabit,
|
270
279
|
'f1.2xlarge' => :high,
|
@@ -274,6 +283,10 @@ module AwsPricing
|
|
274
283
|
'g3.4xlarge' => :twenty_gigabit,
|
275
284
|
'g3.8xlarge' => :twenty_gigabit,
|
276
285
|
'g3.16xlarge' => :twenty_gigabit,
|
286
|
+
'h1.2xlarge' => :ten_gigabit, # upto 10G
|
287
|
+
'h1.4xlarge' => :ten_gigabit, # upto 10G
|
288
|
+
'h1.8xlarge' => :ten_gigabit,
|
289
|
+
'h1.16xlarge' => :twentyfive_gigabit,
|
277
290
|
'hi1.4xlarge' => :ten_gigabit,
|
278
291
|
'hs1.8xlarge' => :ten_gigabit,
|
279
292
|
'i2.2xlarge' => :high,
|
@@ -297,12 +310,18 @@ module AwsPricing
|
|
297
310
|
'm3.large' => :moderate,
|
298
311
|
'm3.medium' => :moderate,
|
299
312
|
'm3.xlarge' => :high,
|
300
|
-
'm4.16xlarge' => :
|
313
|
+
'm4.16xlarge' => :twentyfive_gigabit,
|
301
314
|
'm4.10xlarge' => :ten_gigabit,
|
302
315
|
'm4.2xlarge' => :high,
|
303
316
|
'm4.4xlarge' => :high,
|
304
317
|
'm4.large' => :moderate,
|
305
318
|
'm4.xlarge' => :high,
|
319
|
+
'm5.large' => :ten_gigabit, # upto 10G
|
320
|
+
'm5.xlarge' => :ten_gigabit, # upto 10G
|
321
|
+
'm5.2xlarge' => :ten_gigabit, # upto 10G
|
322
|
+
'm5.4xlarge' => :ten_gigabit, # upto 10G
|
323
|
+
'm5.12xlarge' => :ten_gigabit,
|
324
|
+
'm5.24xlarge' => :ten_gigabit,
|
306
325
|
'p2.xlarge' => :high,
|
307
326
|
'p2.8xlarge' => :ten_gigabit,
|
308
327
|
'p2.16xlarge' => :twenty_gigabit,
|
@@ -130,6 +130,10 @@ module AwsPricing
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
+
def self.get_descriptive_name(api_name)
|
134
|
+
@@Name_Lookup[api_name]
|
135
|
+
end
|
136
|
+
|
133
137
|
protected
|
134
138
|
|
135
139
|
def self.get_disk(api_name)
|
@@ -183,6 +187,9 @@ module AwsPricing
|
|
183
187
|
'm4.large' => 'M4 Large Instance', 'm4.xlarge' => 'M4 Extra Large Instance', 'm4.2xlarge' => 'M4 Double Extra Large Instance',
|
184
188
|
'm4.4xlarge' => 'M4 Quadruple Extra Large Instance', 'm4.10xlarge' => 'M4 Decuple Extra Large Instance',
|
185
189
|
'm4.16xlarge' => 'M4 Hextuple Extra Large Instance',
|
190
|
+
'm5.large' => 'M5 Large Instance', 'm5.xlarge' => 'M5 Extra Large Instance', 'm5.2xlarge' => 'M5 Double Extra Large Instance',
|
191
|
+
'm5.4xlarge' => 'M5 Quadruple Extra Large Instance', 'm5.12xlarge' => 'M5 12XL Instance',
|
192
|
+
'm5.24xlarge' => 'M5 24XL Instance',
|
186
193
|
'c1.medium' => 'High-CPU Medium', 'c1.xlarge' => 'High-CPU Extra Large',
|
187
194
|
'hi1.4xlarge' => 'High I/O Quadruple Extra Large',
|
188
195
|
'cg1.4xlarge' => 'Cluster GPU Quadruple Extra Large',
|
@@ -201,6 +208,7 @@ module AwsPricing
|
|
201
208
|
'i3.4xlarge' => 'Storage Optimized High I/O Quadruple Extra Large', 'i3.8xlarge' => 'Storage Optimized High I/O Extra Large',
|
202
209
|
'i3.16xlarge' => 'Storage Optimized High I/O Hextuple Extra Large',
|
203
210
|
'd2.xlarge' => 'Dense Storage Extra Large', 'd2.2xlarge' => 'Dense Storage Double Extra Large', 'd2.4xlarge' => 'Dense Storage Quadruple Extra Large', 'd2.8xlarge' => 'Dense Storage Eight Extra Large',
|
211
|
+
'h1.2xlarge' => 'Dense Storage H1 Double Extra Large', 'h1.4xlarge' => 'Dense Storage H1 Quadruple Extra Large', 'h1.8xlarge' => 'Dense Storage H1 Eight Extra Large', 'h1.16xlarge' => 'Dense Storage H1 Hextuple Extra Large',
|
204
212
|
'r3.large' => 'Memory Optimized Large', 'r3.xlarge' => 'Memory Optimized Extra Large', 'r3.2xlarge' => 'Memory Optimized Double Extra Large', 'r3.4xlarge' => 'Memory Optimized Quadruple Extra Large', 'r3.8xlarge' => 'Memory Optimized Eight Extra Large',
|
205
213
|
'r4.large' => 'Memory Optimized Large Enterprise', 'r4.xlarge' => 'Memory Optimized Extra Large Enterprise', 'r4.2xlarge' => 'Memory Optimized Double Extra Large Enterprise', 'r4.4xlarge' => 'Memory Optimized Quadruple Extra Large Enterprise',
|
206
214
|
'r4.8xlarge' => 'Memory Optimized Eight Extra Large Enterprise', 'r4.16xlarge' => 'Memory Optimized Hextuple Extra Large Enterprise',
|
@@ -225,6 +233,7 @@ module AwsPricing
|
|
225
233
|
'm2.xlarge' => 420, 'm2.2xlarge' => 850, 'm2.4xlarge' => 1690,
|
226
234
|
'm3.medium' => 4, 'm3.large' => 32, 'm3.xlarge' => 80, 'm3.2xlarge' => 160,
|
227
235
|
'm4.large' => 0, 'm4.xlarge' => 0, 'm4.2xlarge' => 0, 'm4.4xlarge' => 0, 'm4.10xlarge' => 0, 'm4.16xlarge' => 0,
|
236
|
+
'm5.large' => 0, 'm5.xlarge' => 0, 'm5.2xlarge' => 0, 'm5.4xlarge' => 0, 'm5.12xlarge' => 0, 'm5.24xlarge' => 0,
|
228
237
|
'c1.medium' => 350, 'c1.xlarge' => 1690,
|
229
238
|
'hi1.4xlarge' => 2048,
|
230
239
|
'cg1.4xlarge' => 1690,
|
@@ -241,6 +250,7 @@ module AwsPricing
|
|
241
250
|
'i2.xlarge' => 800, 'i2.2xlarge' => 1600, 'i2.4xlarge' => 3200, 'i2.8xlarge' => 6400,
|
242
251
|
'i3.large' => 475, 'i3.xlarge' => 950, 'i3.2xlarge' => 1900, 'i3.4xlarge' => 3800, 'i3.8xlarge' => 7600, 'i3.16xlarge' => 15200,
|
243
252
|
'd2.xlarge' => 6000, 'd2.2xlarge' => 12000, 'd2.4xlarge' => 24000, 'd2.8xlarge' => 48000,
|
253
|
+
'h1.2xlarge' => 2000, 'h1.4xlarge' => 4000, 'h1.8xlarge' => 8000, 'h1.16xlarge' => 16000,
|
244
254
|
'r3.large' => 32, 'r3.xlarge' => 80, 'r3.2xlarge' => 160, 'r3.4xlarge' => 320, 'r3.8xlarge' => 640,
|
245
255
|
'r4.large' => 0, 'r4.xlarge' => 0, 'r4.2xlarge' => 0, 'r4.4xlarge' => 0, 'r4.8xlarge' => 0, 'r4.16xlarge' => 0,
|
246
256
|
't2.nano' => 0, 't2.micro' => 0, 't2.small' => 0, 't2.medium' => 0, 't2.large' => 0, 't2.xlarge' => 0, 't2.2xlarge' => 0,
|
@@ -257,6 +267,7 @@ module AwsPricing
|
|
257
267
|
'm2.xlarge' => 64, 'm2.2xlarge' => 64, 'm2.4xlarge' => 64,
|
258
268
|
'm3.medium' => 64, 'm3.large' => 64, 'm3.xlarge' => 64, 'm3.2xlarge' => 64,
|
259
269
|
'm4.large' => 64, 'm4.xlarge' => 64, 'm4.2xlarge' => 64, 'm4.4xlarge' => 64, 'm4.10xlarge' => 64, 'm4.16xlarge' => 64,
|
270
|
+
'm5.large' => 64, 'm5.xlarge' => 64, 'm5.2xlarge' => 64, 'm5.4xlarge' => 64, 'm5.12xlarge' => 64, 'm4.24xlarge' => 64,
|
260
271
|
'c1.medium' => 32, 'c1.xlarge' => 64,
|
261
272
|
'hi1.4xlarge' => 64,
|
262
273
|
'cg1.4xlarge' => 64,
|
@@ -273,6 +284,7 @@ module AwsPricing
|
|
273
284
|
'i2.large' => 64, 'i2.xlarge' => 64, 'i2.2xlarge' => 64, 'i2.4xlarge' => 64, 'i2.8xlarge' => 64,
|
274
285
|
'i3.large' => 64, 'i3.xlarge' => 64, 'i3.2xlarge' => 64, 'i3.4xlarge' => 64, 'i3.8xlarge' => 64, 'i3.16xlarge' => 64,
|
275
286
|
'd2.xlarge' => 64, 'd2.2xlarge' => 64, 'd2.4xlarge' => 64, 'd2.8xlarge' => 64,
|
287
|
+
'h1.2xlarge' => 64, 'h1.4xlarge' => 64, 'h1.8xlarge' => 64, 'h1.16xlarge' => 64,
|
276
288
|
'r3.large' => 64, 'r3.xlarge' => 64, 'r3.2xlarge' => 64, 'r3.4xlarge' => 64, 'r3.8xlarge' => 64,
|
277
289
|
'r4.large' => 64, 'r4.xlarge' => 64, 'r4.2xlarge' => 64, 'r4.4xlarge' => 64, 'r4.8xlarge' => 64, 'r4.16xlarge' => 64,
|
278
290
|
't2.nano' => 64, 't2.micro' => 64, 't2.small' => 64, 't2.medium' => 64, 't2.large' => 64, 't2.xlarge' => 64, 't2.2xlarge' => 64,
|
@@ -288,6 +300,7 @@ module AwsPricing
|
|
288
300
|
'm2.xlarge' => :ephemeral, 'm2.2xlarge' => :ephemeral, 'm2.4xlarge' => :ephemeral,
|
289
301
|
'm3.medium' => :ssd, 'm3.large' => :ssd, 'm3.xlarge' => :ssd, 'm3.2xlarge' => :ssd,
|
290
302
|
'm4.large' => :ebs, 'm4.xlarge' => :ebs, 'm4.2xlarge' => :ebs, 'm4.4xlarge' => :ebs, 'm4.10xlarge' => :ebs, 'm4.16xlarge' => :ebs,
|
303
|
+
'm5.large' => :ebs, 'm5.xlarge' => :ebs, 'm5.2xlarge' => :ebs, 'm5.4xlarge' => :ebs, 'm5.12xlarge' => :ebs, 'm5.24xlarge' => :ebs,
|
291
304
|
'c1.medium' => :ephemeral, 'c1.xlarge' => :ephemeral,
|
292
305
|
'hi1.4xlarge' => :ssd,
|
293
306
|
'cg1.4xlarge' => :ephemeral,
|
@@ -305,6 +318,7 @@ module AwsPricing
|
|
305
318
|
'i2.large' => :ssd, 'i2.xlarge' => :ssd, 'i2.2xlarge' => :ssd, 'i2.4xlarge' => :ssd, 'i2.8xlarge' => :ssd,
|
306
319
|
'i3.large' => :ssd, 'i3.xlarge' => :ssd, 'i3.2xlarge' => :ssd, 'i3.4xlarge' => :ssd, 'i3.8xlarge' => :ssd, 'i3.16xlarge' => :ssd,
|
307
320
|
'd2.xlarge' => :ephemeral, 'd2.2xlarge' => :ephemeral, 'd2.4xlarge' => :ephemeral, 'd2.8xlarge' => :ephemeral,
|
321
|
+
'h1.2xlarge' => :ephemeral, 'h1.4xlarge' => :ephemeral, 'h1.8xlarge' => :ephemeral, 'h1.16xlarge' => :ephemeral,
|
308
322
|
'r3.large' => :ssd, 'r3.xlarge' => :ssd, 'r3.2xlarge' => :ssd, 'r3.4xlarge' => :ssd, 'r3.8xlarge' => :ssd,
|
309
323
|
'r4.large' => :ebs, 'r4.xlarge' => :ebs, 'r4.2xlarge' => :ebs, 'r4.4xlarge' => :ebs, 'r4.8xlarge' => :ebs, 'r4.16xlarge' => :ebs,
|
310
324
|
't2.nano' => :ebs, 't2.micro' => :ebs, 't2.small' => :ebs, 't2.medium' => :ebs, 't2.large' => :ebs, 't2.xlarge' => :ebs, 't2.2xlarge' => :ebs,
|
@@ -430,6 +444,10 @@ module AwsPricing
|
|
430
444
|
'g3.4xlarge' => [ 437, 20000], # EBSOptimized
|
431
445
|
'g3,8xlarge' => [ 875, 40000], # EBSOptimized
|
432
446
|
'g3.16xlarge'=> [1750, 80000], # EBSOptimized
|
447
|
+
'h1.2xlarge' => [ 218, 12000], # EBSOptimized
|
448
|
+
'h1.4xlarge' => [ 437, 20000], # EBSOptimized
|
449
|
+
'h1.8xlarge' => [ 875, 40000], # EBSOptimized
|
450
|
+
'h1.16xlarge' => [1750, 80000], # EBSOptimized
|
433
451
|
'hi1.4xlarge' => [1824, 50488],
|
434
452
|
'hs1.8xlarge' => [2257, 126081],
|
435
453
|
'i2.xlarge' => [ 62, 4000], # EBSOptimized
|
@@ -454,6 +472,12 @@ module AwsPricing
|
|
454
472
|
'm4.4xlarge' => [ 250, 16000], # EBSOptimized
|
455
473
|
'm4.10xlarge'=> [ 500, 32000], # EBSOptimized
|
456
474
|
'm4.16xlarge'=> [1250, 65000], # EBSOptimized
|
475
|
+
'm5.large' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [ 60, 3600]
|
476
|
+
'm5.xlarge' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [100, 6000]
|
477
|
+
'm5.2xlarge' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [146, 8333]
|
478
|
+
'm5.4xlarge' => [ 265, 16000], # EBSOptimized
|
479
|
+
'm5.12xlarge'=> [ 625, 32500], # EBSOptimized
|
480
|
+
'm5.24xlarge'=> [1250, 65000], # EBSOptimized
|
457
481
|
'p2.xlarge' => [ 94, 6000], # EBSOptimized
|
458
482
|
'p2.8xlarge' => [ 625, 32500], # EBSOptimized
|
459
483
|
'p2.16xlarge'=> [1250, 65000], # EBSOptimized
|
@@ -19,15 +19,18 @@ module AwsPricing
|
|
19
19
|
@@CAPACITY_HASH = {
|
20
20
|
'c3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
21
21
|
'c4' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
22
|
+
'c5' => { "large"=>36, "xlarge"=>18, "2xlarge"=>9, "4xlarge"=>4,"9xlarge"=>2, "18xlarge"=>1 },
|
22
23
|
'p2' => { "xlarge"=>16, "8xlarge"=>2, "16xlarge"=>1 },
|
23
24
|
'p3' => { "2xlarge"=>8, "8xlarge"=>2, "16xlarge"=>1 },
|
24
25
|
'g2' => { "2xlarge"=>4, "8xlarge"=>1 },
|
25
26
|
'g3' => { "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
26
27
|
'm3' => { "medium"=>32, "large"=>16, "xlarge"=>8, "2xlarge"=>4 },
|
27
28
|
'd2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
29
|
+
'h1' => { "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
28
30
|
'r4' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
29
31
|
'r3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
30
32
|
'm4' => { "large"=>22, "xlarge"=>11, "2xlarge"=>5, "4xlarge"=>4, "10xlarge"=>1, "16xlarge"=>1 },
|
33
|
+
'm5' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1 },
|
31
34
|
'i2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1, "16xlarge"=>1 },
|
32
35
|
'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
33
36
|
'x1' => { "16xlarge"=>2, "32xlarge"=>1 },
|
@@ -6,7 +6,8 @@ module AwsPricing
|
|
6
6
|
'GeneralPurpose' => {
|
7
7
|
'CurrentGen' => {
|
8
8
|
'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
|
9
|
-
'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge']
|
9
|
+
'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge'],
|
10
|
+
'M5' => ['m5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.12xlarge', 'm5.24xlarge']
|
10
11
|
},
|
11
12
|
'PreviousGen' => {
|
12
13
|
'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge']
|
@@ -45,7 +46,8 @@ module AwsPricing
|
|
45
46
|
'HS1' => ['hs1.8xlarge'],
|
46
47
|
'I2' => ['i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge'],
|
47
48
|
'I3' => ['i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge'],
|
48
|
-
'D2' => ['d2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge']
|
49
|
+
'D2' => ['d2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge'],
|
50
|
+
'H1' => ['h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge'],
|
49
51
|
},
|
50
52
|
'PreviousGen' => {
|
51
53
|
'HI1' => ['hi1.4xlarge']
|
@@ -169,7 +171,7 @@ module AwsPricing
|
|
169
171
|
end
|
170
172
|
size_keys = sorted_size_to_nf.keys
|
171
173
|
idx = size_keys.index(type)
|
172
|
-
idx = idx -1 if (idx > 0) # don't go smaller, than smallest
|
174
|
+
idx = idx - 1 if (idx > 0) # don't go smaller, than smallest
|
173
175
|
nf = sorted_size_to_nf[new_type = size_keys.at(idx)]
|
174
176
|
|
175
177
|
["#{fam}.#{new_type}" , nf]
|
@@ -195,8 +197,10 @@ module AwsPricing
|
|
195
197
|
"8xlarge" => 64,
|
196
198
|
"9xlarge" => 72,
|
197
199
|
"10xlarge" => 80,
|
200
|
+
"12xlarge" => 96,
|
198
201
|
"16xlarge" => 128,
|
199
202
|
"18xlarge" => 144,
|
203
|
+
"24xlarge" => 192,
|
200
204
|
"32xlarge" => 256,
|
201
205
|
}
|
202
206
|
NF_TO_SIZE_TABLE = SIZE_TO_NF_TABLE.invert
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amazon-pricing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.105
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Kinsella
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby library for retrieving pricing for Amazon Web Services
|
14
14
|
email:
|