WEB代写|CSCI4145/5409: Compute & Storage


This assignment will measure your understanding of the main compute and storage
mechanisms of our cloud provider AWS. This assignment assures us that you have attended the
tutorials and learned about AWS EC2 and S3, or that you have found some other way to learn
these services.

• You understand how to launch AWS Elastic Compute (EC2) instances

• You understand how to connect to an EC2 instance and provision it to support your web

• You understand the AWS Simple Storage Service (S3) and how to create a bucket

• Experience working with AWS libraries that allow you to perform AWS operations such
as creating a file on S3

• More experience building REST APIs

You will build a web application with any language or framework you like, deployed on an EC2
instance. I will do the same thing! Your application will “introduce” itself to mine by sending a
POST request with some JSON to a URL that begins a chain of events:

1. I will POST to your app with some JSON that gives you data to store in a file on S3

2. Your app will retrieve the data from the POST, and use an AWS library to
programmatically store the data in a file you create on S3

3. Your app will return a 200 status code and JSON that includes the URL for the file you
created on S3

4. My app will download your file and verify that it contains the data I sent you
When you are finished the system will look and function like this:

JSON Your App Sends To My App’s /begin

Your app will send me the following JSON in your POST to /begin

“banner”: “<Replace with your Banner ID, e.g. B00123456>”,
“ip”: “<Replace with the IPv4 of your EC2 instance, e.g.>”

JSON My App Sends To Your App’s /storedata

When you POST to my app’s /begin endpoint with valid JSON my app will immediately interact
with yours by sending a POST with the following JSON to your app’s /storedata endpoint:

“data”: “<A string you must store in a file on S3>”

Your App’s Response To /storedata POSTs:

When my app posts the JSON above to your /storedata endpoint, after you create the file on S3
you must return a 200 status code and the following JSON:

“s3uri”: “<Public URL of the S3 file you created>”

In this class I’m not very concerned about the quality of the code you write, if you write bad
quality code it is you that will suffer in maintaining and supporting it (especially on your
project). I care that you can meet the learning objectives defined at the top of this document,
and I can verify this by simply verifying the correct behaviour of your app’s interaction with

Your submission will be marked by the app that I will write, my app will:

• Listen for requests to /begin, and initiate the check process

• The check process:

1. Records the IP you send to /begin in DynamoDB

2. Sends a POST to your IP’s /storedata endpoint

3. Retrieves the file from the URL you returned

4. Verifies that the file contains the correct string

Your mark is entirely based on the success of steps 1 – 4:

• Your app posts to /begin from an AWS IP address – 50%

• Your app stores a file on S3 and returns the URL when /storedata is called – 25%