22 lines
752 B
JavaScript
Executable File
22 lines
752 B
JavaScript
Executable File
#!/bin/env zx
|
|
import fs from "fs"
|
|
import { exit } from "process";
|
|
|
|
const targetNumberOfCores = 28
|
|
|
|
|
|
const regions = JSON.parse(await $`aws ec2 describe-regions`).Regions.map(r => r.RegionName);
|
|
|
|
console.log("Available regions:", regions);
|
|
|
|
let pricings = []
|
|
|
|
for (const region of regions) {
|
|
console.log("Fetching spot pricing data for region", region)
|
|
const pricing = JSON.parse(await $`aws ec2 describe-spot-price-history --start-time ${new Date().toISOString()} --end-time ${new Date().toISOString()} --product-descriptions=Linux/UNIX --region ${region}`).SpotPriceHistory
|
|
pricings = pricings.concat(pricing)
|
|
}
|
|
|
|
console.log("Spot pricing data:", pricings)
|
|
fs.writeFileSync("spot-pricing.json", JSON.stringify(pricings, null, 2), "utf-8")
|