티스토리 뷰

AWS

S3와 Aurora MySQL 연동하기

김종현 2022. 5. 7. 14:27

AWS의 스토리지 서비스인 S3와 관계형 데이터베이스 서비스인 Aurora MySQL를 연동하여
S3 버킷에 있는 CSV 파일로 Aurora MySQL에 대량 insert 하는 방법과
Aurora MySQL에 저장된 데이터를 S3 버킷에 CSV 파일로 추출 하는 방법에 대해 알아보자.

 

순서대로 진행하면 문제없이 진행할 수 있다.

환경

  • Amazon RDS Aurora MySQL (Private - us-east-2)
  • Amazon EC2 (Private - us-east-2)
  • Amazon S3 (Private - us-east-2)

IAM Role 생성

Aurora MySQL에서 S3에 파일을 읽어드리고 쓰기위해 AmazonS3FullAccess 정책을 가진 Role을 생성해준다.
그리고 위사진의 ARN값을 복사해두자.

파라미터 그룹 생성

default 파라미터 그룹은 수정이 불가능 하기 때문에 새로운 파라미터 그룹을 생성해준다. 이때 파라미터 그룹을 유형별로 각각 생성해줘야 한다. DB Cluster Parameter Group, DB Parameter Group

파라미터 그룹에 IAM Role 부여

DB Cluster Parameter Group에 들어가서 aws_default_s3_role 이라는 파라미터에 위에서 복사한 ARN 값을 추가해주자.

Aurora MySQL 생성

Aurora MySQL을 생성할 때 위 사진의 화면이 있는데 파라미터 그룹은 위에서 생성한 그룹으로 지정해주고 생성하자.만일 기존에 생성되었으면 파라미터 그룹을 변경해주면 된다.

IAM Role 부여

클러스터 상세페이지를 가면 하단에 위와같은 화면이 있는데 위에서 생성한 Role을 부여해주자. 그러면 잠시 후 상태가 활성 될 것 이다.

S3 버킷생성 및 테스트 csv파일 생성

 

테스트 할 csv파일을 생성하여 버킷에 올려두자.

VPC 엔드포인트에 S3 서비스 추가

 

VPC -> 엔드포인트 > 엔드포인트 생성을 클릭하여 RDS와 S3간 내부통신을 하기위해 VPC 엔드포인트를 생성하자.

S3 버킷에 있는 CSV 파일로 Aurora MySQL에 대량 insert

LOAD DATA FROM S3 's3 엔드포인트' INTO TABLE 테이블이름 
FIELDS TERMINATED BY ',' (csv는 각 로우별 데이터 구분자가 쉼표이므로 쉼표 작성) 
LINES TERMINATED BY '\r\n' (MySQL은 개행처리를 '\r\n' 으로함)

Aurora MySQL에 저장된 데이터를 S3 버킷에 CSV 파일로 추출

SELECT * FRON 테이블 
INTO OUTFILE S3 's3 엔드포인트'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'

참고

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.html
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.LoadFromS3.html
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.SaveIntoS3.html

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함