Indeed, sometimes a loss is a gain. (personal experience)
Only after losing a lot of $$$ to AWS, I was able to build a solution.
I am a software engineer by profession. I have used cloud servers and other resources a lot for different purposes during my career.
One of the main issues that I faced and I saw many other developers face too, is the amount of money wasted on the cloud. For example, AWS offers cool computers called EC2 that are best for one-off jobs such as training your AI model.
Depending on the amount of computing power you need, which in the case of AI-related apps is A LOT, EC2 instance prices range anywhere between $1 to $100 per hour.
More often than you think you will forget to stop an instance after you're done. Let's say it costs $50 an hour. Oh dear, by the time you find out, you will have received a message from your bank at the end of the billing month that AWS has put a huge dent in your account or if you're lucky when you come back to work the next day, you will see what has happened.
From as bad as running for an entire month, costing double figures each hour, to running overnight still racking up several hundred in bills, it's bad. It's really bad.
After losing money several times, this was my way of identifying a real, painful problem and then pursuing a solution. I started Costshake a few months ago and I was not even entirely sure how I would go about solving this problem. I am beyond thrilled about where I have come with my simple solution from where I started.
Costshake is really simple to begin with. It's a simple CLI that you install on your instance when you first start it, and then you set a criteria let's say, if the instance is not used for 30 minutes, or if the total CPU usage drops to 10% and stays there for 5, 10 or any amount of time, or if the total Memory (RAM) usage drops to a certain percentage.
The CLI monitors instances even after restart/reboot and automatically shuts them down when the defined criteria are met. A Straightforward solution to a well-defined, well-observed, and well-experienced problem.
So why would you not want to spend an extra 5 minutes the next time you spin up a bill-racking instance to set your ideal criteria for shutting it down and then relax and never worry about it again?
P.s. there is AWS austoscaling where you can put such a rule or you can use some server less design due that might cost more
Hey there!
Thanks for your insight. I did not take AWS autoscaling into account when I built Costshake so thank you for bringing it to my attention.
However, here's my observation and why autoscaling is not the optimal solution for use cases that Costshake targets.
Costshake is meant for use with development related instances. e.g. Training an AI model, Building or Testing a software etc. These are not instances that you use for some kind of server. While autoscaling might still work for any kind of instances, it just makes the process way too complicated than it should be.
Autoscaling does not let you be so flexible and specific with the parameters that determines idleness and to subsequently trigger a STOP. For example, there is no support in autoscaling for "No user activity i.e. no activity from mouse, keyboard, or ssh connection for X minutes."
With mouse and keyboard mentioned above, YES, Costshake also supports GUI/Desktop installed instances. These are instances that companies primarily use as their daily workstations. Costshake can determine user activity based on the input system receives via USB, mouse, keyboard etc.
Costshake is cross-platform maintaining that simple, intuitive CLI across AWS, Azure, and GCP. Azure and GCP are around the corner with IBM Cloud and Alibaba Cloud also planned.
Last but not least, Costshake is going to be much more flexible and cost-effective when it comes to cost for companies.
What are your thoughts? Do you think that would be enough to make Costshake a desirable tool that companies/devs would pay for?
I'm not saying there isn't a place for the cli tool, just that if your using AWS, as a professional it makes more sense to learn what are the core options of the platform. AWS batch is specifically made for that ML case for example. While for the other case there is AWS workspace.
I know there is too much stuff in AWS and just knowing even for people who constantly work with AWS is a lot.
I'm saying if your doing some like CPU based it's probably better inside the AWS tooling vs a custom solution at least the way my mind is setup about these. I'm guessing you can also check connections/logged in users. You can basically act on any metric reported with a custom alert that would take it down.
Using the AWS tooling gives you better visibility and traceability and compatibility with other tooling.
If you don't market it specifically for AWS it makes more sense as just a generic shutdown your instance based on your usage pattern to save money.
For any new tool there has to be enough pain to consider and search for a tool and then build trust on an installable (worse if it's not open source and short/easy and dependencies..)
There is a lot of space to improve the AWS experience even with the options they are offering they don't make the first experience a good one, they should be onboarding you with security, budgeting and more that they do have, but you need to come with so much knowledge to work it.
There is space for cli tools, marketing it for AWS and not connecting it to actual AWS stuff is a turn-off
That's exactly why I started Costshake. I knew of course there are ways to setup to avoid extra, unnecessary costs but my point is that setting this up is a big pain itself.
I am an AWS user for years and I still need to look up stuff even if I have used it before and come back to it a few months later. That's how convulated and complex AWS has become.
First, chances are that most aws users who simply use some ec2 don't have enough knowledge about the necessary tools to avoid costs. Second, even if they did, many won't even bother dealing with a dozen different tools and would highly a prefer a straightforward solution specific for the job instead.
There are millions of products around the world that simply have a market because other products are complex although might do even better for the exact same job.
For ML, with AWS Batch, you lose control over exactly what and when to spin up. I can think of countless scenarios when someone would want to have control down to the bare metal hence the old EC2 to the rescue and this time with Costshake they also don't need to worry about stopping it.
The exact same argument is true for workspaces. If as much control as one would need with an actual physical computer is needed, you have no choice but EC2. If MacOS is needed, you have no choice but EC2. If you don't want to pay the monthly payment for a huge workspace bundle and you use the workspace on hourly base, you are back to square one, the original problem.
Lastly, as you also pointed out, Costshake is not AWS specific but rather a pretty common pain specific that is to stop an idle cloud resource.
P.S.
How much big of a problem do you think the closed source nature of my CLI would be when it all comes down to trust? I really don't want to give away my months of hard work and research.
Well working for a big org would mean I 100% can't use that tool, that tool would need to be worth and cost in the 10k+ to pass all the company stuff, legal and security, contracts...
For solo projects again I'd probably won't touch it if it's not open source, you have 100% control of all my instances, if I can't run you in some low-privilege container or something, that's just a big risk.
mid company if the pain is worth the risk maybe
It's a hard spot, rather have some bigger tool that gets the other ppl in the company happy with reports and such, something more complex that's more strategic (and there are offers like that)
As an open-source tool there is a chance to be used in many of these cases, don't forget it's basically something I can ask AI to give me a cornline for.
IDK if that's a tool I can get my head around who would pay for it and in what package, I can only imagine it as a github open source project.
I don't claim to represent all people in all scenarios for this, just personally can't see paying for a closed binary executable to run on my instances where the complex of is pretty much a command line with a couple of pipes
If it seems like a fully-fledged service with a dashboard and remote UI control, like some of the other we save you cloud costs 3d party services than it has a better place, but I'd be surprised to install an executable and not grant the tool some limited AWS access to do it's job. As you'd be able to read the resources and add resources accordingly without having hardware access to my instance. As well as fit more use cases under ecs for example.
First, thank you so much for all the valuable insights. It will 100% go into my future roadmap and approach.
I didn't mention all the features current and upcoming and I can see why I should have.
Costshake is actually a SaaS with a nice dashboard currently web only but both iOS and Android apps on the way.
The CLI DOESN'T STOP THE INSTANCE. It only monitors it and when threshold is reached, it relies on outbound HTTP call to Costshake backend to actually stop it. Another important point to note here is that the CLI only ever does outbound calls to increase security, trust, and avoid inbound firewall shenanigans.
CLI at the time of config accepts an ed25519 key generated on the Costshake dashboard to secure communication it makes with the Costshake.
On dashboard you need to setup credentials that Costshake can use to actually do the stopping etc. We advise users to fine tune the credentials down to the exact instance and only for the actions that are needed.
You then create an instance separately and associate it with the the credentials, this way allowing you to flexibly assign etc.
Other features from the dashboard that are actively worked on are scheduled auto start/stop, manual start/stop for now and exploring further convenient ones to add.
I understand that for scheduling you can use some serverless function, for start stop you can just use the aws console or cli etc.
But remember that Costshake is much selling convenience as savings. Especially with mobile apps and the cross-cloud support just makes this whole thing worth paying no?
P.S
The 10K+ you mentioned to pass all the company stuff, did you mean $10K dollars? If so, my current enterprise plan is indeed at $18k/year, before you shocked, there will be many more features and and it's a SaaS package.
P.P.S
I will be sure to share an actual link for you to try out some stuff and you will have a lot more in depth idea and first hand experience, pretty soon. Thanks once again a ton.
Just consider if no agent installed is also an option for some of the features
Indeed. Again, thanks for bringing it to my attention.
Also if you just use AWS for compute and nothing else, go somewhere else, have a look at gcp at minimum