February is the host to Valentine’s Day, a day where lots of companies have huge spikes in sales to help couples celebrate love. While I can talk at great lengths about all the benefits Amazon Web Services (AWS) has to allow you to elastically respond to those holiday spikes in demand, this blog is focusing on a love story instead.
I was first introduced to Amazon Web Services (AWS) in 2011, but I can't claim that it was love at first sight. Although the core components of Amazon's cloud offering were mostly in place by this time, making it a robust and capable service, I had no experience with the paradigms of cloud computing yet, and failed to truly appreciate what was available to me.
I was looking at AWS in the same way I had looked at all the other hosting providers I had been with in the past. When looking solely at price for performance of the underlying compute resources, Amazon's Elastic Compute Cloud (EC2) could not compare with what was available from the plethora of managed, dedicated server providers that had been flooding the market. So I continued to pay for over-provisioned boxes that took days to order and were always one hardware component failure away from an extended service outage. For the time being, this tunnel vision focused on pricing blinded me from seeing the greater beauty of the complete AWS ecosystem.
Getting to Know Each Other
The hands-on nature of maintaining production environments on bare metal can be exhausting, even if the hardware itself is managed for you. Monitoring uptime, testing and rolling out software updates, configuring and testing your backups, reviewing your server logs to make sure anything unexpected hasn't crept up. Suffering from this daily grind is where I started to recognize the value in some of the supporting AWS managed services, such as Relational Database Service (RDS) and Elastic Load Balancers (ELB), which if used would remove the majority of these tasks from your plate.
With EC2 itself, the biggest mental hurdle to get over was to start thinking about the application servers themselves as being ephemeral. Traditional system administrators were obsessed with uptime, with numbers measured in years worn like badges of honor. But that's not elastic, and that's not Cloud. It's not until you start thinking about how to save costs by using services like Auto Scaling to reduce instance count when underutilized, and spot pricing to process less time sensitive jobs when demand is low, and how your applications and deployment processes must be architected to support these workflows, that it really starts to click what the Cloud is all about.
This wasn’t just a one way street either, being a great companion AWS also provides various levels of suggestions on how you can be more secure and save money with underutilized systems. A mutual interest in making both of you more successful, a pillar of any relationship.
Taking the Plunge
As your understanding and comfort grows, you can think about taking the relationship to the next level. Do you want to continue to maintain and enjoy your current relationship, or make a deeper commitment to invest. AWS provides lots of great managed services that let you focus on your core applications if you are willing to use platform services.
There are a lot of factors in a relationship, so you need to think about what is important to you, especially if you want it to last.
The cornerstone of all relationships is trust, and if you're going to trust your data with a Cloud provider, you need to know they take security seriously. AWS makes it clear that security is their primary concern, and they have proactively assembled an impressive list of security and privacy certifications capable of meeting virtually any standards you need to adhere to. Once you fully trust AWS and begin taking advantage of all the value-added services they provide instead of trying to reinvent the wheel, you can focus your efforts on what's most important to your business: your applications and the value they provide to your customers.
But trust is a 2-way street, and AWS demonstrates their trust in you by adhering to a shared responsibility model. This essentially means that they take care of securing all the hardware, but give you full control of securing the software. This means you have full root access to the operating systems running on your instances, even the smallest/cheapest t2.nano instances (which you can run for as little as $0.0065/hour on demand!).
For a relationship to succeed long-term, effective communication is a must, and AWS provides many channels to communicate with its users. First and foremost is the complete and consistent documentation they provide for every service. If you have ever had to suffer your way through using a seemingly popular open source tool's incomplete and error prone documentation, you know how much of a relief it is to have professional quality documentation available across the board.
And for interacting with the services themselves, AWS provides many different ways to suit any user's needs. You'll typically get your feet wet with the easily accessible AWS Management Console, but will soon shift to the AWS Command Line Interface and writing infrastructure provisioning code in CloudFormation as you become a power user. As your application begins to take advantage of AWS directly, you'll start adopting one or more of the AWS SDKs. But the one thing you'll notice as you switch between the tools is how comfortable and familiar they seem. This is because of the consistent style and terminology they all use, with the actions and options needed to perform a task being nearly identical regardless of the method you choose to use.
As AWS grows, they keep their customers in the loop through regular, informative blog posts introducing new features and describing best practices. They also hold frequent summits around the globe and culminate each year with the impressive, education-focused AWS re:Invent conference in Las Vegas. For those who can't attend, they post professionally produced videos for each breakout session to their freely available YouTube channel each year.
But for those moments when self-help is not enough, AWS offers some of the best customer support I've ever had the pleasure of using. Part of the reason they're able to offer this quality of support is because they do charge a fee for all but the basic plan, which only provides direct support in their forums, but having been subjected to some horrible support, bundled for "free" with your plan, from countless companies in the past, I'm more than happy to pay a reasonable fee to know I can depend on getting the help I need from a knowledgeable person in a reasonable time frame. Knowing that not everyone can fork over large sums for this kind of help, they do offer several tiers to cater to anyone's needs, from affordable email-only support for developers, reasonably priced phone and live chat for small businesses, and even the option to have AWS send highly skilled Solutions Architects right to your office on a regular basis for Enterprise support. And if that's not enough, they also foster a robust Partner Network (of which TriNimbus is a Premier Consulting Partner) if you need someone to roll up their sleeves and get their hands dirty, helping you directly with your implementation.
As with any partner in life, you want them to be committed to self-improvement, and not get too comfortable resting on their laurels. With the wide gap that AWS has created between themselves and the rest of the industry, you think it may be reasonable for them to sit back and enjoy the fruits of their labour a bit, but it seems the furthest thing from their mind. AWS continues to improve and innovate at an ever quickening pace, with new services and major improvements to existing services being announced all the time. On more than one occasion, some work I've had on my schedule has been made unnecessary because of a feature AWS released which addresses the need completely. In fact, they improve so quickly that when you think you know a limitation of an AWS service, you still find yourself second-guessing yourself every time discussion surrounding it comes up, because it often happens that it's been fixed or improved since the last time you looked into it.
Getting Your Happily Ever After
Everyone wants a fairy tale ending, but there are no guarantees in life. If both you and AWS keep working at it, your chances for success are high. However, if you have problems along the way in your AWS relationship and need some advice to help you through your troubled times, we at TriNimbus would be happy to help.
In the end, remember it’s better to have loved and lost (and learn) rather than never having loved at all.