[AWS] AWS CLI를 이용해 EC2 인스턴스를 생성, 나열 그리고 삭제하기
AWS CLI를 통해서 EC2 인스턴스를 생성, 나열 그리고 삭제를 해보자.
환경
- Ubuntu 18.04
- AWS CLI
- Bash shell(/bin/bash)
과정
- AWS CLI 설치
- 기본 환경 설정(구성 및 자격 증명 설정)
- 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 CLI를 사용하기 위한 유저, 키(access와 secret) 그리고 그룹이 필요하다.
- 유저 생성은 https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/getting-started_create-admin-group.html를 참고
- 키 발급은 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration-creds를 참고
- 그룹 생성은 https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_groups_create.html를 참고
- 테스트를 위해 생성된 유저가 속한 그룹에 모든 관리자 권한(AdministratorAccess)을 부여함
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
: 인스턴스에 사용할 이미지 IDami-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-type
이t2.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]
참고자료
- https://www.osradar.com/install-aws-cli-ubuntu-18-04/
- https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/getting-started_create-admin-group.html
- https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration-creds
- https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_groups_create.html
- https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-services-ec2-sg.html
- https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-services-ec2-instances.html#launching-instances