mr-krabs
v1.1.0
Published
A package to lower your costs with AWS resources
Downloads
8
Readme
mr-krabs
:crab: :moneybag: A package to lower your AWS costs
Installation
Make sure you have your AWS credentials correctly setup
Install the module:
npm install --save mr-krabs
Usage
There are basically 2 ways of setting up the intended cluster and service name patterns:
1 - By providing a file called krabs.json
at the root of your project:
{
"clusterName": "demoClusterName",
"sericeName": "demoServiceName"
}
2 - By providing the config at the function calls as the demo above
const mrKrabs = require('mr-krabs')
// DETAILS
function getDetailsOfDemoServices () {
return mrKrabs.listClusters({ clusterName: 'demoCluster' })
.then(([clusterName]) =>
mrKrabs.listServices({ clusterName, serviceName: 'demoServiceName' })
.then(servicesNames => mrKrabs.getServicesDetails(servicesNames, clusterName))
)
}
// UPSCALE
function upscaleDemoServices () {
return mrKrabs.listClusters({ clusterName: 'demoCluster' })
.then(clusters =>
Promise.all(
clusters.map(clusterName =>
mrKrabs.upScaleAllStoppedServices({ clusterName, serviceName: 'demoServiceName' })
)
)
)
}
// DOWNSCALE
function downscaleDemoServices () {
return mrKrabs.listClusters({ clusterName: 'demoCluster' })
.then(clusters =>
Promise.all(
clusters.map(clusterName =>
mrKrabs.downScaleAllRuningServices({ clusterName, serviceName: 'demoServiceName' })
)
)
)
}
// Full flow of upscale and downscale all services of the defined clusters/services
getDetailsOfDemoServices()
.then(before => {
console.log('--- BEFORE ---')
console.log(before)
return upscaleDemoServices()
})
.then(getDetailsOfDemoServices)
.then(middle => {
console.log('--- MIDDLE ---')
console.log(middle)
return downscaleDemoServices()
})
.then(getDetailsOfDemoServices)
.then(after => {
console.log('--- AFTER ---')
console.log(after)
})
You can also mix settings by adding either the config file and supplying the config params, just keep in mind that the precendence order respectively function param and krabs.json
.
License
mr-krabs is MIT licensed.