Hosting web servers on the internet can be very challenging for a first-timer without a proper guide. Cloud service providers have provided numerous ways to easily spin up servers of any kind in the cloud.

AWS is one of the biggest and most reliable cloud-based options for deploying servers. Here's how you can get your Linux-based server running in the cloud with AWS EC2.

What Is Amazon EC2?

Amazon Elastic Cloud Compute (EC2) is one of the most popular web services offered by Amazon. With EC2, you can create virtual machines in the cloud with different operating systems and resizable compute capacity. This is very useful for launching secure web servers and making them available on the internet.

How to Create a Linux EC2 Instance

The AWS web console provides an easy-to-navigate interface that allows you to launch an instance without the use of any scripts or code. Here’s a step-by-step guide to launching a Linux-based EC2 instance on AWS. You’ll also learn how to connect to it securely via the console.

Sign in to your existing AWS account or head over to portal.aws.amazon.com to sign up for a new one. Then, search and navigate to the EC2 dashboard.

Search for ec2 in the console

Locate the Launch instances button in the top-right corner of the screen and click it to launch the EC2 launch wizard.

launch new EC2 instance by clicking launch instances

The first required step is to enter a name for your instance; next, you choose the operating system image and version (Amazon Machine Image-AMI) of the Linux distribution you wish to use. You're free to explore other recommended Linux server operating systems other than Ubuntu.

Select instance name and AMI

Choose an Instance Type

The different EC2 instance types are made up of various combinations of CPU, memory, storage, and networking power. There are up to 10 different instance types you can pick from, depending on your requirements. For demonstration, we'll go with the default (t2.micro) instance type.

Select an instance type

AWS has an article on choosing the right instance type for your EC2 virtual machine, which you can use as a reference.

Select a Key Pair

In most cases, at least for development and debugging purposes, you might need to access your instance via SSH, and to do this securely, you require a key pair. It is an optional configuration, but because you might connect to your instance via SSH later, you must add a key pair.

Click to create a new key pair

You can either use an existing key pair or create a new one. To create a new one, click on Create new key pair, and you will see the popup screen below.

Pop up screen where you create Key Pair

Give your key pair a name, and choose an encryption type (RSA is the most popular and recommended option, as it is supported across multiple platforms). You also need to choose a file format (PEM or PPK) for the private keys which would be downloaded on your local machine depending on the SSH client you use.

The Network settings for your EC2 instance come up next. By default, you need to create a new security group to define firewall rules to restrict access to only specific ports on your instance.

Configure network settings for EC2

It is recommended to restrict SSH connection to only your IP address to reduce the chances of your server getting hacked. You should also allow HTTP traffic if you've created the instance to be a web server.

You can always go back to edit your security group rules to add or remove inbound and outbound rules. For instance, adding inbound rules for HTTPS traffic when you set up an SSL certificate for secure HTTP connections.

Storage Settings

By default, EC2 will allocate storage based on the instance type selected. But you have an option to attach an Amazon Elastic Block Storage volume (which acts like an external storage disk) to your instance.

This isn't mandatory, but if you want a virtual disk that you can use across multiple instances or move around with ease, you should consider it. You can now review your instance configuration to be sure everything is set up correctly, then click on the Launch Instance button to create your Linux virtual machine.

You will be redirected to a screen where you have the View Instances button. Click it to see your newly launched instance.

How to Connect to a Linux EC2 Instance

Now that the virtual machine is up and running, you can set up a web server in it. It could be an Apache server, Node.js server, or whatever server you want to use. There are up to four different ways to connect to an EC2 instance, namely:

  • EC2 instance connect
  • Session manager
  • SSH Client
  • EC2 serial console

The most common methods of connection are EC2 instance connect and SSH Client. EC2 instance connect is the quickest and easiest way to connect to your EC2 instance and perform your desired operations on it.

To connect to your Linux instance via EC2 instance connect, select it on the dashboard and click Connect.

Step 1 to connect to EC2

Select the EC2 instance connect tab and click on the Connect button. This would automatically open up a screen that looks like a command-line interface.

successful_ec2_connect

This confirms a successful login to your Linux machine, and you may now begin to set it up for your web server needs. For instance, to create a simple Apache web server, run the following commands:

        sudo apt-get update -y
sudo apt-get install apache2 -y
sudo systemctl start apache2.service

To verify that everything went fine and the Apache server is up and running, check the status using sudo systemctl status apache2.service. If everything is okay, you should have an output similar to the one below:

Apache active and running

Finally, you can test the server by copying the Public IPv4 DNS from the instance properties tab and pasting it into your browser. You should see the Apache demo page.

Apache Demo Page

Congratulations on successfully setting up your Linux server in the AWS cloud. You may now build and deploy your applications to production with it.

Deploying Applications in the Cloud With AWS

Now you can easily set up a Linux web server in the cloud with Amazon EC2. While Ubuntu is the most-used operating system for Linux servers, the process to create an EC2 instance is the same for just any other Linux distribution.

You could also set up different kinds of web servers such as Node.js, Git, Golang, or a Docker container. All you have to do is connect to your instance and carry out the steps to set up your preferred application server.