Recently I had to setup a web server for a client using Canadian cloud hosting provider Cloud A. This was my first time using them, so for anyone else who may be considering Cloud A, I thought I’d share my experience with them so far. (Overall, it’s good…)
Cloud A’s interface is generally similar to other cloud server providers, like Linode or Digital Ocean. The product lineup is also generally similar, except for some additional things including a variety of devices-as-a-service, like cloud routers, firewalls, etc. Haven’t tried those yet, but it sounds cool. Price-wise Cloud A is in the same ballpark, except a few dollars more than Linode/DO (plus they bill in CAD dollars, so take that into account).
Like other providers, Cloud A has a handful of images you can use to spin up server instances. Although I haven’t tried it, they also offer fully-licensed Windows Server images at no extra cost, which is pretty cool. I haven’t seen any other cloud providers who do that…. typically Windows servers cost a lot more.
They also claim you can bring your own OS and/or custom image, but I wasn’t able to figure out how to do that (I haven’t tried asking their support yet… but if the need arises and I do I’ll update this post with the outcome of that).
Spinning up a Debian server
In my case, I needed to setup a Linux box for a pretty standard LAMP stack. Lately I’ve been using Debian 8 a lot, but unfortunately the only Debian image Cloud A offers is Debian 7… that was the first bummer I’ve run into so far with Cloud A.
It wasn’t a deal breaker, so I went ahead with the Debian 7 image. That only took about 30 seconds or so to be created, which is great. However there were a couple of weird things in their initial Debian setup that I had to solve… I’ll share those here in case anyone else run into the same issues.
First odd thing is — you can’t SSH in as root, you have to login as user “debian”. (I know Ubuntu has gone the same direction lately, but I don’t remember Debian 7 coming out of the box like that.) That’s not a problem (in fact, I think it’s recommended) as long as you can use sudo… but right out of the box sudo wasn’t working — it was giving me an “unable to resolve host” error.
To fix sudo you need to make sure your /etc/hosts file is correct. Mine wasn’t. Unfortunately you can’t change /etc/hosts WITHOUT sudo, which makes for a nice catch-22. The solution, then, was to use Cloud A’s web console to reboot the server into recovery mode, then fix /etc/hosts, then reboot.
Also, if for any reason you need to be able to SSH in as root instead of “debian” + sudo, just do the following:
cp /home/debian/.ssh/authorized_keys /root/.ssh/
And since they don’t tell you the root password they’ve set for you, now might also be a good time to do:
… and set it to something of your own choosing.
Another catch for me was, although I was okay with using Debian 7 instead of 8, I did need PHP 5.6 in my LAMP stack. Wheezy only comes with PHP 5.4 by default, so to load 5.6 I had to do the following:
echo "deb http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list echo "deb-src http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add – sudo apt-get update apt-get install php5-cli php5-fpm
If, like me, you get an error when you do apt-get update that looks like this:
GPG error: http://packages.dotdeb.org wheezy-php56 Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY E9C74FEEA2098A6E
… then you’ll have to add that public key manually:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9C74FEEA2098A6E
I also needed MySQL 5.6 instead of 5.5 that comes with Wheezy, so for that I had to do:
echo "deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6" >> /etc/apt/sources.list.d/dotdeb.list echo "deb-src http://repo.mysql.com/apt/debian/ wheezy mysql-5.6" >> /etc/apt/sources.list.d/dotdeb.list wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add – sudo apt-get update apt-get install mysql-server-5.6
The way you setup networking through Cloud A is a little different from other providers. For example, it appears that all ports are blocked by default until you manually open them by creating rules in their web interface. It’s probably more secure that way, but an extra step to be aware of.
Overall I’m happy so far with the overall experience at Cloud A… everything is working fine and the speed is good. Will be interesting to see how it goes over the next few months and beyond… I’ll try to post an update here at some point down the line.