2017-04-07 08:01:28 : should be committed...
»
Find bdeed64d1aad514261a815d62f14fc54e7a80c6a on GitHub.
should be committed...
I've used Flickr's lovely embedded iframes to serve most of the images on this site, but lately, I've been frustrated with how slowly it loads. On some of the image heavy pages on my [motorcycle](/projects/motorcycle/) project, it's very noticeable. I don't think the slideshow format works well for this site, anyhow, so I wanted to look into how to do my image hosting with `s3`[^s3]. I didn't want to change my own development habits, though, so I turned to my `.htaccess` file, which my host, [ASmallOrange](https://asmallorange.com/), respects, even though I'm in a super-cheap shared VPS with very limited shell access.
```apache
{+RewriteCond %{REQUEST_FILENAME} !-f+}
RewriteCond %{REQUEST_FILENAME} \.jpg$
RewriteRule [-^.*/media/img/(.*\.jpg)$-]{+^.*media\/img\/(.*)$+} https://s3.amazonaws.com/Shackman/samjacoby.com/$1 {+[L]+}
```
That's it! In the `fabfile.py` that I use to manage the deployment of this website, I also added the following:
2015-08-06 11:22:36 : Adding S3 write-up.
»
Find d78e59b3a6b26ca782469b869dffe6de410213a8 on GitHub.
Adding S3 write-up.
Exciting stuff, eh? Never done anything easier. Now, I'm not doing any of the fancy load-balancing or the various bells and whistles that real people probably do, but it's been a pleasant introduction. The Apache docs give the rather stern warning: make sure you don't inadvertently turn your server into a _forward_ server, in which case it can be easily hijacked and redirected to all sorts of nefarious ends.
{+### Serving Images from S3 +}
{+*Added 2015-08-06 10:25:09*+}
{+I've used Flickr's lovely embedded iframes to serve most of the images on this site, but lately, I've been frustrated with how slowly it loads. On some of the image heavy pages on my [motorcycle](/projects/motorcycle/) project, it's very noticeable. I don't think the slideshow format works well for this site, anyhow, so I wanted to look into how to do my image hosting with `s3`[^s3]. I didn't want to change my own development habits, though, so I turned to my `.htaccess` file, which my host, [ASmallOrange](https://asmallorange.com/), respects, even though I'm in a super-cheap shared VPS with very limited shell access.+}
{+```apache+}
{+RewriteCond %{REQUEST_FILENAME} \.jpg$ +}
{+RewriteRule ^.*/media/img/(.*\.jpg)$ https://s3.amazonaws.com/Shackman/samjacoby.com/$1+}
{+```+}
{+That's it! In the `fabfile.py` that I use to manage the deployment of this website, I also added the following:+}
{+```bash+}
{+local("aws s3 sync --delete --exclude '.DS_Store' --acl='public-read' --size-only deploy/media/img/ s3://Shackman/samjacoby.com/")+}
{+```+}
{+The `aws` utility is provided by Amazon—and while the sync function is not as clever as rsync, it works well enough for my purposes.+}
{% spaceless %}
[^service]: Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the privilege.
[^X40]: At any rate, after realizing that it would be a royal pain-in-the-ass to have mod_wsgi compiled against python3, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.
[^option]: There are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. A quick scan shows that this is indeed the case, the [[P] flag](http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p) passes requests through to mod_proxy.
{+[^s3]: Granted, the entire site is static, so it could all be served from s3, but whatever.+}
{% endspaceless %}
{% endblock %}
2015-06-02 19:42:11 : Various tweaks.
»
Find ecb0bb8e7e8a0ac43f9fe423eeab47d49c192fe1 on GitHub.
Various tweaks.
## To those who have much, yet more.
{% mark excerpt %}
Over the past few days, I've been playing around with [Amazon Web Services (AWS)](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms (Rails, Django, NodeJS), as part of my continuing professional-development-program, its clear that I need a bit more than 250MB of space and a restricted [-shell.{{ macros.render_footnote("service", "1") }}-]{+shell.[^service]+}
{% endmark %}
So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS micro-instances, that is, tiny cheap servers. It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [applications]( {{ content_url("/projects/monotype-app.html")}} ) that haven't seen the light of day in some time.
@@ -31,11 +31,11 @@ Nevertheless, ever the modern man, I am a pragmatist--and even if I won't remai
At the moment I've got two micro-instances running--one is serving the static pages, the other, a little [typography training app]({{ content_url("/projects/monotype-app.html/") }}) I wrote a few years ago. That won't last long, because you only get one instance free--but I'll switch the nameservers back to `A Small Orange` soon, while continuing to serve the dynamic content from AWS.
## Reverse Proxies
Now, I've long heard preached that fine practice--the prudent splitting of dynamic and static content. That makes plenty of sense, really. Or plenty of sense if I ever had much content to serve. In practice, though, It's not something I've ever needed. As someone who has only ever placed things online from some reptilian instinct to share, I have never had any problems with server performance--to say the least. For some time, I ran my personal website from an [-[X40]({{ content_url("/posts/arscons.html") }}). Didn't break a sweat. {{ macros.render_footnote("X40", "2") }}-]{+X40.[^X40]+}
There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another server throw up some of the dynamic content. That way, I could have one clean server--where I actually knew what was going on--and pass off all of the messy stuff to other computers that had whatever intricate combination of python and everything else that was necessary.
Enter reverse proxies--which are exactly what they sound like. When you ask for something from a server, it scurries of to yet _another_ server, and fetched it from there, passing it through itself and onward to you. So you never know that what you asked for came from some other place. And the proxying server doesn't have to worry itself about whatever complex things you asked for, fobbing you off on some other machine (in my case, the correct AWS instance). Reverse proxies are what really pushed me to AWS, ultimately, as they're not allowed in the shared hosting environment of [-AWS.{{ macros.render_footnote("option", "3") }}.-]{+AWS.[^option]+}
At any rate, they're dead simple. These are what mine look like.
@@ -47,9 +47,9 @@ Exciting stuff, eh? Never done anything easier. Now, I'm not doing any of the fa
{% spaceless %}
[-{{ macros.render_footnote("service", "1", "Granted,-]{+[^service]: Granted,+} this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the [-privilege.") }}-]
[-{{ macros.render_footnote("X40", "2", "At-]{+privilege.+}
{+[^X40]: At+} any rate, after realizing that it would be a royal pain-in-the-ass to have mod_wsgi compiled against python3, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute [-misery.")}} -]
[-{{ macros.render_footnote("option", "3", "There-]{+misery.+}
{+[^option]: There+} are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. A quick scan shows that this is indeed the case, the [[P] flag](http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p) passes requests through to [-mod_proxy.") }}-]{+mod_proxy.+}
{% endspaceless %}
{% endblock %}
2015-03-02 21:47:19 : Updating layout for new blocks.
»
Find 3a8c3faf3cf2ac8144b1050f4c387551018b567b on GitHub.
Updating layout for new blocks.
- website
track: True
---
{+{% block post %}+}
_In which my adventures in migrating some small-websites over to Amazon's vaunted services are discussed._
## To those who have much, yet more.
@@ -50,4 +51,5 @@ Exciting stuff, eh? Never done anything easier. Now, I'm not doing any of the fa
{{ macros.render_footnote("X40", "2", "At any rate, after realizing that it would be a royal pain-in-the-ass to have mod_wsgi compiled against python3, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
{{ macros.render_footnote("option", "3", "There are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. A quick scan shows that this is indeed the case, the [[P] flag](http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p) passes requests through to mod_proxy.") }}
{% endspaceless %}
{+{% endblock %}+}
2015-02-16 14:28:44 : Adding excerpts to all posts, basically.
»
Find 07a57fe3ebb846616f1ae7d0aa3cfbc0f1920d57 on GitHub.
Adding excerpts to all posts, basically.
## To those who have much, yet more.
{+{% mark excerpt %}+}
Over the past few days, I've been playing around with [Amazon Web Services (AWS)](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms (Rails, Django, NodeJS), as part of my continuing professional-development-program, its clear that I need a bit more than 250MB of space and a restricted shell.{{ macros.render_footnote("service", "1") }}
{+{% endmark %}+}
So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS micro-instances, that is, tiny cheap servers. It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [applications]( {{ content_url("/projects/monotype-app.html")}} ) that haven't seen the light of day in some time.
2013-01-29 18:51:12 : Capatilizing and ironicizing.
»
Find dac435e0445d160129dad0bf25e724eb208001bd on GitHub.
Capatilizing and ironicizing.
## To those who have much, yet more.
Over the past few days, I've been playing around with [Amazon Web Services (AWS)](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms [-(rails, django), and work on developing this site,-]{+(Rails, Django, NodeJS), as part of my continuing professional-development-program,+} its clear that I need a bit more than 250MB of space and a restricted shell.{{ macros.render_footnote("service", "1") }}
So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS micro-instances, that is, tiny cheap servers. It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [applications]( {{ content_url("/projects/monotype-app.html")}} ) that haven't seen the light of day in some time.
2013-01-29 18:40:51 : Start displaying .git tracking information
»
Find cfa46ecb8a0244c3a1d4650cff13dc9294381b44 on GitHub.
Start displaying .git tracking information
- amazon
- ec2
- website
{+track: True+}
---
_In which my adventures in migrating some small-websites over to Amazon's vaunted services are discussed._
2012-12-20 01:14:45 : New words, adding footnote spacing.
»
Find 573d3e2528615765e4137e2bc270cf763a6d65b3 on GitHub.
New words, adding footnote spacing.
{% spaceless %}
{{ macros.render_footnote("service", "1", "Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the privilege.") }}
{{ macros.render_footnote("X40", "2", "At any rate, after realizing that it would be a royal pain-in-the-ass to have mod_wsgi compiled against python3, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
{{ macros.render_footnote("option", "3", "There are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. [-I'm concerned what-]{+A quick scan shows+} that [-experience looks like from-]{+this is indeed+} the [-client, however. Haven't tried.")-]{+case, the [[P] flag](http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p) passes requests through to mod_proxy.")+} }}
{% endspaceless %}
2012-12-17 02:07:23 : Yarbs.
»
Find 0f38dd5b6195c60bf2325cbcd2f59f88ebde1502 on GitHub.
Yarbs.
Exciting stuff, eh? Never done anything easier. Now, I'm not doing any of the fancy load-balancing or the various bells and whistles that real people probably do, but it's been a pleasant introduction. The Apache docs give the rather stern warning: make sure you don't inadvertently turn your server into a _forward_ server, in which case it can be easily hijacked and redirected to all sorts of nefarious ends.
{+{% spaceless %}+}
{{ macros.render_footnote("service", "1", "Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the privilege.") }}
{{ macros.render_footnote("X40", "2", "At any rate, after realizing that it would be a royal pain-in-the-ass to have mod_wsgi compiled against python3, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
{{ macros.render_footnote("option", "3", "There are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. I'm concerned what that experience looks like from the client, however. Haven't tried.") }}
{+{% endspaceless %}+}
2012-12-17 02:04:16 : Yarb.
»
Find 650878d1a7b5aae8bf229466462d03015b368b0f on GitHub.
Yarb.
- ec2
- website
---
[-## To that have much, yet more. -]
[-Over the past few days, I've been playing around with Amazon Web Services [AWS](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms (rails, django), and work on developing this site, its clear that I need a bit more than 250MB of space and a restricted shell{{ macros.render_footnote("service", "1") }}.-]{+_In which my adventures in migrating some small-websites over to Amazon's vaunted services are discussed._+}
{+## To those who have much, yet more. +}
{+Over the past few days, I've been playing around with [Amazon Web Services (AWS)](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms (rails, django), and work on developing this site, its clear that I need a bit more than 250MB of space and a restricted shell.{{ macros.render_footnote("service", "1") }}+}
So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS [-`micro-instances`.-]{+micro-instances, that is, tiny cheap servers.+} It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [-[applications]({{ content_url("/projects/monotype-app.html") }})-]{+[applications]( {{ content_url("/projects/monotype-app.html")}} )+} that haven't seen the light of day in some time.
## To Cloud. Or not to Cloud?
Some part of me--or well, most of me--dislikes the cloud. Yes, it's convenient. Yes, Amazon, Rackspace, and all the rest do a damn-good job of things. Yes, it's the future. Virtual machines are great, make sense, are cheap, effecient, and all the rest. In some way, though, it's equal parts exciting and depressing--there is something lost and something gained, when you spin up an instance from yet-another `dashboard`.
[-I've always found something striking about that bit of magic that comes with connecting a run-down beige box to an ethernet port in the corner of a room, configuring its permissions, and having it flash its small payload across the waves. This _cloud_, for all the hoopla--is just better word offsite refridgerated storage with 24-hour access. Convenient, sure. But it performs the same calculation as gmail, which trades you convenience for freedom. As much as `AWS` is convenient, it's also inherently less-free. -]
{+I've always found something striking about that bit of magic that comes with connecting a run-down beige box to an ethernet port in the corner of a room, configuring its permissions, and having it flash its small payload across the waves. This _cloud_, for all the hoopla--is just better word off-site refrigerated storage with 24-hour access. Convenient, sure. But like gmail, you're trading convenience for freedom. As much as `AWS` is convenient, it's also inherently less-free. Amazon's got your stuff.+}
Nevertheless, {+ever the modern man,+} I am a pragmatist--and even if I won't remain with [-them-]{+Amazon+} forever, I thought I should start figuring out how some their systems work. And what can I say? Right now, I have an insanely-fast, scalable, reliable, customizable server, with root access. I can't really complain.
At the moment I've got two micro-instances running--one is serving the static pages, the other, a little [typography training app]({{ [-content_url("/projects/monotype-app.html/")) }}-]{+content_url("/projects/monotype-app.html/") }})+} I wrote a few years ago. That won't last long, because you only get one instance free--but I'll switch the nameservers back to `A Small Orange` soon, while continuing to serve the dynamic content from AWS.
## Reverse Proxies
Now, I've long heard preached that fine practice--the prudent splitting of dynamic and static content. That makes plenty of sense, really. Or plenty of sense if I ever had much content to serve. In practice, though, It's not something I've ever needed. As someone who has only ever placed things online from some reptilian instinct to share, I have never had any problems with server performance--to say the least. For some time, I ran my personal website from an [-{{-]{+[X40]({{+} content_url("/posts/arscons.html") [-}}.-]{+}}).+} Didn't break a sweat. {{ macros.render_footnote("X40", "2") }}
{+There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another server throw up some of the dynamic content. That way, I could have one clean server--where I actually knew what was going on--and pass off all of the messy stuff to other computers that had whatever intricate combination of python and everything else that was necessary.+}
{+Enter reverse proxies--which are exactly what they sound like. When you ask for something from a server, it scurries of to yet _another_ server, and fetched it from there, passing it through itself and onward to you. So you never know that what you asked for came from some other place. And the proxying server doesn't have to worry itself about whatever complex things you asked for, fobbing you off on some other machine (in my case, the correct AWS instance). Reverse proxies are what really pushed me to AWS, ultimately, as they're not allowed in the shared hosting environment of AWS.{{ macros.render_footnote("option", "3") }}. +}
{+At any rate, they're dead simple. These are what mine look like. +}
{+`ProxyPass /apps/monotype/ http://ec2-109-21-77-32.compute-1.amazonaws.com/monotype/` +}
{+`ProxyPassReverse /apps/monotype/ http://ec2-109-21-77-32.compute-1.amazonaws.com/monotype/`+}
{+Exciting stuff, eh? Never done anything easier. Now, I'm not doing any of the fancy load-balancing or the various bells and whistles that real people probably do, but it's been a pleasant introduction. The Apache docs give the rather stern warning: make sure you don't inadvertently turn your server into a _forward_ server, in which case it can be easily hijacked and redirected to all sorts of nefarious ends.+}
[-There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another set of instances -]
{{ macros.render_footnote("service", "1", "Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the privilege.") }}
{{ macros.render_footnote("X40", "2", "At any rate, after realizing that it would be a royal pain-in-the-ass to have [-`mod_wsgi`-]{+mod_wsgi+} compiled against [-`python3`,-]{+python3,+} while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
{+{{ macros.render_footnote("option", "3", "There are surely some clever ways around this, perhaps using RewriteRule and permanent redirects. I'm concerned what that experience looks like from the client, however. Haven't tried.") }}+}
2012-12-17 01:01:31 : Yo.
»
Find d157311baf072e2a88f8c5b51b6c833621fd4e3f on GitHub.
Yo.
## To that have much, yet more.
Over the past few days, I've been playing around with Amazon Web Services [AWS](http://aws.amazon.com). Now, I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com) for years, but I've been lately frustrated by the limitations of shared hosting. As I play around with different application platforms (rails, django), and work on developing this site, its clear that I need a bit more than 250MB of space and a restricted shell{{ macros.render_footnote("service", "1") }}.
So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS `micro-instances`. It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [-[applications]({{content_url("/projects/monotype-app.html")}})-]{+[applications]({{ content_url("/projects/monotype-app.html") }})+} that haven't seen the light of day in some time.
## To Cloud. Or not to Cloud?
Some part of me--or well, most of me--dislikes the cloud. Yes, it's convenient. Yes, Amazon, Rackspace, and all the rest do a damn-good job of things. Yes, it's the future. Virtual machines are great, make sense, are cheap, effecient, and all the rest. In some way, though, it's equal parts exciting and depressing--there is something lost and something gained, when you spin up an instance from yet-another `dashboard`.
I've always found something striking about that bit of magic that comes with connecting a run-down beige box to an ethernet port in the corner of a room, configuring its permissions, and having it flash its small payload across the waves. This _cloud_, for all the hoopla--is just better word [-for _having-your stuff-elsewhere_.-]{+offsite refridgerated storage with 24-hour access.+} Convenient, sure. But it performs the same calculation as [-`gmail`,-]{+gmail,+} which trades you convenience for freedom. As much as `AWS` is convenient, it's also inherently less-free.
Nevertheless, I am a pragmatist--and even if I won't remain with them forever, I thought I should start figuring out how some their systems work. And what can I say? Right now, I have an insanely-fast, scalable, reliable, customizable server, with root access. I can't really complain.
At the moment I've got two micro-instances running--one is serving the static pages, the other, a little [typography training app]({{ [-content_url("/projects/monotype-app.html/")-]{+content_url("/projects/monotype-app.html/"))+} }} I wrote a few years ago. That won't last long, because you only get one instance free--but I'll switch the nameservers back to `A Small Orange` soon, while continuing to serve the dynamic content from AWS.
## Reverse Proxies
Now, I've long heard preached that fine practice--the prudent splitting of dynamic and static content. That makes plenty of sense, really. Or plenty of sense if I ever had much content to serve. In practice, though, It's not something I've ever needed. As someone who has only ever placed things online from some reptilian instinct to share, I have never had any problems with server performance--to say the least. For some time, I ran my personal website from an {{ content_url("/posts/arscons.html") }}. Didn't break a sweat. {{ macros.render_footnote("X40", "2") }}
There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another set of instances
{{ macros.render_footnote("service", "1", "Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the [-privilege."-]{+privilege.")+} }}
{{ macros.render_footnote("X40", "2", "At any rate, after realizing that it would be a royal pain-in-the-ass to have `mod_wsgi` compiled against `python3`, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
2012-12-16 23:27:40 : Moving along, son.
»
Find c10e3b634f3c104352905531cb4f5ccbd571dc8c on GitHub.
Moving along, son.
- amazon
- ec2
- website
[-exclude: True-]
---
{+## To that have much, yet more.+}
Over the past few days, I've been playing around with [-[Amazon-]{+Amazon+} Web [-Services](http://aws.amazon.com) [AWS].-]{+Services [AWS](http://aws.amazon.com). Now,+} I've been a spectacularly satisfied customer of [A Small [-Orange](http://asmallorange.com),-]{+Orange](http://asmallorange.com) for years,+} but [-have-]{+I've+} been lately frustrated by {+the limitations of+} shared [-hosting (though they provide a nice restriced `shell`), and have recently migrated my sites over to-]{+hosting. As I+} play around with [-the twelve-months free access provided for `microinstances`.-]{+different application platforms (rails, django), and work on developing this site, its clear that I need a bit more than 250MB of space and a restricted shell{{ macros.render_footnote("service", "1") }}.+}
{+So, over this weekend, I migrated my sites over to play around with the twelve-months free access provided for AWS `micro-instances`. It's been reasonably enlightening. I've built up a couple of `Arch Linux` images, my preferred distribution, and played with getting environments spinning up for some [applications]({{content_url("/projects/monotype-app.html")}}) that haven't seen the light of day in some time.+}
{+## To Cloud. Or not to Cloud?+}
Some part of me--or well, most of [-me--inherently dislikes this-]{+me--dislikes the+} cloud. [-There-]{+Yes, it's convenient. Yes, Amazon, Rackspace, and all the rest do a damn-good job of things. Yes, it's the future. Virtual machines are great, make sense, are cheap, effecient, and all the rest. In some way, though, it's equal parts exciting and depressing--there+} is something {+lost and something gained, when you spin up an instance from yet-another `dashboard`. +}
{+I've always found something+} striking about {+that bit of magic that comes with+} connecting a run-down beige box to an ethernet port in the corner of a [-room-]{+room, configuring its permissions,+} and having it flash its small payload across the waves. This _cloud_, for all the hoopla--is just better word for _having-your stuff-elsewhere_. Convenient, sure. But it performs the same calculation as `gmail`, which trades you convenience for freedom. As much as `AWS` is convenient, it's also inherently less-free.
Nevertheless, I am a pragmatist--and even if I won't remain with them forever, I thought I should start figuring out how some their systems work. And what can I say? Right now, I have an insanely-fast, scalable, reliable, customizable server, with root access. I can't really complain.
At the moment I've got two micro-instances running--one is serving the static pages, the other, a little [typography training app]({{ content_url("/projects/monotype-app.html/") }} I wrote a few years ago. That won't last long, because you only get one instance free--but I'll switch the nameservers back to `A Small Orange` soon, while continuing to serve the dynamic content from AWS.
## Reverse Proxies
Now, I've long heard preached that fine practice--the prudent splitting of dynamic and static content. That makes plenty of sense, really. Or plenty of sense if I ever had much content to serve. In practice, though, It's not something I've ever needed. As someone who has only ever placed things online from some reptilian instinct to share, I have never had any problems with server performance--to say the least. For some time, I ran my personal website from an {{ content_url("/posts/arscons.html") }}. Didn't break a sweat. {{ macros.render_footnote("X40", [-"1")-]{+"2")+} }}
There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another set of instances
{{ [-macros.render_footnote("X40",-]{+macros.render_footnote("service",+} "1", {+"Granted, this isn't ASO's problem. They've been absolutely wonderful. I have never interacted with a company--not in tech, not anywhere, with more respnsive customer service. I don't think I've had a ticket go unresponded to for more than fifteen minutes. And I pay $25-a-year for the privilege." }}+}
{+{{ macros.render_footnote("X40", "2",+} "At any rate, after realizing that it would be a royal pain-in-the-ass to have `mod_wsgi` compiled against `python3`, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}
2012-12-16 22:43:18 : Various tweaks and achievements.
»
Find 0ce1450778c3a099367e7b915b19bf1f04591eda on GitHub.
Various tweaks and achievements.
---
title: Amazon EC2 {+Microinstances+}
summary: Succumbing to the siren song of the cloud.
date: 2012-12-09 19:36:01
keywords: amazon, ec2, system administration, web hosting
@@ -9,4 +9,18 @@ tags:
- website
exclude: True
---
Over the past few days, I've been playing around with [Amazon Web [-Services](http://aws.amazon.com).-]{+Services](http://aws.amazon.com) [AWS]. I've been a spectacularly satisfied customer of [A Small Orange](http://asmallorange.com), but have been lately frustrated by shared hosting (though they provide a nice restriced `shell`), and have recently migrated my sites over to play around with the twelve-months free access provided for `microinstances`. +}
{+Some part of me--or well, most of me--inherently dislikes this cloud. There is something striking about connecting a run-down beige box to an ethernet port in the corner of a room and having it flash its small payload across the waves. This _cloud_, for all the hoopla--is just better word for _having-your stuff-elsewhere_. Convenient, sure. But it performs the same calculation as `gmail`, which trades you convenience for freedom.+} As [-happy-]{+much+} as {+`AWS` is convenient, it's also inherently less-free. +}
{+Nevertheless, I am a pragmatist--and even if I won't remain with them forever, I thought I should start figuring out how some their systems work. And what can I say? Right now, I have an insanely-fast, scalable, reliable, customizable server, with root access. I can't really complain. +}
{+At the moment+} I've [-been-]{+got two micro-instances running--one is serving the static pages, the other, a little [typography training app]({{ content_url("/projects/monotype-app.html/") }} I wrote a few years ago. That won't last long, because you only get one instance free--but I'll switch the nameservers back to `A Small Orange` soon, while continuing to serve the dynamic content from AWS. +}
{+## Reverse Proxies+}
{+Now, I've long heard preached that fine practice--the prudent splitting of dynamic and static content. That makes plenty of sense, really. Or plenty of sense if I ever had much content to serve. In practice, though, It's not something I've ever needed. As someone who has only ever placed things online from some reptilian instinct to share, I have never had any problems+} with {+server performance--to say the least. For some time, I ran+} my [-current web-host--[A Small Orange](http://asmallorange.com)-]{+personal website from an {{ content_url("/posts/arscons.html") }}. Didn't break a sweat. {{ macros.render_footnote("X40", "1") }}+}
{+There are a million-and-one ingenious ways to do this and I don't understand half of them. All I wanted was a nice, static server that put pages that I made on the internet, and two, have another set of instances +}
{+{{ macros.render_footnote("X40", "1", "At any rate, after realizing that it would be a royal pain-in-the-ass to have `mod_wsgi` compiled against `python3`, while having some virtualenvs that were still using Django 1.3 & Python 2.6 and so on...absolute misery.")}}+}
2012-12-10 15:41:13 : Exclude these for now.
»
Find 4204a93bcc35d5b8ab63132184e029f408949434 on GitHub.
Exclude these for now.
- amazon
- ec2
- website
{+exclude: True+}
---
Over the past few days, I've been playing around with [Amazon Web Services](http://aws.amazon.com). As happy as I've been with my current web-host--[A Small Orange](http://asmallorange.com)
2012-12-09 19:43:52 : These are not really live, yet.
»
Find c874c158f7c22a7e51f0b3ad5a7bae9b463736a0 on GitHub.
These are not really live, yet.
@@ -0,0 +1,11 @@
{+---+}
{+title: Amazon EC2+}
{+summary: Succumbing to the siren song of the cloud.+}
{+date: 2012-12-09 19:36:01+}
{+keywords: amazon, ec2, system administration, web hosting+}
{+tags:+}
{+ - amazon+}
{+ - ec2+}
{+ - website+}
{+---+}
{+Over the past few days, I've been playing around with [Amazon Web Services](http://aws.amazon.com). As happy as I've been with my current web-host--[A Small Orange](http://asmallorange.com)+}