AWS Research - bounswe/bounswe2022group7 GitHub Wiki

This page contains the research we made on AWS. Details can be found in #142.

AWS

What is an EC2 Instance?

An EC2 instance is described in the Amazon documentation as secure and resizable compute capacity for virtually any workload. Basically, it is a machine in the cloud which can be requested any time. Once requested, users can connect to this machine using their private key and the ssh. Users will be able to interact with the machine using the terminal of the machine.

When requesting the machine, the user can:

  • Choose the type of the machine. Users can choose a machine from different types of machines with different storage, CPU, RAM, GPU capacities.
  • Choose the AMI. AMI is basically the image with which the machine is initialized.

How can we deploy a dockerized app on an EC2 instance?

I found two useful guides for deploying dockerized apps on EC2 instances:

Amazon also has another service called ECS with which dockerized apps can be deployed on the cloud. From the project description, it sounds like we are not supposed to use this. Instead we need to use EC2. Still, more information about the ECS can be found in the following links:

Which EC2 image should be used for deploying a dockerized Flask or Django application?

I am not sure about this questions yet. In the guide 1 linked above, a Linux 2 image is used and docker-related packages are installed after the machine is requested. It is quite likelt that we will do something similar, maybe with another operation system.

How can the application be accessed once it is deployed on the EC2 instance?

Once the machine is created, a public dns will be used to connect to it with ssh. In the "Connecting to Your EC2 Instance" section of the guide 2 linked above, you can see:

  • How to connect to the terminal of the EC2 instace with ssh
  • How to run the docker app
  • How to access the app once it is deployed