When I first learned programming in a coding bootcamp, I did 2 projects with other students including those who were taking the frontend course. Back then I knew nothing about AWS, so I had to run the following command whenever my teammates requested.
Plus, I had to leave my laptop in the class so that the teammates were able to test their code without me.
Suppose you are working at a mobile application company like Facebook but all you have as a physical server is a single laptop. What if you spill coffee on it? What if there’s a blackout? It would be a total disaster. Your clients would be mad and might never use your service again. That’s why you need either a proper physical server or a virtual server. This post is about EC2, which is a virtual server that you can use to run applications in AWS.
Amazon EC2(Amazon Elastic Compute Cloud) provide scalable computing capacity in AWS Cloud. It eliminates your need to invest in hardware, so you can develop and deploy applications faster. Amazon EC2 provides many features including:
- Renting virtual machines
- Storing data on virtual drives
- Distributing loads across machines
- Scaling service(ASG)
An instance is a virtual server in the AWS cloud. With Amazon EC2, you can set up and configure the operating system and applications that run on your instance.
Once you launch an on-demand instance, you’ll be charged for what you actually used. Since there’s no long term commitment it has the highest cost. If you need an instance for a short period like when you do EC2 tutorial, this would be the perfect choice.
If it is anticipated that you’re going to use EC2 instance for a long period, you can get up to 75% discount compared to on-demand instance by using reserved instance. Reservation period can be 1 or 3 years. There are 2 types of reserved instance - convertible reserved instance and scheduled reserved instance. With a scheduled reserved instance, you can schedule when the instance runs.
If your priority is cost-efficiency and you don’t need a stable instance, you can use spot instances. Spot instances offer up to 90% of discount compared to on-demand instances. It is the most cost-efficient, but if your max price is less than the current spot price, you are going to lose it. So it is not the best decision if you do critical jobs with a spot instance or use it as a database.
It is a physical EC2 server which is dedicated for you. You can get full control of EC2 instance placement.
Similar with dedicated hosts, with dedicated instance, you will get a dedicated hardware. But you may share the hardware with other instances in same account. And you have no control over instance placement.
By clicking the blue 'Launch Instance' button, you can launch an instance. On the left side, you can see 'Reserved Instances' and 'Dedicated Hosts'.
There are so many types of EC2. You should carefully select the option that suits your needs. I chose 'Amazon Linux 2 AMI (HVM), SSD Volume Type' and 't2.micro' because it is free tier eligible.
Here you can set details of the instance. You can make it as a spot instance or a dedicated host/instance. If you chose neither of them, your instance will be on-demand.
You can set its name.
After configuring security settings(I am going to write another post about it), the instance is ready to run.
Change current directory where you stored your EC2 pem file.
Run the following command(chmod 0400 <your-pem-file>) so that you can access to EC2 server.
You should use your own pem file name and IPv4 Public IP.