Recommendations on lower costs for running a server on the cloud

Hi all. I am new here and this is my first post. While browsing around the forums to see what’s required for running a stake pool, I come across many topics about paying $40+ per server on Digital Ocean as one of the “cheaper” options so I decided to show a cheaper alternative.

First of all, I am an infrastructure engineer, leading an IT team and maintaining 100+ servers, both physical and on AWS. It’s my recent adventure in architecting our company’s AWS account that allowed me to become cost-aware in running servers which I wanted to share with you.

So, back to the topic. $40+ per server on Digital Ocean is for (4 core, 8GB RAM) which is above recommended specs, is too much. On AWS, a T3.large instance will cost you around $68/month. However, buy “Reserved Instances” and you can lower this cost from $68 to around $25 for on a 3-year term.

I think a 3-year term is realistic to invest in considering the time it will take to get delegators to your pool which seems to be a catch22 problem. No delegators = no minted block. No minted blocks = no delegators.

I have the technical background, enthusiasm and the will to contribute to a project like Cardano which is how I ended up here but just a day of research shows that the biggest hurdle for me would be marketing since it means I need to remove my tin foil hat. Let’s see where my research takes me.

Anyway, I thought some might find this useful. Good luck.

3 Likes

Hello,

Check this topic

Cheers,

I agree. Many things are a factor to consider. From familiarity to feature balance, cost/reliability. I just wanted to point this out to those who are paying considerably higher prices for their servers another way to make it cheaper.

Anyone looking at the AWS “bottom line” should consider how the EC2 T instances are different from other cloud virtual machines. They’re not resident & running all the time (the T indicates that the CPU is “burstable”):

For instance @techleak the allocation of credits to the t3.large instance only allows both vCPUs to run 30% of the time. That lack of continuous availability could be a problem for relays, and might even prevent block production if there’s enough of a lag between when those “credits” are needed & when they’re actually used.

So I would at least enquire with the node developers to confirm if this intermittent availability would not be a serious problem for a node to function as either a relay or a block producer.

Correct, however, I gave t3 as an example purely due to the minimum requirements for the server says “Note that processor speed is not a significant factor for running a stake pool.” With that in mind, I will soon begin my own testing on testnet. You’re right though, an input from developers will be useful.

1 Like

Just adding to this. AWS based SSD are extremely slow compared to directly attached SSD such as those found on Digital Ocean. So anything intensive such as rescanning the blockchain will be faster on Digital Ocean.

I found this when running cardano-graphql. Digital Ocean can do a query in ms, while AWS simply times out (unless you pay extremely for dedicated IOPS).

What type of instances have you had this issue with? That is a real concern. Like I mentioned above, I am hoping to run some tests very soon on AWS so I wouldn’t mind experimenting with different instance types to clear some of these concerns.

At the moment, I am setting up a pool on local VMs to get a feel of the set up, run some tests, check available tools etc and as soon as I am done with this, I will carry out the tests on AWS as it’s a platform I am involved with at work. Familiarity help.

1 Like

It’s the storage type and the provisioned SSD IOPS that’s the issue, not an EC2 type. Although some EC2 types I think have direct attached SSD but I’ve never tried them due to their expense. Basically anything database related running on EC2s I’ve found to be really slow.

As another example, when running MongoDB using Mongo Atlas on AWS, it’s way slower then running on ScaleGrid on Digital Ocean. The worst was a query on AWS took 20 seconds, on DO it took 4 seconds.

There’s a number of benchmarks already out there showing how much faster overall DO is compared to AWS with SSDs.

The reason why I asked the type of instance used is that instance types determine the performance loads. CPU, memory, storage optimized etc I can’t comment on database performances but it’s hard to believe that one of the dominators of the field can be 4x slower in performance. I will definitely run my own tests.

Can someone who runs their pools on AWS comment on this? How is your server performing? What type of instances are you using? I’ve seen some people use C5.large (this is processor optimized and I believe this person switched to this because of monitoring tools requiring more juice).

There’s heaps of reviews and benchmarks that illustrate how EC2 storage’s work based on pricing, e.g: IOPS: Benchmarking Disk I/O – AWS vs DigitalOcean - DZone Performance

The blockchain itself won’t have an impact on producing blocks as a BP does basically nothing. If you had to rescan the blockchain though you will see huge difference if you don’t have enough IOPS allocated. Things might get a lot more intense later on when smart contracts and oracles are running as they will most likely depend on querying the ledger.