I'm going to launch a startup and I've always used Digital Ocean and OVH for my small projects, but I feel that this project is much bigger and could reach even one million users in a short time, so I started evaluating cloud services like Google Cloud and Amazon AWS for auto-scaling.
Unfortunately the prices are higher than I expected, for this reason I am very undecided whether to make an effort and go immediately to Cloud Computing or risk a little more and take a dedicated from OVH or Digital Ocean.
The project does not have a system of immediate monetary gain, that comes once the user starts to trust the service, for this I am concerned about costs.
For example:
Google Cloud 'n1-standard-2' (1vCPU, 3.75GB RAM) costs $50/month, while with 50$/month I can take on Digital Ocean 2 droplets with 4GB RAM and 2vCPU and 1 with 2GB RAM and 1vCPU
I'd like to know if my reasoning is wrong and what I could lose if I use the least risky strategy (Digital Ocean), or even your own personal opinion on how to solve this problem.
What you are asking is very common and this is a very general answer as the answer for you can be very different depending on the use case.
VPS providers can be very useful if you want to start cheap (literally $5) and generally speaking can be scaled (with a short outage) up to much larger sizes. This works particularly well if you have a linear traffic pattern which perhaps grows as you sign up customers.
Where cloud providers like AWS & Google become VERY powerful is if you have "elastic" traffic. Perhaps a something that is event based where you receive a trickle of traffic most days but on certain event days you receive 300 times the traffic (not unheard of).
In order to utilise the cloud you need to leverage hourly based billing (in the case of AWS/Google) or traffic based billing (in the case of Heroku) and for that you need to build your site / application to be able to deal with this. For a "traditional" (I am a Linux guy so I am biased) LAMP stack then that would mean an elastic load balancer, separate (RDS) database and webservers that can spin up and down as it's needed. As I say, HUGE cost savings if you have elastic traffic as the alternative would be a large enough infrastructure to deal with your highest demand.
For "most" people then there is nothing wrong with a VPS to begin with and as discussed you can ramp them up to quite large sizes with only 5 mins downtime. If you are looking at fast growth then chances are you will be re-architecting your site/application quite quickly anyway and that always gives you a choice to jump on the cloud bandwagon then :-)
Your answer really solved me a huge doubt, I hope to enter the cloud bandwagon soon then, thank you :)
I would go with Digital Ocean. If you are successful then scaling later isn't going to be a problem. AWS is expensive when you are starting out unless you are using Lightsail. But then again migrating from lightsail to EC2 is similar to migrating from Digital Ocean to EC2 so no benefit to changing.
Thanks for your answer, in fact the most plausible choice is to switch to the cloud later when needed
You can always look at Amazon's AWS Activate (https://aws.amazon.com/activate/)
They offer $1,000 of AWS credit good for 2 years and a slew of other benefits to get you going including both business and technical training.
I didn't know about this program that AWS offers, I'll take a look at it to see how it works, thank you
Hi there, I'm Shahroze Nawaz, Community Manager at Cloudways Managed Cloud Hosting for Startups, e-commerce, and small businesses. Your confusion is totally normal thing Startup owners faces this in the final round of launching their startup. Here I have introduced you Cloudways which can be your best companion for launching cloud servers on top 5 providers like DigitalOcean, Linode, AWS, Vultr and Google Cloud. You can easily launch servers and applications with few clicks and manage them complete via Cloudways platform.
Cloudways also offered a startup program and the best thing is with your startup project you will get multiple tools for free and discounted price to market your startup. The program included marketing, Monitoring and live chats tools which are available for free. Also, you will get the premium support under this program.
You can read the complete details here: https://www.cloudways.com/en/startup-program.php
Beside all these things Cloudways has lots of other perks available for free like:
-Supports all PHP based applications, Framework and CMS
-Setup cloud server within just few clicks and in about 8 minutes.
-Apache, NGINX, Varnish, Memcached, Redis, PHP-FPM, DBMS (MySQL and MariaDB). Websites hosted on ThunderStack run almost 100x faster.
-It gives First Free Migration
-24/7 Live chat support
-Provides Free SSL certificates
-Provides Free Staging Domains, you can directly access your -application using that.
-Host Unlimited applications
-Team Collaboration feature
-Easy Git Deployment Feature
-Automatic Zero Downtime Deployment
-Real Time Monitoring
-1-Click Scaling
-1-Invoice (Cost of server is included in Cloudways Cost)
Up to date Servers
-Secured Firewall
-SSH and SFTP Access
-Cloudways Bot, Automated Notifications
-Built in Database Manager
-Supervised Queue Manager for Laravel
-Breeze Plugin for WP
-Two-Factor Authentication
-Cron Job Manager
-Elasticsearch
-Cloudways API
-1-Click Domain Mapping
-Server and App Cloning and management feature
You can see complete feature list here: https://www.cloudways.com/en/features.php
Cloudways also offers Cluster Solution for high audience website as you say that you are expecting millions of users so you must try out Cloudways. Let me know if I can help you with anything :)
This comment was deleted 8 years ago
Was always using Heroku as a PaaS. As I know Rob Walling and Derrick Reimer from Drip also used Heroku on the early stage of the product til scaling and grow became an issue. And if you just "going" to launch a startup try to avoid the trap of premature optimisation. Get the customers, validate and optimize all the funnels and then scale to AWS.
Oh, last thing. Please don't use Azure :) We've just gone thought a "simple" migration from one subscription to another for one of my clients and literally spent 2 weeks reconfiguring all the environments and deployment pipelines as a sweet aftermath.
DigitalOcean is a cloud provider and it is easily scalable. I serve millions of users per month off a single DO box.
DO provides load balancers etc that will help you handle huge traffic jumps. I've had spikes of hundreds of thousands of users per day with a CPU intensive application, and it was easy to do.
It sounds like you are not using any of AWS's bells and whistles and you have no plans to do so. In that case, going with AWS over DO is premature optimization. It should normally not be difficult to switch between cloud providers - most server architectures do not need to depend on any single cloud provider.
Good luck!
Thank you for your answer, since I'm curious, can I ask what droplet you use to serve millions of users and whether the database is in the same droplet or uses external services?
Wouldn't it be better to have multiple servers handling the load than a single server?
However I have always used DO for very small projects, so I never needed to go see options in addition to owning the server itself.
Yes, please tell about you DO vps configuration which is dealing with million users
Google Cloud free tier is fantastic. If you can write your app using Google's App Engine, it'll scale automatically. And it won't cost you any more if it doesn't catch fire like the rest of our projects ;)
I didn't know Google App Engine, thanks for making me discover it
I feel like colocation is a completely valid strategy that is fairly underrated these days.
Some facilities will lease out space in small increments at reasonable rates.
Something like 50 - 250 bucks a month, a few secondhand servers off eBay, and you're off to the races!
I don't know what your stack it, but regardless you could use Docker if it isn't NodeJS. I would highly recommend using now.sh! Not only is it affordable (Free starting out, $15, $50 and $200 plans), but it is extremely simple and quick. I can buy a domain, deploy a node service and scale it all within a minute. It also integrates with Github and can create a CI pipeline with almost zero effort. Their latest offering has a CDN as well. These are the same guys who created Next.js and Hyper Terminal. Their past experience is also great with things like socket.io, etc. under their belt.
Also, I have personally worked extensively with AWS & Azure. In addition, I have used Linode, Digital Ocean, Oracle Paas, Heroku, and Softlayer on various projects in the past. NOTHING compares to now.sh. For comparison, you may want to try surge.sh, but I'm, not sure if it supports node/docker deployments.
I’m using Azure and it’s really nice but not cheap. I would sticick with DO until you need something more capable.
You can start out on AWS, Google, or Heroku for fairly cheap. No need to pay the big amounts of money until you absolutely have to. Flexibility from these cloud providers to scale on demand is incredible and shouldn't be underestimated.
Since your monetization strategy is delayed, then you will need to ramp up slowly to work on a tighter budget. Just make sure you can consistently convert free users into paying ones to justify the increase in power to sustain the whole thing.
Assuming the system you are building is not massively complex hence fairly easy to move. If you have a setup already in place, use it - it'll be quick and simple, with limited costs. Most likely you won't explode from 10 to 1m users overnight - see how it goes and you can always migrate to a scalable platform once it's starting to gain some traction.
Do you really need autoscaling or would the user ramp up be slow enough that you could manually provision new servers? How long does that take you on average?
This comment was deleted 4 years ago
This comment was deleted 4 years ago