[AWS] (2/2) AWS CLI 설치 및 인증

최승언·2023년 4월 10일
0

AWS

목록 보기
8/15
post-thumbnail

1. AWS CLI 설치

AWS CLI 설치 방법은 여기에 접속하셔서 해당 os별로 명령어를 입력하시면 됩니다.


2. 환경변수 설정

이제 aws cli 인증 정보 설정해야 한다.

환경변수
(mac, Linux)
~ % export AWS_ACCESS_KEY_ID=<aws access key id>
~ % export AWS_SECRET_ACCESS_KEY=<aws secret access key>
~ % export AWS_DEFAULT_REGION=ap-northeast-2

(윈도우 powershell)
~ % $Env:AWS_ACCESS_KEY_ID=“<aws access key id>”
~ % $Env:AWS_SECRET_ACCESS_KEY=“<aws secret access key>”
~ % $Env:AWS_DEFAULT_REGION=“ap-northeast-2”

AWS CLI
~ % aws configure

aws configure 명령어로 액세스 키, 비밀 액세스 키, 리젼, 파일포맷을 설정합니다.


3. SDK 자동화 스크립트 예제


## ec2 제어
import boto3 # boto3 패키지 가져오기
import sys # 커맨드에서 매개변수를 받기 위한 패키지
import os # os 환경변수 불러오기 위한 패키지

# 호스트의 환경변수 불러오기
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
AWS_DEFAULT_REGION = os.getenv("AWS_DEFAULT_REGION")

client = boto3.client('ec2', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=AWS_DEFAULT_REGION) # ec2 client 객체 초기화

def start_ec2(instance_list): # start_ec2() 함수 정의
    response = client.start_instances(
                                    InstanceIds=instance_list
                                    )
    return response

def stop_ec2(instance_list): # stop_ec2() 함수 정의
    response = client.stop_instances(
                                    InstanceIds=instance_list
                                    )
    return response

def main(): # main 함수 정의
    instance_list = [] # instance 목록

    if sys.argv[1] == "start": # command에 start를 입력하면 start_ec2() 함수 실행
        start_ec2(instance_list)
    if sys.argv[1] == "stop": # command에 stop를 입력하면 stop_ec2() 함수 실행
        stop_ec2(instance_list)

if __name__ == "__main__":
    main() # main 함수 실행
$ python ec2.py start
$ python ec2.py stop

instance_list 변수에 ec2 인스턴스 ID를 넣어서 인자로 'start' 또는 'stop'이라는 문자열을 넣어서 인스턴스를 시작하거나 중지시킬 수 있다.


추가 예제 스크립트


## rds
import boto3 # boto3 패키지 가져오기
# 호스트의 환경변수 불러오기
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
AWS_DEFAULT_REGION = os.getenv("AWS_DEFAULT_REGION")
client = boto3.client('rds',aws_acceess_key_id=AWS_ACCESS_KEY_ID, 
aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=AWS_DEFAULT_REGION) # rds client 객체 초기화
def start_rds(dbinstance): # start_rds() 함수 정의
 response = client.start_db_instance(
 DBInstanceIdentifier = dbinstance
)
 return response
def stop_rds(dbinstance): # stop_rds() 함수 정의
 response = client.stop_db_instance(
 InstanceIds = dbinstance
)
 return response
def main(): # main 함수 정의
 instance = 'a' # 종료할 instance 목록 (변수
 if sys.argv[1] == "start": # command에 start를 입력하면 start_rds() 함수 실행
 start_rds(instance)
 if sys.argv[1] == "stop": # command에 stop를 입력하면 stop_rds() 함수 실행
 stop_rds(instance)
if __name__ == "__main__":
 main() # main 함수 실행
profile
작업하다가 막힌부분을 기록하는 곳.

0개의 댓글