Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

dtirer@gmail.com's avatar

Forge vs Heroku vs DIY - AWS

I'm working on the backend for a fairly complex iOS application. We're ready to go into our beta launch I'm trying to decide which route to as far as server mgmt and deployment.

As of now, I'm using Laravel Forge (Digital Ocean) with Envoyer, and a custom Python Script to get everything setup on each box. On Forge, I currently have the following servers:

  • 2 Application Servers - 2GB Ram / 2 Cores (iOS facing Applicaion, and a Admin Application)
  • (2) DB Severs - 1GB Ram / 1 Core (theres 2 databases)
  • (2) Worker Servers - 2GB Ram / 2 Cores

With this setup for development / staging, we've gotten pretty solid performance and quick response times. However, there's several things I know I would still need to setup:

  • Load Balancers
  • DB Redundancy
  • Maybe a Cache Server

That being said, all of this on Forge is pretty affordable. However, I am not a sysadmin and I want to make sure I'm in a position where we can scale easily if needed.

I tried out Heroku the other day, which was somewhat easy to setup, but its very expensive to get anywhere near the same performance and seems somewhat restrictive (you need to do things their way, and thats it). But they do take care of all Load Balancing and Caching, and it's easy to setup DB failovers.

Im wondering what people's experiences have been? I've read article like the one below where people have left Heroku and rolled their own AWS environment: http://www.holovaty.com/writing/aws-notes/

And while that sounds enticing an potentially more affordable, I'm not confident enough as a sysadmin to ensure that I'm not missing any security loop holes and such.

Has anyone done any proper scaling with Forge?

0 likes
6 replies
christopher's avatar

To make it quick: Since you are not a real sysadmin with enough knowledge, hire a professional sys admin or an certified AWS admin. If you have the $, go for AWS since AWS lets you create your very own datacenter with all the features of aws.

dtirer@gmail.com's avatar

@Christopher thanks for that Christopher. Unfortunately, We're just a startup so we don't really have the funds to hire a sysadmin currently (yet). Which I suppose is why people use Heroku at this stage.

Sounds like from your response though, that I probably shouldn't try and tackle this with Forge myself?

christopher's avatar

With your required setup i would not do this by myself if i have now knowledge about server administration. You can make tons of mistake especially with servers and dont forget the security of your services.

If you want to build a scalable virtual datacenter or DB Servers, Cache Servers, Loadbalancer etc, go for AWS with EC2, S3, EFS, RDS, ElasticCache, AutoScaling Groups etc.

But of course you have to learn AWS since it`s very complex. But AWS is the best service for scalable and performance Hosting.

And Forge, AWS & Heroku are complete different services, you cant compare them. It always depends on your needs.

And btw: DigitalOcean is pretty expensive with its Hardware. For 150 EUR i get a 2x XEON, 128 GB of RAM and 2TB SSD. You really dont need several of different servers if you have one big machine. More Machines makes the entire stack more and more difficult.

You need to monitor each server, you need to update and upgrade the servers, you have to watch the logs, prevent server attacks, make backups on another backup server etc. etc.

I would start with a simple standalone server which you can handle by forge and upgrade to more servers or better hardware if you need to.

Or do you have 50,000,000 API Requests per Month? It all depends on the Traffic.

1 like
dtirer@gmail.com's avatar

@christopher thanks for the info christopher. Maybe to start, I should just stick with an Application server (maybe scaled up a little higher lik eyou suggested) a DB server, and my workers. This way, I don't have to worry about duplication and such. And if it gets to that point where I need load balancers and such, I could address it then

christopher's avatar

Yeah you dont even need an extra DB Server.

Did you set up an ssh key connection between your web and DB Server? Did you disallowed the MySQL connections from all IP`s? Did you only allow to connect to the DB Server from the Webserver, so that no other can connect to the DB Server? etc. etc.

These are all little things you have to know if you administrate Servers and especially a Cluster Setup.

I dont know why to go for several expensive DigitalOcean / Linode / whatever Servers if you can make your life so much easier to stick just with a good standalone Server.

I mean just a little Example. With Contabo here in Germany you get an ultra powerful Machine with a 2x XEON ( 10 x 2.20 GHz ) and 256GB of RAM for just 109 EUR per Month and for example 2TB SSD for 50 EUR. 40 EUR more you get 20x2,20 real GHz. If you would have a Setup kinda like this with DigitalOcean you would pay around 2500 EUR per month! These are 1606% more costs for you. 1.000 GB Block Storage costs 100$. I get a 1TB SSD for just 30 EUR by Contabo.

Why should i or you do this?

For a simple little dev Server DO is perfect, but not for a (big) production site. The costs are two high in in contrast to a dedicated server. The same thing for AWS. If you dont have Server costs of around ~ 1.000 EUR per Month or extreme high traffic, its not worth it.

2 likes
dtirer@gmail.com's avatar

Well, i did do most of those things with iptables and the MySQL User permissions, and perhaps there's more to it than that.

If I do put it all on one server, would't i still need to secure it myself anyhow? Though I definitely understand the simplicity in scaling up rather than out

Please or to participate in this conversation.