[AWS] AWS CLI를 이용해 EC2 인스턴스를 생성, 나열 그리고 삭제하기

AWS CLI를 통해서 EC2 인스턴스를 생성, 나열 그리고 삭제를 해보자.


환경

  • Ubuntu 18.04
  • AWS CLI
  • Bash shell(/bin/bash)


과정

  1. AWS CLI 설치
  2. 기본 환경 설정(구성 및 자격 증명 설정)
  3. EC2 인스턴스 생성, 나열 그리고 삭제


AWS CLI 설치

패키지 업데이트 및 업그레이드

sudo apt-get update -y && sudo apt-get upgrade -y

pip3을 설치

sudo apt-get install python3-pip

AWS CLI 설치

  • aws 명령어를 인식하지 못하면 로그아웃하고 다시 로그인한다.
pip3 install awscli --upgrade --user

AWS CLI 버전 확인

$ aws --version
aws-cli/1.16.310 Python/3.6.9 Linux/4.15.0-72-generic botocore/1.13.46


기본 환경 설정(구성 및 자격 증명 설정)

사전 점검 사항

aws configure

$ aws configure
AWS Access Key ID [None]: [YOUR KEY]
AWS Secret Access Key [None]: [YOUR KEY]
Default region name [None]: ap-northeast-2
Default output format [None]: json

~/.aws/credentials 설정 확인

$ cat ~/.aws/credentials
[default]
aws_access_key_id = [YOUR KEY]
aws_secret_access_key = [YOUR KEY]

~/.aws/config 설정 확인

$ cat ~/.aws/config
[default]
region = ap-northeast-2
output = json


EC2 인스턴스 생성, 나열 그리고 삭제

사전 점검 사항

  • 만들어진 EC2 보안 그룹이 있다고 가정
  • 보안 그룹은 AWS에서 만들 수 있으며 테스트를 위해 만든 보안 그룹의 인바운드는 SSH 포트만 열고 아웃바운드는 모두 열어놓았다.

키 페어 생성

  • 아래 명령어로 만들어진 키 페어는 따로 보관
  • 기존에 있는 키 페어를 사용해도 무관하다. 단, 공개키는 AWS에 저장되어 있고 개인키는 보관하고 있어야 한다.
aws ec2 create-key-pair --key-name TestKeyPair --query 'KeyMaterial' --output text > TestKeyPair.pem

EC2 인스턴스 생성

  • --image-id: 인스턴스에 사용할 이미지 ID
  • ami-082bdb3b2d54d5a19: Ubuntu Server 16.04 LTS (HVM), SSD Volume Type
  • --count: 생성할 인스턴스의 수
  • --key-name: 사용할 키 페어의 키
  • TestKeyPair: 위에서 만든 키 페어
  • --security-group-ids: 보안그룹 ID
aws ec2 run-instances --image-id ami-082bdb3b2d54d5a19 --count 1 --instance-type t2.micro --key-name TestKeyPair --security-group-ids [YOUR SECURITY GROUP ID]

EC2 인스턴스 나열

  • --filters: 인스턴스들을 불러올 때 사용할 필터로 예제에서는 instance-typet2.micro인 인스턴스들만 가져옴
  • --query: 인스턴스들을 불러와서 보여줄때 사용할 수 있는 옵션으로 예제에서는 인스턴스들의 ID만 나열하도록함
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"

EC2 인스턴스 연결

  • 키 파일 권한 설정
chmod 400 TestKeyPair.pem
  • ssh를 이용해 인스턴스에 접속
ssh -i "TestKeyPair.pem" [USER NAME]@[PUBLIC IP or PUBLIC AWS DNS]

EC2 인스턴스 삭제

  • --instance-ids: 인스턴스 ID를 이용해 삭제
aws ec2 terminate-instances --instance-ids [YOUR INSTANCE ID]


참고자료