The SysGO™ API with GraphQL and Apollo Server
By Matthew Hinton, Senior Developer Systech Corporation is developing a new generation of support technologies for th Read more...
André Brown, our devOps specialist, taught us to love Amazon Web Services. Here’s why. A quick Internet search will reveal a myriad of hosting providers offering an equally large variety of hosting services. At 2wav we use Amazon Web Services (AWS). In this blog post, we will share a few reasons for our choice, and a few more to help you decide if AWS could also be the right choice for you.
The basic building blocks of hosting are the same regardless of who you host with. You’ll need some processing power, memory, and somewhere to store stuff. Amazon’s equivalent of the server is the Elastic Cloud Compute (EC2) instance. An EC2 instance comes in basically two flavors: a VPS/Cloud server, or a dedicated server. You won’t find any shared servers there—you have full control over your virtual server.
Storage on Amazon also comes in two flavors: Elastic Block Storage (EBS), which you can attach to EC2 instances, and Simple Storage Service (S3), which is object-based storage at internet scale.
When it comes to databases, Amazon has perhaps the widest selection of any hosting provider. They offer many traditional relational databases via their Relational Database Service (RDS). They’ve pretty much checked all the boxes for popular databases. And if your favorite database isn’t supported on RDS or otherwise, you are free to install it on an EC2 server. Among the databases they offer are MySQL, MS SQL, Oracle, and PostgreSQL. They also offer a NoSQL database service called DynamoDB.
So far we have seen that Amazon offers all the basic stuff, and some will argue that they aren’t cheaper or faster than most providers, which is true. AWS really shines when you start to need more than basic hosting. Let’s say that you started a small blog, with your blogging software and database service running on one tiny server. Then the internet quickly realizes that you’re the next David Foster Wallace and flock to your blog in droves. Now you need a bigger server, and you need two instead of one, and you have to move your database off the server so you can scale out. Plus, you have a huge international readership, so you need a Content Delivery Network to cache content close to your users.
In the above scenario, AWS offers everything you need. There are EC2 servers that are powerful enough for the folks over at the US Major League Baseball to deploy missile tracking technology to track the flight of every ball hit during a game. There is a load balancing service called Elastic Load Balancer (ELB) to share the incoming traffic between multiple servers, servers which can be automatically created as needed via the AutoScaling service. And Amazon CloudFront is a CDN service with edge locations spread across the globe. Amazon has your viral blog covered.
As a custom software development company, 2wav likes when infrastructure gets out of our way so we can focus on writing code. Therefore, ease of use and simplicity of implementation are important to us. AWS offers us the simplicity we crave in a number of ways.
Spinning up a server on AWS is accomplished via a wizard based interface. You select your operating system, pick a server size (which determines your memory and CPU resources), decide how much storage space you want, make some choices regarding which ports you want accessible, and with a few clicks you have a server up and running. No longer need the server? Three clicks and it’s gone. This ease of use isn’t limited to servers. Launching a production ready database complete with automated backups and replication is just as straightforward.
As we previously pointed out, AWS has a plethora of services, and their offerings grow monthly. Amazon also makes it easy to integrate new services, allowing you to build seamless infrastructure as the needs of your application or service grows. One example of this is the Database Migration Service. Remember your fictitious blog that exploded in popularity? One of the things that you needed to do to scale was to move your database off your application server. To do this on AWS, you launch a new database instance, perhaps using AWS Relational Database Service (RDS), and use the Database Migration Service to move your old database to the new service. You can also clone your instance and launch a new bigger one from the clone. And finally, you could upgrade your original instance to one with more resources. All of this can be done with very little effort and zero downtime.
If you find such each of use tempting, you’ll be happy to know that signing up for AWS is a simple process as well: fill out a form, give them a credit card, respond to an automated verification call, and you’re on your way. You get immediate access to the web based control panel, and you can have a server up and running in minutes.
Though AWS is a large ecosystem in itself, there are still some things that it enables but does not provide. For example, it is possible to do backups of your servers using the storage snapshot feature of AWS. However, Amazon does not provide a way to automate these snapshots. It is left to the user to script any backups that they want. This is not a difficult process, as AWS has APIs for pretty much all their services. With easy to access APIs, a number of third party services have stepped in to fill the gap between what Amazon enables, and what makes life easy. One such service allows clients to automate backup, enforce retention policies, and send notifications on backup success or failure.
There are also third party services that provide enhanced monitoring, much more than Amazon’s detailed but basic resource utilization monitoring. These services allow you to do things like check that your web application is accessible via its URL, that your application process is running, and that your server doesn’t have runaway processes. They can also monitor your AWS services and provide a full view of your entire infrastructure in a single dashboard.
Amazon has also created an extensive network of certified partners called, unsurprisingly, the AWS Partner Network (APN). Whatever your use case or industry vertical, you will find an AWS partner with hardware, software, professional services and experience to assist you in your journey. Need to migrate a complex application with vendor dependencies? Most major vendors are APN Technology Partners. Need advice on HIPPA, PCI, SOX, or ISO compliance? Many APN Consulting Partners stand ready to help you wade through the acronym soup.
No system or platform is usable if you can’t get support for it. AWS provides paid support via subscription that you can purchase when you sign up for an account, or at any point after. They also have an active support forum, monitored and moderated by AWS support staff. Additionally, thanks to the popularity of AWS with startups and small businesses, finding information and getting help troubleshooting is only an Internet search away. You’ll find a StackOverflow or ServerFault thread discussing exactly your issue in next to no time. However, if asking the Internet isn’t your style, AWS’ Enterprise Support package offers fifteen–minute response times for critical issues.
With a large selection of integrated services, an easy to use web interface and powerful supporting APIs, Amazon has built a very solid hosting platform that is hard to ignore. Their constant innovation and thriving third party ecosystem ensure sustainable growth and momentum. All of this makes it easy to setup and grow your business on AWS, with the confidence that it will be around for decades to come.
Given how easy it is to get started, many of our customers even create their own AWS accounts. However, we can also make hosting and support on AWS part of any project, meaning you’ll never need to concern yourself with managing an AWS account. Better yet, because AWS supports consolidated billing over multiple accounts, should you ever want to take over your AWS account, it’s a simple matter of a few clicks. Get in touch if you’d like to learn more about AWS or any of our other specialties.