class AwsPricing::EbsPrice
Attributes
ebs_cold_hdd_per_gb[RW]
ebs_optimized_hdd_per_gb[RW]
preferred_per_gb[RW]
preferred_per_iops[RW]
s3_snaps_per_gb[RW]
ssd_per_gb[RW]
standard_per_gb[RW]
standard_per_million_io[RW]
Public Class Methods
new(region)
click to toggle source
# File lib/amazon-pricing/definitions/ebs-price.rb 18 def initialize(region) 19 #@region = region 20 end
Public Instance Methods
update_from_json(json)
click to toggle source
e.g a0.awsstatic.com/pricing/1/ebs/pricing-ebs.min.js
# File lib/amazon-pricing/definitions/ebs-price.rb 23 def update_from_json(json) 24 json["types"].each do |t| 25 case t["name"] 26 when "Amazon EBS Magnetic volumes" # not supported by aws anymore, replaced by st1 and sc1 27 @standard_per_gb = t["values"].select{|v| v["rate"] == "perGBmoProvStorage" }.first["prices"].values.first.to_f 28 @standard_per_million_io = t["values"].select{|v| v["rate"] == "perMMIOreq" }.first["prices"].values.first.to_f 29 when "Amazon EBS Provisioned IOPS SSD (io1) volumes", "ebsPIOPSSSD" 30 @preferred_per_gb = t["values"].select{|v| v["rate"] == "perGBmoProvStorage" }.first["prices"].values.first.to_f 31 @preferred_per_iops = t["values"].select{|v| v["rate"] == "perPIOPSreq" }.first["prices"].values.first.to_f 32 when "Amazon EBS General Purpose SSD (gp2) volumes", "ebsGPSSD" 33 @ssd_per_gb = t["values"].select{|v| v["rate"] == "perGBmoProvStorage" }.first["prices"].values.first.to_f 34 when "Amazon EBS Cold HDD (sc1) volumes", "ebsColdHDD" 35 @ebs_cold_hdd_per_gb = t["values"].select{|v| v["rate"] == "perGBmoProvStorage" }.first["prices"].values.first.to_f 36 when "Amazon EBS Throughput Optimized HDD (st1) volumes", "ebsTOHDD" 37 @ebs_optimized_hdd_per_gb = t["values"].select{|v| v["rate"] == "perGBmoProvStorage" }.first["prices"].values.first.to_f 38 when "ebsSnapsToS3" 39 @s3_snaps_per_gb = t["values"].select{|v| v["rate"] == "perGBmoDataStored" }.first["prices"].values.first.to_f 40 else 41 puts "[#{__method__}] Unknown EBS type=#{t['name']}, ignoring #{t}." 42 end 43 end 44 end