How to Identify the cost effective rds instance from the list of instances returned by describe-orderable-db-instances api using pricing get-products api

0

I am using golang sdk to get a list of possible rds instances that I can launch in my account from DescribeOrderableDBInstanceOptionsWithContext golang SDK method. I need to find out the most cost effective instance from the response of previous method/api call. For that purpose I am trying to integrate with pricing service get products API(https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html#API_pricing_GetProducts_ResponseSyntax). I am struggling to parse the response of this API(https://docs.aws.amazon.com/sdk-for-go/api/service/pricing/#Pricing.GetProductsWithContext) which looks something like below in golang to get the appropriate price of the instances and then select the cheapest one.

{ FormatVersion: "aws_v1", PriceList: [{ publicationDate: "2022-07-20T21:49:04Z", product: map[attributes:map[currentGeneration:Yes databaseEdition:Express databaseEngine:SQL Server deploymentOption:Single-AZ engineCode:10 instanceFamily:General purpose instanceType:db.t3.large instanceTypeFamily:T3 licenseModel:License included location:US West (Oregon) locationType:AWS Region memory:8 GiB networkPerformance:Low to Moderate normalizationSizeFactor:NA operation:CreateDBInstance:0010 physicalProcessor:Intel Skylake E5 2686 v5 (2.5 GHz) processorArchitecture:64-bit regionCode:us-west-2 servicecode:AmazonRDS servicename:Amazon Relational Database Service storage:EBS Only usagetype:USW2-InstanceUsage:db.t3.large vcpu:2] productFamily:Database Instance sku:4GXHZ5GR8C5DZW8W], serviceCode: "AmazonRDS", terms: map[OnDemand:map[4GXHZ5GR8C5DZW8W.JRTCKXETXF:map[effectiveDate:2022-07-01T00:00:00Z offerTermCode:JRTCKXETXF priceDimensions:map[4GXHZ5GR8C5DZW8W.JRTCKXETXF.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:USD 0.162 per db.t3.large Single-AZ instance hour (or partial hour) running SQL Server Exp (LI) endRange:Inf pricePerUnit:map[USD:0.1620000000] rateCode:4GXHZ5GR8C5DZW8W.JRTCKXETXF.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[]]] Reserved:map[4GXHZ5GR8C5DZW8W.38NPMPTW36:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:38NPMPTW36 priceDimensions:map[4GXHZ5GR8C5DZW8W.38NPMPTW36.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:850] rateCode:4GXHZ5GR8C5DZW8W.38NPMPTW36.2TG2D8R56U unit:Quantity] 4GXHZ5GR8C5DZW8W.38NPMPTW36.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Express (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0324000000] rateCode:4GXHZ5GR8C5DZW8W.38NPMPTW36.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[LeaseContractLength:3yr OfferingClass:standard PurchaseOption:Partial Upfront]] 4GXHZ5GR8C5DZW8W.4NA7Y494T4:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:4NA7Y494T4 priceDimensions:map[4GXHZ5GR8C5DZW8W.4NA7Y494T4.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Express (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.1019000000] rateCode:4GXHZ5GR8C5DZW8W.4NA7Y494T4.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:No Upfront]] 4GXHZ5GR8C5DZW8W.6QCMYABX3D:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:6QCMYABX3D priceDimensions:map[4GXHZ5GR8C5DZW8W.6QCMYABX3D.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:833] rateCode:4GXHZ5GR8C5DZW8W.6QCMYABX3D.2TG2D8R56U unit:Quantity] 4GXHZ5GR8C5DZW8W.6QCMYABX3D.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Express (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0000000000] rateCode:4GXHZ5GR8C5DZW8W.6QCMYABX3D.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:All Upfront]] 4GXHZ5GR8C5DZW8W.HU7G6KETJZ:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:HU7G6KETJZ priceDimensions:map[4GXHZ5GR8C5DZW8W.HU7G6KETJZ.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:425] rateCode:4GXHZ5GR8C5DZW8W.HU7G6KETJZ.2TG2D8R56U unit:Quantity] 4GXHZ5GR8C5DZW8W.HU7G6KETJZ.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Express (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0485000000] rateCode:4GXHZ5GR8C5DZW8W.HU7G6KETJZ.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:Partial Upfront]] 4GXHZ5GR8C5DZW8W.NQ3QZPMQV9:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:NQ3QZPMQV9 priceDimensions:map[4GXHZ5GR8C5DZW8W.NQ3QZPMQV9.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:1666] rateCode:4GXHZ5GR8C5DZW8W.NQ3QZPMQV9.2TG2D8R56U unit:Quantity] 4GXHZ5GR8C5DZW8W.NQ3QZPMQV9.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Express (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0000000000] rateCode:4GXHZ5GR8C5DZW8W.NQ3QZPMQV9.6YS6EN2CT7 unit:Hrs]] sku:4GXHZ5GR8C5DZW8W termAttributes:map[LeaseContractLength:3yr OfferingClass:standard PurchaseOption:All Upfront]]]], version: "20220720214904" },{ publicationDate: "2022-07-20T21:49:04Z", product: map[attributes:map[currentGeneration:Yes databaseEdition:Web databaseEngine:SQL Server deploymentOption:Single-AZ engineCode:11 instanceFamily:General purpose instanceType:db.t3.large instanceTypeFamily:T3 licenseModel:License included location:US West (Oregon) locationType:AWS Region memory:8 GiB networkPerformance:Low to Moderate normalizationSizeFactor:NA operation:CreateDBInstance:0011 physicalProcessor:Intel Skylake E5 2686 v5 (2.5 GHz) processorArchitecture:64-bit regionCode:us-west-2 servicecode:AmazonRDS servicename:Amazon Relational Database Service storage:EBS Only usagetype:USW2-InstanceUsage:db.t3.large vcpu:2] productFamily:Database Instance sku:QUKK5XGBC6BV7E3R], serviceCode: "AmazonRDS", terms: map[OnDemand:map[QUKK5XGBC6BV7E3R.JRTCKXETXF:map[effectiveDate:2022-07-01T00:00:00Z offerTermCode:JRTCKXETXF priceDimensions:map[QUKK5XGBC6BV7E3R.JRTCKXETXF.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:USD 0.232 per db.t3.large Single-AZ instance hour (or partial hour) running SQL Server Web (LI) endRange:Inf pricePerUnit:map[USD:0.2320000000] rateCode:QUKK5XGBC6BV7E3R.JRTCKXETXF.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[]]] Reserved:map[QUKK5XGBC6BV7E3R.38NPMPTW36:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:38NPMPTW36 priceDimensions:map[QUKK5XGBC6BV7E3R.38NPMPTW36.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:1219] rateCode:QUKK5XGBC6BV7E3R.38NPMPTW36.2TG2D8R56U unit:Quantity] QUKK5XGBC6BV7E3R.38NPMPTW36.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Web (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0464000000] rateCode:QUKK5XGBC6BV7E3R.38NPMPTW36.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[LeaseContractLength:3yr OfferingClass:standard PurchaseOption:Partial Upfront]] QUKK5XGBC6BV7E3R.4NA7Y494T4:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:4NA7Y494T4 priceDimensions:map[QUKK5XGBC6BV7E3R.4NA7Y494T4.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Web (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.1461000000] rateCode:QUKK5XGBC6BV7E3R.4NA7Y494T4.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:No Upfront]] QUKK5XGBC6BV7E3R.6QCMYABX3D:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:6QCMYABX3D priceDimensions:map[QUKK5XGBC6BV7E3R.6QCMYABX3D.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:1195] rateCode:QUKK5XGBC6BV7E3R.6QCMYABX3D.2TG2D8R56U unit:Quantity] QUKK5XGBC6BV7E3R.6QCMYABX3D.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Web (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0000000000] rateCode:QUKK5XGBC6BV7E3R.6QCMYABX3D.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:All Upfront]] QUKK5XGBC6BV7E3R.HU7G6KETJZ:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:HU7G6KETJZ priceDimensions:map[QUKK5XGBC6BV7E3R.HU7G6KETJZ.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:609] rateCode:QUKK5XGBC6BV7E3R.HU7G6KETJZ.2TG2D8R56U unit:Quantity] QUKK5XGBC6BV7E3R.HU7G6KETJZ.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Web (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0696000000] rateCode:QUKK5XGBC6BV7E3R.HU7G6KETJZ.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[LeaseContractLength:1yr OfferingClass:standard PurchaseOption:Partial Upfront]] QUKK5XGBC6BV7E3R.NQ3QZPMQV9:map[effectiveDate:2019-11-01T00:00:00Z offerTermCode:NQ3QZPMQV9 priceDimensions:map[QUKK5XGBC6BV7E3R.NQ3QZPMQV9.2TG2D8R56U:map[appliesTo:[] description:Upfront Fee pricePerUnit:map[USD:2389] rateCode:QUKK5XGBC6BV7E3R.NQ3QZPMQV9.2TG2D8R56U unit:Quantity] QUKK5XGBC6BV7E3R.NQ3QZPMQV9.6YS6EN2CT7:map[appliesTo:[] beginRange:0 description:SQL Server Web (License Included), db.t3.large reserved instance applied endRange:Inf pricePerUnit:map[USD:0.0000000000] rateCode:QUKK5XGBC6BV7E3R.NQ3QZPMQV9.6YS6EN2CT7 unit:Hrs]] sku:QUKK5XGBC6BV7E3R termAttributes:map[LeaseContractLength:3yr OfferingClass:standard PurchaseOption:All Upfront]]]], version: "20220720214904" }] } Is there any documentation which list down the response structure because currently its a nested map with no structure defined of key and values. Also which field should I consider to get the price for an rds instance ?

1 Antwort
0
beantwortet vor 2 Jahren
  • PriceList []aws.JSONValue is a nested map with no defined structure of keys and values and what is the exact value I should consider for the cost of that instance.

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen