sudo hostnamectl set-hostname aws-cli
bash
aws --version
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
/usr/local/bin/aws --version
which aws
aws configure
Access key ID: XXXXXXXXXXXXXXXXXXX
Secret access key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: us-east-1
Default output format [None]: json
aws sts get-caller-identity --query Account --output text
aws ec2 create-security-group \
--group-name roman_numbers_sec_grp \
--description "This Sec Group is to allow ssh and http from anywhere"
Check Security Groups with the following command:
aws ec2 describe-security-groups --group-names roman_numbers_sec_grp
You can check IP Addresses of the Security Group with the following command:
curl https://checkip.amazonaws.com
aws ec2 authorize-security-group-ingress \
--group-name roman_numbers_sec_grp \
--protocol tcp \
--port 22 \
--cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-name roman_numbers_sec_grp \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0
After creating Security Groups, we will create our EC2 instances.
- Latest AMI id should be used.
aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --region us-east-1
aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --query 'Parameters[0].[Value]' --output text
LATEST_AMI=$(aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --query 'Parameters[0].[Value]' --output text)
echo $LATEST_AMI
sudo vim userdata.sh
aws ec2 run-instances --image-id $LATEST_AMI --count 1 --instance-type t2.micro --key-name xxxxxxx --security-groups roman_numbers_sec_grp --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=roman_numbers}]' --user-data file:///Users/ODG/Desktop/git_dir/devenes-cw/porfolio_lesson_plan/week_6/CLI_solution/userdata.sh
aws ec2 run-instances \
--image-id $LATEST_AMI \
--count 1 \
--instance-type t2.micro \
--key-name devenes \
--security-groups roman_numbers_sec_grp \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=roman_numbers}]' \
--user-data file:///home/ec2-user/userdata.sh
aws ec2 describe-instances --filters "Name=tag:Name,Values=roman_numbers"
aws ec2 describe-instances --filters "Name=tag:Name,Values=roman_numbers" --query 'Reservations[].Instances[].PublicIpAddress[]'
aws ec2 describe-instances --filters "Name=tag:Name,Values=roman_numbers" --query 'Reservations[].Instances[].InstanceId[]'
aws ec2 terminate-instances --instance-ids xxxxxxxxxxxx
aws ec2 delete-security-group --group-name roman_numbers_sec_grp