amazon-pricing 0.1.104 → 0.1.105
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|