aws configure
aws s3 ls
aws sts get-session-token --profile ljs --duration-seconds 129600 --serial-number arn:aws:iam::xxxxxxx:mfa/DevOps3 --token-code xxxxxx
aws configure set aws_access_key_id 위 명령어의 output
aws configure set aws_secret_access_key 위 명령어의 output
aws configure set aws_session_token 위 명령어의 output
aws s3 ls
업로드
aws s3 cp /home/log/test.log s3://ljs-bucket/logs/
삭제
aws s3 rm s3://ljs-bucket/logs/test.log
vi pandas_test.sh
#!/bin/bash
docker exec js-jenkins /bin/bash -c \
"{ echo; echo -n 'Time = ' && date '+%Y-%m-%d %H:%M:%S'; } && \
source /opt/conda/etc/profile.d/conda.sh && \
conda activate test && \
python /pandas_test.py" >> /home/log/test.log
echo 'Results saved successfully.'
ubuntu@ip-172-31-30-216:~/onboarding-jenkins$ vi panads_test.sh
ubuntu@ip-172-31-30-216:~/onboarding-jenkins$ ./panads_test.sh
Results saved successfully.
upload: ../../log/test.log to s3://ljs-bucket/logs/test.log
ubuntu@ip-172-31-30-216:~/onboarding-jenkins$ cat panads_test.sh
#!/bin/bash
docker exec js-jenkins /bin/bash -c \
"{ echo; echo -n 'Time = ' && date '+%Y-%m-%d %H:%M:%S'; } && \
source /opt/conda/etc/profile.d/conda.sh && \
conda activate test && \
python /pandas_test.py" >> /home/log/test.log
echo 'Results saved successfully.'
aws s3 cp /home/log/test.log s3://ljs-bucket/logs/
./pandas_test.sh
conda activate test
pip install boto3
vi select_mysql.py
import pymysql
import pandas as pd
import boto3
from botocore.exceptions import NoCredentialsError
connection = pymysql.connect(
host='[EC2 Public IP]',
user='root',
password='[비밀번호]',
database='testdb'
)
cursor = connection.cursor()
cursor.execute("select * from test")
result = cursor.fetchall()
cursor.close()
connection.close()
df = pd.DataFrame(result, columns=['name', 'birthday', 'occupation'])
csv_path = '/home/test_result.csv'
df.to_csv(csv_path, index=False)
aws_profile = 'ljs'
bucket_name = 'ljs-bucket'
s3_folder = 'csv'
session = boto3.Session(profile_name=aws_profile)
s3 = session.client('s3')
try:
s3.upload_file(csv_path, bucket_name, f'{s3_folder}/test_result.csv')
print(f"CSV 파일이 성공적으로 S3로 업로드되었습니다.")
except FileNotFoundError:
print("파일이 발견되지 않습니다.")
except NoCredentialsError:
print("AWS 자격 증명이 올바르지 않습니다.")
except Exception as e:
print(f"오류 발생: {e}")
python select_mysql.py
select_mysql.py 스크립트 수정, RDS 엔드포인트로 연결
import pymysql
import pandas as pd
import boto3
from botocore.exceptions import NoCredentialsError
connection = pymysql.connect(
host='[RDS의 엔드포인트]',
user='admin',
password='[비밀번호]',
database='testdb'
)
cursor = connection.cursor()
cursor.execute("select * from test")
result = cursor.fetchall()
cursor.close()
connection.close()
df = pd.DataFrame(result, columns=['name', 'birthday', 'occupation'])
csv_path = '/home/test_result.csv'
df.to_csv(csv_path, index=False)
aws_profile = 'ljs'
bucket_name = 'ljs-bucket'
s3_folder = 'csv'
session = boto3.Session(profile_name=aws_profile)
s3 = session.client('s3')
try:
s3.upload_file(csv_path, bucket_name, f'{s3_folder}/test_result.csv')
print(f"CSV 파일이 성공적으로 S3로 업로드되었습니다.")
except FileNotFoundError:
print("파일이 발견되지 않습니다.")
except NoCredentialsError:
print("AWS 자격 증명이 올바르지 않습니다.")
except Exception as e:
print(f"오류 발생: {e}")