Amazon AWS vs other VPSs?


#1

I’m wondering what the advantage is of running a Meteor app on Amazon AWS vs other options such as Digital Ocean, Vultr, and Linode. But I’m wondering if there are advantages of AWS that I’m not aware of that would come in handy with Meteor.


#2

VPS is just one of the many amazon services available. So if you want to compare linode or digital ocean to amazon’s vps (ec2) you may or may not find many differences, although technically, there are.

But when you put the whole amazon picture into perspective, you’ll see that they have compartmentalized every single aspect and layer of a scaleable cloud infrastructure.

If you are looking for barebones servers, linode or digital ocean may be more preferable especially due to pricing. Otherwise, you can check out what amazon offers to see if mixing and matching those products would actually pay off compared to low cost vps’.


#3

Did you ever consider dedicated hosting as an option instead of a vps?

https://www.datashack.net/dedicated/

I ran an mmo with an 8 core 12gig machine for $60 a month from those guys, and there are a legion of similar companies.

The only real downside is that if a farmer with a backhoe cuts a fiber, their networks generally aren’t quite as resilient as Amazon or 1&1.


#4

Thanks, @serkandurusoy! Since I’ll be storing all my files on S3, I could probably optimize an EC2 instance to have a very low amount of space for just the web app, like 20GB or so, and spend the money on processing power and RAM.

@jacobin: I’ve got my eye on this, actually: https://www.vultr.com/pricing/dedicatedcloud/

Vultr’s benchmarks are pretty impressive, and they’ve been really reliable so far (I have another VPS with them that runs some PHP/MySQL stuff).


#5

The thing with dedicated hosting companies, is always keep your eye out to upgrade. They tend to heavily discount a box when it’s recycled from another customer. Always too look at the specs on the chipsets. I once went from a 12 core to an 8 core box and almost doubled the performance and saved $20 to boot.


#6

Based on your service and app but maybe those ARM providers may get to be a very interesting solution for serving your meteor app. We do so for a service by now and had no trouble yet.

P.S.: I got that tip from @mquandalle


#7

That actually looks really sweet, especially their S3 compatible service.

However, I couldn’t find any performance metrics on the site for their homebrew boards. Nor does it seem possible to scale ram above 2G. But offloading some service supporting your main app, might be well worth it.


#8

No, you are right, no scalability options other than diskspace or network bandwidth yet. But to say that, we do some testings and had no bad feedback from test users when running apps / services with an access rate per around 15 Users per day.

During the tests we had 2 real live persons and we do some simultanious simulation up to 13 “Users” with casperjs scripts (see How to simulate Meteor clients?)

So as our conclusion: to run small business services on separate (hardware) environments, their service is great. The admin interface is a pleasure and you can create on-the-fly images of your installation. Setting up new nodes from those images is just a click or api-call.


#9

Is it possible for you to run some benchmark suite such as UnixBench on it?


#10

Sure - just enter your list of interest and I will run that for you.

On the other side you just can sign up the service create a server for a few hours and terminate thereafter. You only get charged for the usage - like ???cents - at least no costs.

However you decide, I can assist you if you like.


Update: I usually run Ubuntu Server 14.04 LTS on scaleway - just to know when you deciding benchmark packages


#11

https://www.bitronictech.net/knowledgebase/244/Install-and-Run-UnixBench-on-CentOS-or-Debian-VPS.html

It’s a standard benchmark to exercise unix machines. People use it to compare VPS for example.

http://serverbear.com/benchmarks/vps

It will output a score, and give you an indication of expected throughput relative to other machines. I get the feeling that if it were amazing they would have posted it on their website.

“Look at our custom hardware… what a pretty picture!”


#12

Just running your benchmark process …


#13

First result: 1 parallel test:

    #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
    #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
    #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
    #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
    #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
     ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

    Version 5.1.2                      Based on the Byte Magazine Unix Benchmark

    Multi-CPU version                  Version 5 revisions by Ian Smith,
                                       Sunnyvale, CA, USA
    December 22, 2007                  johantheghost at yahoo period com


    1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

    1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

    1 x Execl Throughput  1 2 3

    1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

    1 x File Copy 256 bufsize 500 maxblocks  1 2 3

    1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

    1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

    1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

    1 x Process Creation  1 2 3

    1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

    1 x Shell Scripts (1 concurrent)  1 2 3

    1 x Shell Scripts (8 concurrent)  1 2 3

    ========================================================================
    BYTE UNIX Benchmarks (Version 5.1.2)

    System: scw-ebfdfc: GNU/Linux
    OS: GNU/Linux -- 3.2.34-30 -- #17 SMP Mon Apr 13 15:53:45 UTC 2015
    Machine: armv7l (armv7l)
    Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
    13:41:15 up 6 min,  1 user,  load average: 1.08, 0.67, 0.31; runlevel 2

    ------------------------------------------------------------------------
    Benchmark Run: Wed Oct 28 2015 13:41:15 - 14:09:33
    0 CPUs in system; running 1 parallel copy of tests

    Dhrystone 2 using register variables        3660151.0 lps   (10.0 s, 7 samples)
    Double-Precision Whetstone                      554.6 MWIPS (10.0 s, 7 samples)
    Execl Throughput                                921.2 lps   (29.9 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks        106819.1 KBps  (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks           29608.9 KBps  (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks        290361.2 KBps  (30.0 s, 2 samples)
    Pipe Throughput                              194227.1 lps   (10.0 s, 7 samples)
    Pipe-based Context Switching                  35266.1 lps   (10.0 s, 7 samples)
    Process Creation                               2709.2 lps   (30.0 s, 2 samples)
    Shell Scripts (1 concurrent)                   1998.0 lpm   (60.0 s, 2 samples)
    Shell Scripts (8 concurrent)                    602.5 lpm   (60.1 s, 2 samples)
    System Call Overhead                         667065.1 lps   (10.0 s, 7 samples)

    System Benchmarks Index Values               BASELINE       RESULT    INDEX
    Dhrystone 2 using register variables         116700.0    3660151.0    313.6
    Double-Precision Whetstone                       55.0        554.6    100.8
    Execl Throughput                                 43.0        921.2    214.2
    File Copy 1024 bufsize 2000 maxblocks          3960.0     106819.1    269.7
    File Copy 256 bufsize 500 maxblocks            1655.0      29608.9    178.9
    File Copy 4096 bufsize 8000 maxblocks          5800.0     290361.2    500.6
    Pipe Throughput                               12440.0     194227.1    156.1
    Pipe-based Context Switching                   4000.0      35266.1     88.2
    Process Creation                                126.0       2709.2    215.0
    Shell Scripts (1 concurrent)                     42.4       1998.0    471.2
    Shell Scripts (8 concurrent)                      6.0        602.5   1004.1
    System Call Overhead                          15000.0     667065.1    444.7
                                                                       ========
    System Benchmarks Index Score                                         261.4

#14

Hm … I just found that benchmark results:

There is an ODROID U2 single cpu scored by 319.

In case that we have (nearly all) such kind of boards, I really have to point out, that none of our hacker boards are running meteor build and serving apps as fast as here on scaleway. Maybe I missed something in the benchmark process?

I now run the benchmark again with 4 and 8 parallel tasks.


#15

Here the results and score on 4 processes:

    #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
    #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
    #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
    #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
    #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
     ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

    Version 5.1.2                      Based on the Byte Magazine Unix Benchmark

    Multi-CPU version                  Version 5 revisions by Ian Smith,
                                       Sunnyvale, CA, USA
    December 22, 2007                  johantheghost at yahoo period com


    4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

    4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

    4 x Execl Throughput  1 2 3

    4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

    4 x File Copy 256 bufsize 500 maxblocks  1 2 3

    4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

    4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

    4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

    4 x Process Creation  1 2 3

    4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

    4 x Shell Scripts (1 concurrent)  1 2 3

    4 x Shell Scripts (8 concurrent)  1 2 3

    ========================================================================
    BYTE UNIX Benchmarks (Version 5.1.2)

    System: scw-ebfdfc: GNU/Linux
    OS: GNU/Linux -- 3.2.34-30 -- #17 SMP Mon Apr 13 15:53:45 UTC 2015
    Machine: armv7l (armv7l)
    Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
    14:14:04 up 39 min,  1 user,  load average: 2.78, 2.47, 1.81; runlevel 2

    ------------------------------------------------------------------------
    Benchmark Run: Wed Oct 28 2015 14:14:04 - 14:42:25
    0 CPUs in system; running 4 parallel copies of tests

    Dhrystone 2 using register variables       14633797.1 lps   (10.0 s, 7 samples)
    Double-Precision Whetstone                     2221.9 MWIPS (10.0 s, 7 samples)
    Execl Throughput                               2991.0 lps   (29.9 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks        169665.5 KBps  (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks           47969.5 KBps  (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks        512827.0 KBps  (30.0 s, 2 samples)
    Pipe Throughput                              669522.4 lps   (10.0 s, 7 samples)
    Pipe-based Context Switching                 189511.0 lps   (10.0 s, 7 samples)
    Process Creation                               8372.6 lps   (30.0 s, 2 samples)
    Shell Scripts (1 concurrent)                   4924.4 lpm   (60.0 s, 2 samples)
    Shell Scripts (8 concurrent)                    636.4 lpm   (60.3 s, 2 samples)
    System Call Overhead                        2382380.2 lps   (10.0 s, 7 samples)

    System Benchmarks Index Values               BASELINE       RESULT    INDEX
    Dhrystone 2 using register variables         116700.0   14633797.1   1254.0
    Double-Precision Whetstone                       55.0       2221.9    404.0
    Execl Throughput                                 43.0       2991.0    695.6
    File Copy 1024 bufsize 2000 maxblocks          3960.0     169665.5    428.4
    File Copy 256 bufsize 500 maxblocks            1655.0      47969.5    289.8
    File Copy 4096 bufsize 8000 maxblocks          5800.0     512827.0    884.2
    Pipe Throughput                               12440.0     669522.4    538.2
    Pipe-based Context Switching                   4000.0     189511.0    473.8
    Process Creation                                126.0       8372.6    664.5
    Shell Scripts (1 concurrent)                     42.4       4924.4   1161.4
    Shell Scripts (8 concurrent)                      6.0        636.4   1060.6
    System Call Overhead                          15000.0    2382380.2   1588.3
                                                                       ========
    System Benchmarks Index Score                                         695.6

#16

now what it means compared to standard 2gb DO like http://serverbear.com/1990-2gb-ssd--2-cpu-digitalocean
have you tried how many concurrent users it can handle for example with some simple subscription ?
are there any limitations regarding mongo, any docker support? :smiley:
no issues running microservices using meteor-cluster ?


#17

Hi @shock - I am sorry, I am not here to sell the scaleway products nor to push them. All I can say is: We are using this currently for small business companies which using a contact management app we made with meteor (a bit of crm, intranet, wiki, slack). Those companies are 3-100 employees but not using 100% all the day this app. Its more used sometimes and from just a few at the same time. So for them, we can serve the meteor app without any headache on the scaleway environment. That is enough performance for a good price.

As I wrote some entries before - we made normal app usage and acceptance tests in front of serving on scaleway with some real life people and some casperjs robots. The results were pretty nice for us and the testers.

On the environment we are using our Meteor universal ARM fork and the included node and mongo from the dev_bundle. Both are equal to the official meteor bundle but just for armvX – its node v0.10.40 and mongo 2.6.7. We made an upscript starter to run our app and the mongo process on startup. Very easy and simple - high performance was not the focus here on that stuff. This is not a solution for everything but may give it a try for some smaller things.

Cheers
Tom

Read more about dev_bundled node and mongo at:



Hosting options able to run multiple instances of meteor
#18

For Scaleway what is the meaning of 200Mbit/s Unmetered bandwidth? Is ARM server good for video streaming?


#19

Hell … :slight_smile: I have no experiences if ARM is good for streaming video.

200Mbit/s does mean you can use bandwidth up to 200MBits, its not priorized, its not managed, it has no protection - similar service as from all other providers in my point of view.

At scaleway you may add: Premium bandwidth with full DDoS protection 0,02 € per GB (see https://www.scaleway.com/pricing/)

We are currently happy with the standard


#20

Thank you for the time and information, Tom. That’s quite invaluable. In terms of the hardware they give you, it’s slightly faster than Razberry PI.

From looking at the total landscape, dedicated hosting is always going to be faster than a VPS. That of course, shouldn’t be a surprise to anyone. The value added is being able to scale quickly, deploying a net instance in a couple short minutes… instead of two days of playing with YUM, IPTABLES and whatnot.