brunch

385. CLI로 AWS 관리하기

by Master Seo
aws cli.jpg



<1> 목표

<2> key pair 생성하는 3가지 방법

<3> cli로 s3 관리하기

<4> 스냅셧 생성하기

<5> 보안그룹 관리하기

<6 > 태그로 개발 EC2 중지,삭제 하기

<7> cloudwatch 지표

<8> 스크립트, 보안 자격증명

<9> AWS CLI 참고




<1> 목표


1. CLI로 AWS 관리하기

2. 스크립트로 AWS 관리하기

3. AWS CLI 사용포트 : TCP 443 포트 (https 포트 )



<2> key pair 생성하는 3가지 방법


1

웹 Consol 로 key pair를 만들수 있다.

EC2 > key pairs > create key pair > aaa > 키페어 다운로드 > PC의 Down폴더에 다운로드 된다.


2.

AWS CLI 로 만드는 방법

aws ec2 create-key-pair --key-name bbb


3.

스크립트로 만드는 방법

./create-key.py

// 웹 console에서 ec2 key 가 만들어져 있는지 확인한다.


4.

키페어 삭제하기

./clean-key.py

// 키페어가 3개가 모두 지워진다. 주의.




<3> cli로 s3 관리하기


1. s3 생성

aws s3 mb s3://seo111-s3


2. S3에 파일 올리기

aws s3 cp 111.txt s3://seo111-s3


3. S3의 파일 확인하기

aws s3 ls s3://seo111-s3


4. S3와 파일 동기화 하기

aws s3 sync . s3://seo111-s3





<4> 스냅셧 생성하기


1. 콘솔로 스냅셧 생성하기

EC2 > EBS > Volume > Action > Create Snapshot


2. cli로 스냅셧 생성하기

aws ec2 create-snapshot --description CLI --volume-id YOUR-VOLUME-ID

aws ec2 create-snapshot --description CLI --volume-id vol-01c6b0e60531efec8


3. 스크립트로 스냅셧 생성하기

./snapshot.py




<5> 보안그룹 관리하기


1. 베스천의 보안 그룹 만들기

EC2 > Security group > 보안그룹 이름 : bastion > 만들기


2. cli로 보안그룹 ID 확인

SECURITY_GROUP_ID=`aws ec2 describe-security-groups --filters Name=group-name,Values=Bastion --query SecurityGroups[*].GroupId --output text`

// 보안그룹의 ID를 가져와 변수에 저장하는 명령어


내 PC 공인 IP 확인 http://checkip.amazonaws.com/


cli로 보안 그룹 만들기

형식)

aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 22 --cidr YOUR-PUBLIC-IP-ADDRESS/32

작업)

aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 22 --cidr 52.26.247.226/32


오픈 확인

./bastion-open


닫기

./bastion-close.py




<6 > 태그로 개발 EC2 중지,삭제 하기


1

준비

같은 AWS계정 내에서

명령어 EC2 1대

test EC2 1대


sudo su -


pip 최신으로

pip install pip --upgrade


boto3 설치

pip install boto3


[ec2-user@ip-10-1-11-46 ~]$ python
Python 2.7.18 (default, May 7 2020, 09:20:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>


2

인스텐스 중지 스크립트

vi stop-terminate.py

태그 값을 읽어 중지, 종료


./stop-terminate.py

변화 없다.

태그가 없으므로


3

테스트 EC2

태그생성

stop-terminate


stop

저장


./stop-terminate.py

실행

// Key 값 stop-terminate 의 값이 stop 이면 서버 중지됨


4

태그

값을 terminate 로 변경

저장


./stop-terminate.py

// 키 stop-terminate 값이 terminate이면 서버 종료됨


5

태그가 없는 서버는 매일 저녁 중지??





<7> cloudwatch 지표


cli를 통해 지표 전송


aws cloudwatch put-metric-data --namespace Lab --metric-name YOUR-INITIALS --value 42

aws cloudwatch put-metric-data --namespace Lab --metric-name game-web01 --value 42


확인

cloudwatch ? 측정항목 > 네임 스페이스> 측정 항목 클릭


custom 1분으로 설정




<8> 스크립트, 보안 자격증명


./show-credentials

// access-key와 secret key를 확인할수 있다.

// 보안에 문제 되므로 주의해야 한다.




<9> AWS CLI 참고


https://brunch.co.kr/@topasvga/345



https://brunch.co.kr/@topasvga/386


https://brunch.co.kr/@topasvga/724



https://brunch.co.kr/@topasvga/747




https://brunch.co.kr/@topasvga/872



감사합니다.



keyword
매거진의 이전글381. EC2 웹 서버 이용:미디어 업로드