Which is best Meteor Server to host the Meteor Applications for Production?

We have developed a meteor application based on AWS AMI https://aws.amazon.com/marketplace/pp/B01KVETP5A?qid=1546527984322&sr=0-1&ref_=srh_res_product_title#pdp-support. We created the Meteor server based on this AMI. We are ready with our application but when try to put our application then we are facing weird issues like server stops responding, nginx crashes, etc. We analyzed it further and also talked to creator of this Server. He tells us that this server is only for development as it has old versions of Meteor and dependencies.

We want to go with latest and stable Meteor server. We read Meteor documentation and found that Meteor community recommends to use the Galaxy https://guide.meteor.com/deployment.html#galaxy. So it is bit costly what we were using on AWS. It is cost around 4.5 times to what we were using on AWS.

A 2 GB RAM machine with outdated Meteor server cost us 0.033 USD per hour and same 2 GB RAM machine hosted in Galaxy will cost us 0.16 USD per hour.

So we are looking for alternatives of Galaxy but without impact on the performance of our apps and also without any downtime.

Can anyone recommend us the best way to get around this problem? Or only galaxy is the way to resolve our issue and it is only best to use.

Thanks

Varun

Hi Varun,
Wanting no downtime at low cost with no setup skills is unsolvable ! If you want to minimize your costs you need to learn how to manage a linux web server and install it from scratch. Then you can buy a cheap virtual machine (like 5$/month droplet on Digital Ocean) and run your meteor app from there (also doable on EC2 on AWS). And later on you can have several machines running it with a load balancer if you really need high availability.

Basically you will need to install meteor, mongodb and nginx for a good setup. And you should try letsencrypt/certbot for the SSL part.

Digital Ocean has great learning resources available online, like this one, a bit outdated but still helpfull : https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx

Good learning !

Thanks Victor. Thanks for replying so quick. SO if we don’t want to install and manage the server inhouse then it is better to go with Galaxy hosting. Is this right? It will have no issues and no downtime. SO what do you suggest?

Thanks
Varun

I haven’t used galaxy but a lot of people do and they seem to like it :slight_smile: . Galaxy take care of many things for you like monitoring and scalling, it’s usually a better solution than self hosting, expecially when you don’t have time to invest on this matter. Galaxy is provided by MDG by the way

There are a couple of options. I can speak for 2 of them:

  • Meteor Galaxy: Bit expensive, but if you want stable and a perfect fit. Then this is the way to go. Also Meteor’s logging is very nice :slight_smile:
  • Heroku using buildpack horse: Cheap option (7,- a month). Very nice for small projects and also a bit more generic for use cases beyond Meteor.
2 Likes

Great thanks you so much I will evaluate your both options to finalize my one. Thank you so much again to help me out in this situation.

1 Like

You could try Waves. It makes all the hard work in your own AWS, so you pay a lot less. It’s designed to work perfectly with Meteor. The service is free for your first app.

You could have no downtime at a very low cost with no skills

waveshosting.com

NodeChef Meteor Hosting is the only unique platform for production Meteor deployments and Managed databases. Also, Priced to fit every budget.

We’re using Waves at production scale and it works beautifully.
My previous attempts:

  • Digital Ocean with MUP: cheap, but without zero-downtime deploy. It worked fine for us for about one year, but then this downside became unsustainable
  • AWS EC2 with MUP Beanstalk: cheap, with zero-downtime but deploys were unstable with SSL certificates (our tests were in March 2018)

After struggling with previous approaches, we considered building our own solution with Amazon Beanstalk, but we soon discovered Waves. To be honest, it seemed too good to be true, but decided to give it a go anyway.

In two days of work, we managed to get it working with the desired setup (simple, but hard to achieve in the previous approaches):

  • zero downtime
  • auto scaling
  • SSL certificates
  • CI integration

Waves basically manage your AWS EC2 instances through a beautiful easy-to-use dashboard. Pretty much any developer can use it, requiring almost zero knowledge of AWS Beanstalk.

I’m super impressed with their product and customer support.
Also, the first project is free (if you have one meteor app, you won’t have to pay for it).

I recommend you giving it a go. It’s awesome!

Congrats @nicolaslopezj and thanks for making such a cool product!

4 Likes

Hey!

Yeah its a pretty steep learning curve to get to production with everything you will need. Here is the list of what I did… in kind of an order.

  • set up amazon ec2 t2.small server running ubuntu
  • install node, pm2, nginx, and mongo
  • install lets encrypt for SSH
  • use PM2 to deploy to server
  • use prerender.io for SEO
  • use mailgun for email services

If you are gong to try to it all yourself and have little experience with server setups and AWS or know what less than half of those things i mentioned is its probably going to take you a few days of headaches and googling but its definitely doable.

I’ve been quite happy with AWS. I f you have any questions shoot me a PM I have most of the links and how to’s I used… but alot of the stuff is kind of customized as it seems most meteor apps are deployed on galaxy cause its so easy.

1 Like

+1 for waves - in the process of transitioning to them right now…

1 Like

HI All,

Thanks for your suggestions. But when I read this articles https://www.erichartzog.com/blog/aws-vs-galaxy-for-meteor-hosting . Then it comes to my mind that I shall use a Ubuntu Server hosted on some Cloud instances like AWS EC2 with Ubuntu OS and then use Meteor-up http://meteor-up.com/ to deploy my Meteor App on AWS EC2 Ubuntu Server . What do you guys suggest? The number one priority for me is the performance and no downtime for my app end users. This is what I want to ensure more than cost. It seems that Galaxy Hosting despite of its high cost it have some bottlenecks as mentioned above in that article.

But I need more expert opinions and suggestions from you guys. Thanks in advance for putting your valuable time in this thread.

Thanks and Regards
Varun

EC2 + MUP still puts the onus on preventing downtime onto you.
If you have the skill and time for that, great!
If not, you need to do a risk assesment to see if a managed service (like Galaxy) is worthwhile

1 Like

There are lots of questions like these and I know the $0.16/hour is kind of a bummer considering the value add. So let me tell you about an alternative, and you can think about whether or not this gives you a better value.

I’ll speak from personal experience that given how much web-connected software I write and how performance sensitive it is, I colocated physical hardware in both a cheap rack provider and in my office.

I install Ubuntu to provision the machines in both locations, use docker from the docker repositories (not the snap, since it’s buggy) and use my Git ssh to setup connectivity. I use a docker stack setup to define traefik as a load balancer, which gets me zero-configuration SSL, and I build a custom docker image that comes with my application bundled inside (using phusion:baseimage + the Debian node installation instructions). Meteor is just one small part of this larger application, and this was a very flexible setup, especially once you realize how horrible nginx really is compared to something modern like traefik. You can manage docker with a visual interface using portainer, but at this point I’ve written my own three-line build scripts to manage that part.

The thing is, the small outlay for the machines, about $350 each for a very, very fast Intel NUC, plus the incredibly cheap colocating and Internet cost (less than $50/mo)… you get a huge amount of value since everything is so much faster.

If you don’t need the speed of physical machines, or you don’t have tons of extra, modern ones like I did, you should host with Hetzner or Digital Ocean to save money.

You don’t want to be in the devops IT business. On the other hand, if this is commercial work for you, this is where a lot of the value is.

1 Like

Can someone help me with issues with meteor 1.9 and the heroku build pack. I have been using this until I updated to meteor 1.9 now I get an error with fibers 1. Which seems to be incompatible with node 12.

When you say Waves is free for one project, you still have to pay the AWS hosting, right? How much does that cost for the zero downtime/auto scaling/SSL/CI deployment you listed above?

Where do you put your DB, or is that on AWS (for low latency) managed by Waves as well?

Is this set-up also ‘highly available’ (distributed across multiple regions)?

Prices are on the AWS website. This is a deploy tool, every other Meteor aspect you will manage from your settings just like with every other host. The entry point in your infrastructure is a load balancer and what servers you put behind the balancer is up to you.

1 Like

As @paulishca said, how much your final setup will cost is entirely up to you. You pay for your AWS resources. If I’m not mistaken, they’re basically an application load balancer and a couple of EC2 instances.

And yes, the setup is distributed for a high availability scenario.

Regarding the DB, we’re using mLab (now Atlas) to provision it.

Has anyone using waves run into this issue? Tutorial: Auto-Scaling Meteor apps with AWS and Waves - #15 by jam

@marceloprado @paulishca sounds like y’all have had the most experience with it. Curious to hear if you were able to resolve.

My guess is waves needs to be updated to support Node 14+ and the new AWS Linux platform.

I’ve used waves for an app previously and it was great. Hoping to be able to continue using it.