For many years, our household has relied on an external host that is "somewhere" in the cloud as a place to store a few files, run cron jobs, and generally do functions that are inconvenient or unreliable over the connection to home. One particularly necessary function is to monitor whether the network to our house is still working with a cron job that runs every few minutes, and warn me if our house vanishes from the internet, or if our weatherstation stops updating, or stuff like that. About 10 years ago, I rented a small FreeBSD machine from a cloud provider in San Francisco for about $10 per month, but that was quite expensive for minimal usage. And that was before web-based administration of virtual machines: the service provider configured the machine by hand while I was on the phone, and any interesting configuration change required more phone calls. Then I switched to just using a shared login on a shell machine that my ISP provides, but (a) it is just a user account on a shared machine, so I feel guilty about running cron jobs and having servers on network ports, and (b) the machine is a bit unreliable. And it's insane to have an unreliable machine that's supposed to monitor how reliable something else is.
In spite of the fact that I work in software engineering for storage on large computers, I had actually never really used "the cloud". Strange, isn't it? Another odd disability: in spite of the fact that for over a decade I worked in the same building as the people who invented the relational database, I've never really learned how to use databases, or write good clean SQL. Which all proves that education by osmosis doesn't work.
So I was toying with the idea of renting the cheapest possible machine from one of the large cloud providers: Amazon, Microsoft, or Google. Microsoft is out; I really didn't feel like dealing with administering a Windows machine (I hardly ever use Windows, and I don't administer any Windows servers, and I don't feel that learning that skill would be a good investment. It turns out that Amazon has a completely free machine you can rent (it is weak and small), so I created an account and started setting it up. Then I found that their web UI for administering the virtual machines is not very user-friendly (at least not for *this* user), and that selecting a FreeBSD machine instead of the standard Linux was harder than pulling teeth, so after wasting a few evenings on it, I gave up. Then a few months ago I saw the above post that Google cloud now has FreeBSD available too. And as we all know, Google also offers a free level of small virtual machines. A friend of mine works at Google, among other tasks on improving the usability of their cloud virtual machine management, so I decided why not try it. As a first test, I set up a Linux host, which was completely trivial. Within a few minutes I had it up and running, configured the IP address and DNS, and logged in, and was able to set up a home file system, scp files back and forth, and host very simply web pages. So losing my "cloud virginity" was painless and pleasant. So a week ago, I decided to take the plunge to more adventurous things, and dumped the Linux virtual machine, and got a FreeBSD one instead. Once again, everything went incredibly smoothly. Key management for ssh was easier than pie. And the nice thing is that administration tasks (like installing packages and configuring servers) is identical to my FreeBSD server at home.
The other thing that worked really well: If you have a question, you just google for it, and usually the first hit is some documentation from GCE which shows how to do it. Fundamentally, the whole thing comes with an illustrated manual. To continue my dirty joke of losing my cloud virginity in a pleasant way: this thing has an illustrated kamasutra built in. It's really very fun and easy to do.
Setting up to send and receive e-mails took some doing, one whole evening: They blocks all outgoing and incoming SMTP traffic (a very wise choice, otherwise badly administered hosts turn into open relays and spam bots), so I had to create a free account with an outside mail delivery company, and set up OpenSMTPD: I'm too old to configure sendmail, and ssmtp is too limited for my taste, and requires storing passwords in cleartext, which is simply immoral. But after a few hours, that works good too.
Tonight's first task: Tell everyone how happy I am with my FreeBSD machine in the cloud, and how much fun I'm having with it. Tonight's second task: Get the web server set up on it, and get some of my CGI scripts up and running. I just installed apache, now I'll copy my setups from home, and it will probably just work.