
Ask HN: Should a solo developer use AWS for his public side project? - ciaoben
I am working on a side project that I intend to launch soon and I am starting to thinking about the &quot;sys&quot; part of the project.<p>I need pretty basic setup (a db server, a redis one, one for the rails app and a CDN). I am not a sys ops expert but with some work I can set these servers up.<p>I don&#x27;t want to use highly managed solutions like heroku, they are too expensive and knowing that I can set up on myself, I want to avoid this high expense.<p>On the other hand, something in the middle, like AWS has my attention. It would give more flexibility for sure, and I would like to learn it, but their opaque pricing it scares me a bit.<p>I would like to receive advice for people who can understand my position as a solo developer (with a basic European wage) and who can&#x27;t afford to spend 100&#x2F;more euros&#x2F;month for a project until it pays for itself alone.
======
dchuk
Spin up a 2gb+ DigitalOcean server and toss Dokku on it. Feels like Heroku,
very reliable, very simple to understand by just reading the Dokku source.

AWS is a great great thing, but has opaque pricing and a lot of nuance to
getting everything running smoothly. 99% of projects can survive on a single
beefy server for a long time before scaling becomes a concern, at which point
that is a good problem to have. Don't make it a bad problem now by making
things too complex.

------
borplk
I have done the AWS path in the past (and I'm pretty good with AWS mind you).
In hindsight I would absolutely go with a $5 DigitalOcean droplet in the
beginning. Focus on the product.

~~~
tedmiston
+1 to the DO droplet. You can start with one of their pre-built images in no
time and don't have to deal with things you don't care about for this project
like IAM, VPC, regions, etc. You can run Redis and your db locally on the box
for a small app.

------
howlett
I was in the same position as you a couple of months ago and I went for Linode
- the $5 plan. You're probably conscious not to spend a lot of money from the
start as - let's face it - you don't know if your project will be as popular
as you hope it will be (mine wasn't!). On Linode you can easily upgrade by
adding ram/disk etc and the pricing is straight forward.

If your project lifts off and Linode doesn't cover you, you can look at AWS
then.

------
seanwilson
> I need pretty basic setup (a db server, a redis one, one for the rails app
> and a CDN). I am not a sys ops expert but with some work I can set these
> servers up.

> I would like to receive advice for people who can understand my position as
> a solo developer (with a basic European wage) and who can't afford to spend
> 100/more euros/month for a project until it pays for itself alone.

Heroku is $7 a month (not counting 1000 hours free) for a dyno, $9 a month for
a 10M rows Postgresql database and Cloudflare is free so it's very affordable
to start with in my opinion. How much is your time worth? You can make it a
bit cheaper with AWS probably but you'll pay for it with your own time and
it'll probably be less robust unless you know what you're doing (e.g. coping
with server failure, backups, rollbacks, security, deployment process,
scaling, logging).

I like Heroku because it's simple. You can mostly just focus on your code,
leaving server and infrastructure configuration to the defaults and know it's
going to be robust and secure. AWS and even Digital Ocean have a lot of
customisation and complexity which just means more things can go wrong which
will eat up your time when you could be coding.

~~~
valuearb
Heroku doesn't maintain database state. Your dyne can essentially be erased
and restarted with an empty database. That's not usable for production
systems.

~~~
seanwilson
> Heroku doesn't maintain database state. Your dyne can essentially be erased
> and restarted with an empty database. That's not usable for production
> systems.

Almost, dynos don't persist filesystem changes but for databases you're
suppose to host the data elsewhere (e.g. Heroku Postgresq, AWS RDS, AWS S3)
and that data will be persisted. This is by design and a very good strategy
for production systems as you can then easily scale by adding more stateless
dynos later. All configuration for your dynos is stored and versioned in Git
and all your important data is stored somewhere robust with proper backups and
rollbacks.

If you've advocating storing your state on the server itself by e.g. using AWS
EC2 or Digital Ocean, you're going to need your own strategy to make sure you
don't lose any data or configuration settings (e.g. packages, config files)
when your server box fails and storing state on the server means you can't
easily horizontally scale.

When Heroku doesn't let you SSH into active servers, only lets you deploy via
Git and doesn't let you store state on servers, it's done intentionally to
force you into making good choices that scale.

~~~
valuearb
Heroku is super easy to use and setup for a newb like me, but never explains
this up front. So I was shocked when I figured it out months into using my
first dyno. Everything you write makes sense, and hosting my data elsewhere
turned out to be easy. But it's definitely an important point to understand,
because it adds a layer of cost to hobby projects you want to run full time
sites with.

------
haidrali
I think AWS is good for side projects. I am also a solo developer and have
deployed side projects on AWS so far my experience is very good. As you have
mentioned that you can't afford to spend >100 euros/month I think you can go
with AWS free tier where it is possible

1- For DB server you can you RDS free tier I would say it would be enough for
a side project

2- For Redis Instance you can use EC2 free tier to run single Redis Instance
or you can try Amazon elastic Cache as well

3- For Rails app depending upon your need again you can either use free tier
server or whatever suits you check different AWS EC2 instance types
[https://aws.amazon.com/ec2/instance-
types/](https://aws.amazon.com/ec2/instance-types/)

4- For CDN you have to use Amazon S3 first and that would cost you and cost
depends upon usage + storage, since its a side project bill won't be too much

Happy Deployment ;)

------
icedchai
Why not start with a VPS like Digital Ocean? If/when you outgrow it, consider
something else...

------
kevinsimper
I can really follow your question as it is a really tough one and it all
depends on what is your interest, because:

\- You can use AWS but you will no doubt spend a lot of time figuring out
stuff, BUT if you think it is fun and if you can use it to further your career
then it makes total sense!

\- If your focus is on the development and not a side project you should
really go with something hosted like Heroku because you will be able to spend
much more time on development instead of configuration and be spending time
worrying if you have done it correctly. Heroku is pretty cheap for what you
get in terms of hours saved but you are giving up some flexibility, no doubt!

------
charlie-r
Use a simpler hosting provider if you're not already familiar with AWS. Power
brings complexity, and your product likely won't benefit from solving
infrastructure problems you don't have (yet).

That said, once your product outgrows simpler infrastructure I'd
wholeheartedly recommend AWS. For the past few years I've been using AWS for
my day job and side projects. Prices are competitive, and once you're past the
learning curve, you'll have a great deal of flexibility.

------
jenkstom
Companies like Digital Ocean, Linode, Vultr, Scaleway cater to small
developers. The costs are much lower, although the flexibility and features
aren't the same as AWS. If you need the features of AWS then definitely take a
look at their main competitors too (Google and Microsoft), they all have
slightly different feature sets and optimizations.

Personally I've never found a reason to use AWS/Azure/GCS for small projects,
they're just too costly.

------
methodover
I converted a Linode setup to an AWS setup at my smallish-but-not-tiny startup
($100k MMR or so). It was pretty easy.

I'd go with the cheapest solution, like a digital ocean droplet before going
to a more expensive (but more fully featured) solution. You can always switch
later.

I took us to AWS to take advantage of things like Redshift, Aurora, etc. Prior
to AWS, we just had our rdbms, redis, app servers on relatively inexpensive
Linode boxes.

------
gspyrou
If you consider using Azure check out the Microsoft Bizspark programme
[https://bizspark.microsoft.com/](https://bizspark.microsoft.com/) (€130 per
month of free Azure cloud services).

------
8draco8
Go with VPS like Linode, Vultr or Digital Ocean. AWS is to expensive and
complicated. If you choose DO you use promo code coderdigital which will give
you $10 for free (2 months of cheapest server)

------
johnsmith21006
Personally would use the Google cloud instead. Faster, cheaper and love
working in containers.

------
buildmystartup
AWS is way too expensive for a side project. Use DO till you outgrow it.

------
crispytx
Personally, I like DigitalOcean better than AWS.

------
wprapido
diitalocean, linode, vultr, scaleway, hetzner might just do the job better and
cost a fraction of what AWS costs

------
nogox
If you use Docker, try Hyper.sh

------
jrader
lowendbox.com is great for VPS deal hunting too.

