<div dir="ltr">Thanks Greg. I'll probably choose services like Digital Ocean for learning.<div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Sep 13, 2013 at 1:48 AM, Greg Hendershott <span dir="ltr"><<a href="mailto:greghendershott@gmail.com" target="_blank">greghendershott@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Racket in general -- and a small server written in it -- runs fine<br>
even on Amazon EC2 "micro" instances. They have enough RAM. They<br>
aren't very fast, but the CPU can "burst" for ~10 seconds, which for<br>
many server roles is all you need.<br>
<br>
If you wanted a full-time offsite machine, I'd suggest something like<br>
Digital Ocean as being more affordable than even a "reserved instance"<br>
at Amazon. They start at $5/month[1].  For example recently I've been<br>
experimenting with making such a machine my main dev box and ssh-ing<br>
into it from whatever -- from a laptop, from an iPad with ISSH, etc.<br>
If you're comfortable with tmux and emacs, this works surprisingly<br>
well. Of course you could also run a server like this from your home.<br>
Different pros and cons WRT to reliability, power, cooling,<br>
maintenance, bandwidth, physical security, digital security, and so<br>
on.<br>
<br>
However: Neil's advice (as usual) is excellent about making things as<br>
static as possible. In fact you can take this even further and make<br>
your entire site static[2], and as result host it on e.g. GitHub<br>
(free) or Amazon S3 (inexpensive). That way, when one of your blog<br>
posts makes the front page of HN, handling the brief traffic surge<br>
won't be your problem. :)<br>
<br>
So when you want a production server to "just work", that can be a<br>
better way to go. Of course when your main goal is to learn hands-on<br>
it's better to roll your own.<br>
<br>
[1]: <a href="https://www.digitalocean.com/" target="_blank">https://www.digitalocean.com/</a><br>
[2]: Although the site is static files on the server, it can still<br>
have some "dynamism" from JavaScript running on clients.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Tue, Sep 10, 2013 at 10:52 PM, Neil Van Dyke <<a href="mailto:neil@neilvandyke.org">neil@neilvandyke.org</a>> wrote:<br>
> Ben Duan wrote at 09/10/2013 10:33 PM:<br>
><br>
>><br>
>> I'm buying a VPS to build my personal blog and learn Racket through the<br>
>> process. But I don't know how much RAM do I need. Do you have any<br>
>> suggestions? And any other suggestions on how to choose a VPS for Racket?<br>
>><br>
><br>
> You can determine this empirically.<br>
><br>
> Before you do, consider how you want to architect and deploy your app.<br>
> Personally, I often like to start by making as much as possible static files<br>
> that could be served by Apache or nginx (or a CDN), and then having deployed<br>
> Racket run only for the parts that need to be dynamic (using my bare-bones<br>
> "scgi" PLaneT package, or the Racket Web Server if I need continuations).  I<br>
> also like to have Racket generate the static HTML files (using my<br>
> "html-writing" and "html-template" PLaneT packages), as well as to prepare a<br>
> staging directory to "rsync" to the server for deployment.<br>
><br>
> Also, a big advantage of the cloud is that you can scale up easily.  For<br>
> example, you could start with an Amazon EC2 free instance with Debian<br>
> GNU/Linux, deploy your app to it, run JMeter against it with the peak load<br>
> you want to support, and see whether you need a bigger instance.  If you<br>
> don't have anything non-stock on the instance other than what you "rsync"<br>
> from a staging tree, upgrading instances is even easier.<br>
><br>
> Neil V.<br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> ____________________<br>
>  Racket Users list:<br>
>  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br></div></div>