Last year before the craziness of our pandemic I went on a cruise for the first time in my life. It was really nice being able to relax and go for a swim in the ocean. The first beach is from the cruise line’s private island and the second one is a public beach in Nassau.
Author: murphyslaw4267
Local Ohio BBQ
Here’s a Cactus from Phoenix
Delicious Ribs
My cousin’s creation:
A Ribeye
From Cheddar’s Scratch Kitchen. It was delicious.
Happy Fourth of July!
Improved Website
The web-server configuration has changed yet again. It used to be highly available with scaling policies and everything but it came at a cost. First of all it carried a price tag, I was using AWS EFS to distribute the files to multiple servers. EFS is a great product but for my use it was also slow. The time to first byte was several seconds. I tried to improve this through memcached and NFS caching utilities but the lowest I got it to was 2.5 seconds to start serving the first byte. Now it is down to half a second and feels much snappier. It is on a single server now with backing EBS as the drive. I’m still running memcached on a seperate instance through AWS’s Elasticache offering. I’m really tempted to stand up an instance on Vultr or Digital Ocean to see how the speeds compare. I will be sure to post the results.
Photogenic wings
Moved to AWS!
This website is now being hosted on a cluster of servers within AWS. I definitely use this website as an excuse to learn more about infrastructure. I’ll post more about it soon, but currently we are fault tolerant. We are using two EC2 instances running apache, EFS holding the files, and an RDS instance running the database. This is behind an Application Load Balancer and the javascript and pictures are being served over CloudFront. It’s a little slow though for me, I’m trying to figure out why. If you aren’t logged in you’ll have a better experience. I’m gathering metrics on load times to help see what the story is.
SCript Race: Azure VS AWS
Let us compare the data I collected from both my scripts I made for AWS and Azure. Each script accomplishes the same things:
- Deploy two Windows Server VMs from the providers official image repository
- Deploy one internet facing load balancer with the two servers behind it on port 80
- Use the providers built in orchestration method to install IIS and place a simple webpage in the root web directory
- Validate the website is being served over the internet through the Load Balancer
Here is a comparison of the common tasks:
Here is a table of all the data:
Azure | |||
Task | Seconds | Duration in Seconds | Duration in Minutes |
Script Start | 0 | 0.00 | |
Create Load Balancer | 14 | 14 | 0.23 |
Create VM1 | 176 | 162 | 2.70 |
Install IIS On VM1 | 816 | 640 | 10.67 |
Deploy Website on VM1 | 878 | 62 | 1.03 |
Add VM1 to LoadBalancer | 954 | 76 | 1.27 |
Create VM2 | 1115 | 161 | 2.68 |
Install IIS On VM2 | 1485 | 370 | 6.17 |
Deploy Website on VM2 | 1547 | 62 | 1.03 |
Add VM2 to LoadBalancer | 1601 | 54 | 0.90 |
Website Available | 1602 | 1 | 0.02 |
Script Complete (Total) | 1602 | 1602 | 26.70 |
AWS | |||
Task | Seconds | Duration in Seconds | Duration in Minutes |
Script Start | 0 | 0.00 | |
Create Load Balancer | 8 | 8 | 0.13 |
Create VM1 | 15 | 7 | 0.12 |
Create VM2 | 21 | 6 | 0.10 |
Assign SSM IAM Role on VM1 | 37 | 16 | 0.27 |
Assign SSM IAM Role on VM2 | 41 | 4 | 0.07 |
Deploy System Management Agent on VM1 | 167 | 126 | 2.10 |
Deploy System Management Agent on VM2 | 170 | 129 | 2.15 |
Execute Install IIS & Website On VM1 | 172 | 2 | 0.03 |
Execute Install IIS & Website On VM2 | 173 | 1 | 0.02 |
Add VM1 to LoadBalancer | 175 | 2 | 0.03 |
Add VM2 to LoadBalancer | 177 | 2 | 0.03 |
Website Available | 260 | 83 | 1.38 |
Script Complete (Total) | 260 | 260 | 4.30 |
Certain tasks in AWS do not wait for their execution to complete. Checks were added in the script and the duration column indicates which were essentially run in parallel. |
As you can see from the data above, in terms of automation AWS is much faster.