Audience - Windows users wanting (FREE for 12 months) AWS remote Windows instance to host web pages
This blog post is only about guidance on steps to follow, it will be up to u to research each step and build out ur own system...at some point I will include a full blown tutorial on this….point now is to get u started to end the procrastination of getting off the starting blocks...to point u in a direction. But be advised that hard work and lots of googling is involved.
What we will be building - a remote windows server that we can communicate with and that can host web pages
For the beginner interested in quick results my suggestion is a windows platform with a free AWS windows cloud server. Otherwise the Linux alternative is not as user friendly and forces u to use a command prompt much of the time. Linux involves a whole different learning curve and not advantageous for the beginner wanting instant results. U have a lot of time later on to build on those skills as time permits for the longer learning curve.
Following these steps u can be up and running in a day or two.
https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html
https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html
Are we procrastinating about getting something up and running? Follow these quick and simple steps in order to share ur recent web creation with ur peers. Then u can become more sophisticated later. Below I expand briefly on each step.
First, before getting started…..which platform to use...windows or linux
Windows is much more intuitive for the beginner vs linux which has a longer learning curve and relies on a command line prompt….ie windows is much easier for the beginner
Once signed up for free tier aws we then config aws EC2 for windows - we will be owning an instance of windows on someone else's computer (the remote AWS server). U will choose a windows ami, then build security layer then understand how to communicate with ur server from the outside. Finally we configure both AWS and Apache to host our pages.
First thing to do once we get our instance created is to config it to give, first the EC2 instance permissions to certain ports and then secondly permissions for the windows firewall on EC2 to use the inbound and outbound ports. DON’t SKIP THIS STEP because we need to rdp into our remote instance and that remote instance must have permission to allow 2 way communication. At minimum EC2 must permit traffic to and from ports 80 and 3389
Rdp after config part - Windows Remote desktop uses port 3389
Once aws is configed for security and windows firewall u will then need to download rdp to communicate with the remote virtual windows server instance. With RDP we can see our system and transfer files to and from. Note that in order to use rdp we must give permission to EC2 via security layer over port 3389 and enable windows firewall to use 3389 too.
Next step is to download Apache24, listen to port 80 and config the httpd file where we can set up virtual hosts to access DNS names and also we can create SSL for each host
Next step - configuring Route 53 and DNS or use localhost to start with. Go back to AWS route 53 and be sure ur dns names are configed to the ip address that ec2 provides. We create a name server for our domain name in route 53, then apache virtual host identifies the domain name. Then we create an A file in route 53. The domain part connects to our dns service like godaddy and the A file is where we reference our ip address that gets picked up by apache 24 which listens for requests to our domain
Now that these above 5 steps are finished we have the basic server available to host our web pages
Now back in apache24 we need to tell apache that there is an ip address to connect our pages to. There is a htdocs folder where index.html lives for each page.
I am sure by now u have many questions so u need to carefully research each section above. I will provide more guidance later in a tutorial but for now this is ur introduction to the ec2 windows server and the apache web server.
Happy coding!!