Creating a new EC2 instance
Continuing with AWS Stories let's try to create an instance from the console
You will need to create a new key-pair for associate with (in my case) the ubuntu user on the instance.
You will find a good reference for all the command in this stories here.
aws ec2 create-key-pair --key-name MyKey --query ‘KeyMaterial’ --output text > ~/.ssh/mykey.pem
You have only one chance to save the new key, so save it on a secure place (please avoid any kind of Cloud Computing storage)
In order to use in the future for SSH connections, modify the file privileges to Read Only just for me
chmod 400 ~/.ssh/mykey.pem
Time to create our first Security Group
A security group acts as a virtual firewall that controls the traffic for one or more instances.
aws ec2 create-security-group --group-name fw-kbit-web --description “Default kbit.io Firewall”
Let's define some rules
If you want someone access your service, you should allow it.
In this case, we will enable SSH and HTTP access to everyone. This is not the BEST way to implement a Firewall, we can talk a little more in the near future.
# SSH Rule
aws ec2 authorize-security-group-ingress --group-name fw-kbit-web --protocol tcp --port 22 --cidr 0.0.0.0/0
# HTTP Rule
aws ec2 authorize-security-group-ingress --group-name fw-kbit-web --protocol tcp --port 80 --cidr 0.0.0.0/0
Ready to build our first instance!
Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.
Using everything together
My stories will focus on the AWS Free Tier resources.
In this case, we will bring ONE (count) Ubuntu 14.04 LTS instance (image-id) running a t2.micro instance (instance-type "Free Tier"). Using the resources we already created, let's bring this instance up!
aws ec2 run-instances --image-id ami-0fb83963 --count 1 --instance-type t2.micro --key-name MyKey --security-groups fw-kbit-web
# Run to allocate one IP
aws ec2 allocate-address --domain standard
# Use the output to find the PublicIP and associate with your Instance
aws ec2 associate-address --instance-id i-***************** --public-ip ##.###.##.##
Then, try to connect over SSH, and show to the world your projects!
ssh -i .ssh/mykey.pem ubuntu@##.###.##.##
Keep reading -> AWS Resources