We receive a lot of questions from customers regarding using SmarterMail "in the Cloud." Most often the questions revolve around using Amazon's EC2 platform, but we also get questions about using Microsoft Azure, installing on virtual private servers and more. This blog post will answer those questions, as well as answer a more pertinent one: While it IS possible to install SmarterMail "in the Cloud," the more pressing question is "SHOULD you install it in the Cloud?"
So, to put the initial question to rest, you CAN install SmarterMail on Amazon EC2 as long as you get an elastic IP address that you can map to the ports required for SmarterMail and select an Instance that will give you enough i/o. Regarding Microsoft Azure, it's not recommended since, at least for now, Microsoft doesn't offer a static IP. As for installing on a VPS, that's fine as well and we have countless customers successfully running SmarterMail on VPS instances around the world.
So now that we know that you CAN install SmarterMail in the cloud, let's look at SHOULD you do it. While Cloud computing certainly affords flexibility and scalability, especially when referencing things like EC2 and Azure, those can come at a price. However, there are other things to consider when looking at moving something like SmarterMail to EC2 or other provider.
First things first, a mail server is VERY i/o intensive. It is almost constantly reading and writing data as new mail comes into and goes out of the spool, as people check their email, etc. Unfortunately, spam plays a role in that, but so does a lot of legitimate email. In addition, people generally are checking mail from multiple devices: desktop clients, webmail, smartphones and tablets, etc. When you realize that most mail servers will have thousands of people on them - all doing the same thing at essentially the same time - you can imagine the pounding hard drives take. Cloud providers will generally allow you to set up disks in a way to maximize i/o - EC2 even offers a disk-intensive Instance for applications that do lots and lots of random disk reads and writes - but to efficiently set that up can significantly affect your pricing.
Then there is having to deal with moving a pre-built piece of software to a cloud environment. Ideally, if you're going to use something like EC2 or Microsoft Azure you should your application is such as way as to take full advantage of those platforms. Many of the sites and applications that use these infrastructures were built specifically FOR those infrastructures. Not every application out there fits the Cloud model, either structurally or, more importantly, financially. Scalability is great but just like disk i/o, it can come at a cost.
Regardless of those caveats, we tasked one of our IT administrators with reviewing the costs associated with setting up our own SmarterMail installation across several different services, including Amazon EC2 as well as some VPS and dedicated solutions offered by a few of our partners. Below you will find the results. Now, it's worth mentioning that this is how OUR installation would be managed and set up for the domains and users we have in our SmarterMail installation. Your mileage, and costs, may vary. In addition, information was taken directly from the links provided and while most companies offer discounts for paying in advance, the monthly costs were included for the sake of simplicity.
Base ConfigurationAll of the solutions listed below AT LEAST meet these base configurations, or come close:
Minimum Dual Core 2.4GHz CPU
180GB SATA 6 SSD, 800 mbps, attached - RAID 10 preferred
Nightly backup/snapshots with retention
So, what does this tell us? Well, first of all, prices and configurations vary quite a bit across different providers. Of course, price is dictated by a number of factors: hardware quality, processor and memory type, network speed, quality of service and much, much more. As you can see, pricing for the storage-optimized EC2 instance is substantially more expensive that VPS options from others, much less dedicated servers. All that being said, which option is the one we'd choose?
Asking our resident expert, the IT admin to whom we gave the task, he said the following:
"I'd prefer going with a dedicated server. While this may be a bit counterintuitive to the way the world is heading, the logic is sound: I want to know what my constraints are with regards to configuration. That means I know my memory and disk limits and can plan accordingly. That means I know that if something goes sideways - a spammer gets loose on one of our domains, we're hit with a dDos, one of our accounts gets compromised - I know we won't be facing a huge bill or a sharp increase in our cost due to an increase in data or CPU or memory that blow our base configuration out. Having a certainty gives me more confidence than having the scalability provided by most cloud services and providers."
As for the million dollar question: "Which company would you choose?" He is a bit more coy. "The best hosting company is the best hosting company FOR YOU. There are a lot of great companies out there, it's up to the person doing the research to make the best decision based on their needs and experience. Luckily, I don't' have that worry as we host things ourselves."
So, what are your thoughts? Is "the Cloud" worth it? Are scalability and flexibility worth the potential for cost spikes due to issues that always seem to arise when running a company on the Web?