AWS CLI 설치 방법은 여기에 접속하셔서 해당 os별로 명령어를 입력하시면 됩니다.
이제 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 명령어로 액세스 키, 비밀 액세스 키, 리젼, 파일포맷을 설정합니다.
## 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 함수 실행