Search code examples
amazon-web-servicesamazon-ebs

How to get aws ebs pricing programmatically?


Is it possible to download aws ebs pricing programmatically?

I was able to get the entire AWS service index file downloaded, but I don't see Amazon EBS listed.

I downloaded the AmazonEC2 pricing information. It has PricePerUnit, meaning for the EC2 instance, but nothing that specifically shows PricePerUnit for just the EBS volume...

https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/using-ppslong.html


Solution

  • Sure there is.

    Look for "productFamily" : "Storage", in offer file:

    https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json

    "HY3BZPP2B6K8MSJF" : {
          "sku" : "HY3BZPP2B6K8MSJF",
          "productFamily" : "Storage",
          "attributes" : {
            "servicecode" : "AmazonEC2",
            "location" : "US East (N. Virginia)",
            "locationType" : "AWS Region",
            "storageMedia" : "SSD-backed",
            "volumeType" : "General Purpose",
            "maxVolumeSize" : "16 TiB",
            "maxIopsvolume" : "10000",
            "maxIopsBurstPerformance" : "3000 for volumes <= 1 TiB",
            "maxThroughputvolume" : "160 MB/sec",
            "usagetype" : "EBS:VolumeUsage.gp2",
            "operation" : "",
            "servicename" : "Amazon Elastic Compute Cloud"
          }
        },
    

    From there grab sku code and search for it and you will see something like this:

     "HY3BZPP2B6K8MSJF" : {
            "HY3BZPP2B6K8MSJF.JRTCKXETXF" : {
              "offerTermCode" : "JRTCKXETXF",
              "sku" : "HY3BZPP2B6K8MSJF",
              "effectiveDate" : "2018-06-01T00:00:00Z",
              "priceDimensions" : {
                "HY3BZPP2B6K8MSJF.JRTCKXETXF.6YS6EN2CT7" : {
                  "rateCode" : "HY3BZPP2B6K8MSJF.JRTCKXETXF.6YS6EN2CT7",
                  "description" : "$0.10 per GB-month of General Purpose SSD (gp2) provisioned storage - US East (Northern Virginia)",
                  "beginRange" : "0",
                  "endRange" : "Inf",
                  "unit" : "GB-Mo",
                  "pricePerUnit" : {
                    "USD" : "0.1000000000"
                  },
                  "appliesTo" : [ ]
                }
              },
              "termAttributes" : { }
            }
          },