brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 02. 2020

385. CLI로 AWS 관리하기



<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



감사합니다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari