Hosting Custom Websites and Web Apps on AWS
There was a time when the general public considered Amazon an online book store. Then it was an online retailer and marketplace. But by now, many people realize that Jeff Bezos doesn't make his billions selling Make Way for Ducklings and red KitchenAid mixers anymore. Amazon Web Services (AWS), Amazon's cloud hosting service, generates the majority of Amazon's operating profit, and it's growing.
What is AWS?
AWS is a cloud hosting service, meaning, it's a business that rents access to servers and network infrastructure to customers. AWS owns the servers, switches, routers, cables, and the rest of the hardware needed to run websites and applications accessed over the internet. They also own the buildings and security systems that hardware occupies, as well as employs the staff who oversee all of the equipment and make sure everything is in good working order.
In addition, AWS provides various services to its customers, like security services and managed hosting. Managed hosting gives customers access to storage or computing power without all of the maintenance typically involved in keeping hardware up and running. In fact, most of AWS's customers use a service called EC2 (Elastic Compute Cloud). Instead of renting dedicated servers from the company. EC2 allows customers to grow and shrink their server usage depending on how much storage or computation they need at a given time. There are different EC2 products for customers who can anticipate their needs in advance compared to those who need to be able to ramp up or down without advance notice.
AWS also offers extensive training on their services. They promote their Well-Architected Framework to their customers, which encourages cloud application architects to focus on five key areas: Operational excellence, security, reliability, performance efficiency, and cost optimization.
Why did fjorge choose to use AWS?
Initially, like many other development firms and other companies, fjorge hosted the digital products we built "on-prem", or on-premises. We had a closet in the office containing servers, and when we finished work on a feature for a website or application, we would update the server with the latest code and share that with our client or publish it online.
Maintaining servers and network infrastructure on-premises is not a hands-off activity. In order to do it, we needed people on staff who would keep an eye on the hardware, notice if something was broken and fix it, and continually patch software running on the servers alongside the applications we built. Hardware can fail at any time and unexpectedly, so having this type of role on-site is expensive and high-stakes.
Cloud hosting providers take on a lot of the labor and monitoring required to maintain infrastructure. We kept the closet, but increasingly, all of our work ends up on the cloud servers.
But there are other cloud hosting providers, so why AWS?
When fjorge was considering cloud hosting providers, our leadership team was deeply involved with the selection process. fjorge is lucky to have a lot of technical experience represented on our leadership team, and we wanted to make sure we picked a partner who would be able to support our platform-agnostic offerings. We pride ourselves on designing products that best fit our clients' use cases, and those use cases are never the same. One client might need to use Windows and Microsoft products, while another uses all open-source products like Linux.
Azure is Microsoft's cloud hosting provider, and one we considered alongside AWS. In our estimation, it came down to one key element: "AWS did Windows better than Azure did Linux."
With that, fjorge moved forward with AWS as our primary hosting provider for products in active development and the products in production that we maintain.
What about managed hosting providers, like WPEngine?
WordPress is a very popular website development technology, and fjorge does a lot of WordPress development. There are services like WPEngine and others that provide hosting optimized for a particular technology, and some of our development clients choose a service like these to host their production products.
The reason fjorge doesn't use WPEngine as a default is simple: we do more that WordPress builds, and we need to maintain a high level of experience and competency in a broader set of technologies to meet our clients' needs. For example, we recently built a webservice that optimizes schedules for field service technicians using Google OR-Tools, AWS Lambda, EC2, AWS SQS, and so on. If you have a managed service plan with fjorge, you benefit from our in-house skill to provide what you'd otherwise need both managed hosting and a developer to accomplish, regardless of the technology of your website or web app.
How does fjorge train for and use AWS?
AWS's training resources for technologists are excellent and extensive. fjorge encourages our technical staff to pursue and obtain AWS certifications. Currently we have multiple AWS-certified solutions architects, developers, and systems administrators on staff, and the number is growing every quarter.
We organize our accounts using either resource tagging or AWS Organizations. For products we host in our own AWS account, we tag them consistently to allow us to see all resources for a particular product or client. If a client has a separate AWS account, we add them to our AWS Organization which provides centralized management of multiple accounts, keeps resources separate in case our clients decide to move their maintenance in house or to another partner, and allows for centralized billing so that client hosting bills are covered by their managed services agreements.
fjorge has been extremely satisfied with our partnership with AWS. There are constantly new services to try out, and our clients benefit from all of the capabilities that fjorge + AWS provide during development and maintenance.