AWS代写 | COSC 2737 Assignment 2 – Project

COSC 2737
Assignment 2 – Project

Assessment details
Individual Assignment
Produce 3 identical web servers, each on their own AWS EC2 instance. Produce a load balancer to balance their load.
We will call the load balancer HostA. This server is to balance the 3 servers: HostB, HostC, and HostD, which are
themselves not visible to the outside world, so all access to them is through HostA. Finally produce an extra server
using any AWS technology called HostE, whose access is also restricted through HostA.
1) Paths and access
a) In addition to the load balanced hosts, HostA is to be used to access another site called HostE, but this host is
not part of the load balancing.
i) HostE can be any other web-facing AWS technology. Be creative. The only difference is that it cannot be
accessed from outside – only from HostA, which will log these accesses.
a) If the path HostA/B/path, HostA/C/path, HostA/D/path, or HostA/E/path were to be accessed explicitly, then
the load balancer will display contents of HostB/path, HostC/path, HostD/path, or Hosted/path respectively.
b) If a direct access (eg. hostA/B/path) is attempted and fails, that failure should be reported back by the load
balancer which will log it.
c) Access to HostB-E
i) HostA can be accessed as an IP number, but the other hosts are only known to HostA, and thus only
accessible via HostA.
ii) These are internal IP numbers, so the AWS instances must remain intact throughout the marking period.
iii) Marks are reduced if these hosts become unavailable because the IP changed due to you having to restart
their instances.
2) Load Balancer.
a) All servers are to be fully secured (https) with individual self-signed certificates
b) AWS EC2 elastic parameters to be disabled/fixed for HostA where possible.
c) If a client were to access the system via https://HostA/path then HostB/path, HostC/path, or HostD/path will
be shown in Round Robin load balance sequence.
d) All four servers to contain a file Host/id which will return the identity of the server as a text string.
e) If any of HostB, HostC, or HostD is not answering, then the load balancer should skip it
f) All internal content links to be relative so that the load balancer can change machine if need be.
g) Round Robin allocation between HostB,C,D, with HostC having twice the priority of HostB and HostD.
3) Other requirements
a) /server-info and /server-status should be implemented on HostA on port 8000, and on HostB,C,D on port
8000 as well. (accessed as /HostA/D/server-info, …)
b) All hosts except A to contain a path hierarchy of at least 3 levels for at least 1 file.
c) Content is up to you, except for the paths named above.
4) HostE
a) HostE is to be an AWS-based application of your choice. This application is to be a complete implementation
(e.g. a simple database, filer, or photo album, with expected functionality equivalent to demoing the
b) HostE can only be accessed via HostA, which will log any access that way.
5) Logging
a) All access logging to be done by HostA with separate logs for HostB, HostC, HostD and HostE.
b) Access log of HostA to contain load balancer decisions about the hosts B,C,D and redirection about HostE.
c) All logs to be accessible as HostA/A/logs/A,B,C,D/ on port 8010 and requiring a user/password of
“admin”/”password”. There should be a Unix link for A/logs/A to point to the logs of A. The logs folder should
be readable as a directory as well as its file, but it is to contain a README.html file which will be listed before
the directory listing. This file, which should only apply to this directory, should contain 10 reasons why this
whole dot point is such a bad idea, as well as corresponding recommendations to avoid this in future.