06-12-2021, 01:51 AM
Hi all! It's been a little bit since I've done a in-depth post, but I am back and I've got hopefully a great writeup for Amazon Web Services (AWS). This is going to be a little bit of a different writeup because of how modular the components for AWS are so I will start with development and end with deployment and scalability. Hopefully this is a great resource for those looking at AWS deployment!
Development:
So the task at hand was to create a new website for work, that was scalable and would be able to host an active Community, eCommerce and Support Services. We began by creating our EC2 which is the server itself. With Amazon EC2 servers, you have a large variety of OSs to select from, starting at Amazon Linux 2 all the way to macOS and Windows. I selected a Linux Ubuntu EC2, as that is what I am the most familiar with on the Linux side and Amazon Linux 2 uses an entirely different package manager and firewall that I've researched and is a little more difficult to deploy and Apache or NGINX server. The next part of our Development Stack was to select storage requirements, networking components, and modular elements such as off server storage, cdn, load balancers etc. On our server, we allocated 30gb to host Wordpress, Apache, PHP 8.0.4 with modules and your basic odds and ends to get the Wordpress Framework up and running. Knowing that we will have customers all around the globe, I created an S3 attachment which in simple terms is a storage block that we are offloading all of our images, videos and other uploadable content. We attached a CDN on the S3, that way we get great SEO management and customers are able to visit our website and have content delivered as quickly and responsibly as possible. With an Amazon S3, you can use their native CDN service Cloud Front, or you can implement CDNs like CloudFlare as well. With the S3, we also have the website backing up to a separate bucket so if things crash, corrupt, or we need to continue to scale we will EASILY be able to scale up our server needs and redeploy with little to no downtime. The next step of our development process here in the next few weeks is to add on a load balancer, which will work with the CDN to help cache and serve assets so that the main server is not taking a total beating all the time, and add on RDS which is external database block storage, so we will be able to keep our database separate from the main server just for additional security and scalability options.
Deployment:
As we neared closer to launch day, it was super simple to port and migrate our domains and secure the server for live use. We had a few issues with Images caching between the CDN and the live version, but things quickly resolved themselves once GoDaddy made the official DNS transfer from our old host to our EC2 deployment. We also used Yoast SEO paired with SEM Rush and our SEO scoring with google is already up 25% from where we are and the organic traffic we are collecting is already paying for itself just optimizing our website, services and frameworks.
Scalability:
If you are looking at scalable development AWS is honestly an amazing route for you to consider especially if you are looking at eCommerce or Community Driven content. We will be able to easily upgrade our services, storage, hardware without a second of down time. There is a cost associated with all of this, but we went from spending about $600 USD a month to spending about $350-400 USD a month, so it is not cheap, but having the modular scalability is going to make it so simple for our business to scale as we continue to grow. I would love to show off specs, but since this is my job I can't share this information, but I can provide a TL;DR.
TLDR:
Deployment: 7/10 - The AWS console is a little intimidating at first, but they provide amazing documentation to get your EC2, IP, Storage and more created and associated together.
Scalability: 10/10 - Everything is separate from the storage to the IP, so you can easily upgrade and plug and play with little to no downtime!
Security: 10/10 - Amazon has thought of everything when it comes to security, so in my case only myself and my counterpart can access our SSH and console and it takes both of us to unlock or reset a password.
Price: 5/10 - Services is not the cheapest, by any means, but you get so much for what you pay for. If you can overlook the cost and/or are using this for clients that have a significant budget, this will be honestly an amazing route for you to investigate.
Overall: 8/10 - I highly recommend this solution, with some exceptions for smaller developers.
Development:
So the task at hand was to create a new website for work, that was scalable and would be able to host an active Community, eCommerce and Support Services. We began by creating our EC2 which is the server itself. With Amazon EC2 servers, you have a large variety of OSs to select from, starting at Amazon Linux 2 all the way to macOS and Windows. I selected a Linux Ubuntu EC2, as that is what I am the most familiar with on the Linux side and Amazon Linux 2 uses an entirely different package manager and firewall that I've researched and is a little more difficult to deploy and Apache or NGINX server. The next part of our Development Stack was to select storage requirements, networking components, and modular elements such as off server storage, cdn, load balancers etc. On our server, we allocated 30gb to host Wordpress, Apache, PHP 8.0.4 with modules and your basic odds and ends to get the Wordpress Framework up and running. Knowing that we will have customers all around the globe, I created an S3 attachment which in simple terms is a storage block that we are offloading all of our images, videos and other uploadable content. We attached a CDN on the S3, that way we get great SEO management and customers are able to visit our website and have content delivered as quickly and responsibly as possible. With an Amazon S3, you can use their native CDN service Cloud Front, or you can implement CDNs like CloudFlare as well. With the S3, we also have the website backing up to a separate bucket so if things crash, corrupt, or we need to continue to scale we will EASILY be able to scale up our server needs and redeploy with little to no downtime. The next step of our development process here in the next few weeks is to add on a load balancer, which will work with the CDN to help cache and serve assets so that the main server is not taking a total beating all the time, and add on RDS which is external database block storage, so we will be able to keep our database separate from the main server just for additional security and scalability options.
Deployment:
As we neared closer to launch day, it was super simple to port and migrate our domains and secure the server for live use. We had a few issues with Images caching between the CDN and the live version, but things quickly resolved themselves once GoDaddy made the official DNS transfer from our old host to our EC2 deployment. We also used Yoast SEO paired with SEM Rush and our SEO scoring with google is already up 25% from where we are and the organic traffic we are collecting is already paying for itself just optimizing our website, services and frameworks.
Scalability:
If you are looking at scalable development AWS is honestly an amazing route for you to consider especially if you are looking at eCommerce or Community Driven content. We will be able to easily upgrade our services, storage, hardware without a second of down time. There is a cost associated with all of this, but we went from spending about $600 USD a month to spending about $350-400 USD a month, so it is not cheap, but having the modular scalability is going to make it so simple for our business to scale as we continue to grow. I would love to show off specs, but since this is my job I can't share this information, but I can provide a TL;DR.
TLDR:
Deployment: 7/10 - The AWS console is a little intimidating at first, but they provide amazing documentation to get your EC2, IP, Storage and more created and associated together.
Scalability: 10/10 - Everything is separate from the storage to the IP, so you can easily upgrade and plug and play with little to no downtime!
Security: 10/10 - Amazon has thought of everything when it comes to security, so in my case only myself and my counterpart can access our SSH and console and it takes both of us to unlock or reset a password.
Price: 5/10 - Services is not the cheapest, by any means, but you get so much for what you pay for. If you can overlook the cost and/or are using this for clients that have a significant budget, this will be honestly an amazing route for you to investigate.
Overall: 8/10 - I highly recommend this solution, with some exceptions for smaller developers.