Douglas Woolley
My Cloud Journey and My Journey Towards AWS
Certification
The executive director for Verizon, Cheryl List, wrote
the following to me in 2016:
- "Your spirit,
determination, and passion for coding has placed you in
a position to move into new things."
Since late 2016, I am now working in Cloud
Computing, utilizing public cloud technologies of Amazon
Web Services (AWS). For the first 3 months of 2017, I
immersed myself into AWS, taking training classes,
experimenting on my free pesonal AWS account, and using
my Verizon-established AWS account . Further, I was certified as both an
AWS Developer (Associate Level) and an AWS Solutions
Architect (Associate Level) in early 2017.
As a result, I received some nice compliments:
- "You are setting a great example as a technology
transformation leader for our team" - Cheryl List,
Executive Director, Verizon
- "Agreed, Nice work Doug! Appreciate your commitment to
your personal development and embracing new technologies
to help support the business." - Kevin Shine, Senior
Vice President, Verizon
In July 2017, I passed the third (and final) AWS
associate level certification exam: AWS SysOps Administrator. It was the hardest of the 3 exams, and thus the many
extra hours of training and studying paid off.
AWS Certification is one of the top paying IT
certifications, as documented by Forbes: $125K.
Some training sites that were helpful to me in achieving
AWS Certification are as follows:
To establish a free account for the first year with AWS
(as I did), visit
https://aws.amazon.com/free/
When you are ready to login, you can go to the Amazon Web
Services (AWS) home page (https://aws.amazon.com)
and click the button at the top right to "Sign In to the
Console". Eventually you can use your customized login URL.
Hosting a Static Website in AWS S3
As a learning project (and a practical project), this
entire site for
DouglasWoolley.com is stored "in the cloud" in Amazon S3
within the DouglasWoolley.com bucket, which was
"transformed" into a static web site and made public. The S3
static website endpoint is
http://douglaswoolley.com.s3-website-us-east-1.amazonaws.com. The user-friendly
domain name (DouglasWoolley.com) was registered using Amazon Route 53, costing
only $12 per year for the DNS registration fee. Next, a
"hosted zone" was created and configured in Route 53 to map
the domain (DouglasWoolley.com)
and the subdomain (www.DouglasWoolley.com)
to the non-friendly S3 website bucket endpoint (http://douglaswoolley.com.s3-website-us-east-1.amazonaws.com)
using alias (A) records. Thus, individuals who
surf on the Internet to one of these two user-friendly
domain names will see website content stored in the S3
bucket for DouglasWoolley.com.
Although the web site is created and matained using
Microsoft's Expression Web 4 software application, I utilize
AWS S3 Console to upload some files to S3. Further, as an
added convenience, when using AWS S3 Console in Chrome
or Firefox browsers only, files and folders
can be dragged from Windows Explorer and simply dropped into
the S3 bucket in a designated folder/area. Alternatively,
especially for mass changes, I
use the
AWS CLI
(Command Line Interface) to synchronize the
local site with the S3 site:
aws s3 sync $LOCAL_FOLDER s3://$S3_BUCKET_NAME/ --delete
Or navigate into local folder and issue command
(where $S3_BUCKET_NAME is something like
douglaswoolley.com):
aws s3 sync . s3://$S3_BUCKET_NAME/ --delete
With all the recent warnings from Browser companies of
the need for websites to use secure HTTP (i.e.
HTTPS), which encrypts data in transit over the internet and
ensures that the website is authentic and safe, I decided to
implement this via AWS, which seems less expensive and
easier than the alternative of doing it externally.To enable
HTTPS on a website, an SSL/TLS certificate is needed. Thus,
I created a certificate via Amazon Certificate Manager (ACM)
for DouglasWoolley.com.
Further, in front of the S3 web site, I established Amazon CloudFront as a managed content
delivery network (CDN) to improve performance and, more importantly for me, to
enable SSL/TLS (HTTPS) using the managed certificate created through
ACM. After establishing the certificate and utilizing it in
CloudFront, which points to the S3 website, I had to update
Route 53 (in the "A" record) to point to CloudFront endpoint
instead of the S3 website endpoint.
In August 2021, I desired to establish a user-friendly
url connected to a secure subdomain static website where I
could deploy a ReactJS application to solve puzzles like the
Rubik's Cube and Sudoku, which would not interfere with the
main DouglasWoolley.com site. To do this, I:
- Created an initial S3 subdomain site of
puzzles.douglaswoolley.com, and made it into a static
website.
- Created new ACM Certificate for both main domain and
subdomain(s) *.douglaswoolley.com.
- Revised CNAME in Route 53 to use this new ACM
Certificate
- Created separate CloudFront distribution for the
subdomain static website content.
- Populated "Alternate domain name (CNAME)
- optional"
with puzzles.douglaswoolley.com
- This was an incredibly
important entry that was initially left out, which
caused no content to be displayed when visiting the
subdomain site (http url gave 403 error, and https
url gave error message "the connection for this site
is not secure."
- Added CNAME in Route 53 for
puzzles.douglaswoolley.com to redirect to the new
CloudFront url
I look forward to the next fun project in learning and
implementing ReactJS to solve mathematical puzzles. I've
written programs in other languages and technologies to
solve these puzzles but now want to do so with ReactJS.
Here is some good documentation
on hosting a static web site in S3:
AWS Tampa Bay User Group Meetup at Verizon Tampa Tech
Center - July 27, 2017
I am behind the podium, next to my co-worker, Darryl,
appearing to the right in the picture. My boss's boss,
Chitra, was one of the main speakers: third to the left of
me.