티스토리 뷰
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
'AWS' 카테고리의 다른 글
Solutions Architect - Associate (SAA-C03) 자격증 취득 및 시험공부법 (4) | 2022.12.14 |
---|---|
회사에 매달 청구되는 aws 비용을 1,000 달러이상 절감했던 이야기 (8) | 2022.07.05 |
MFA (Multi Factor Authentication) 적용 및 Authenticator 계정 백업 (0) | 2022.04.17 |
Amazon EventBridge + AWS Lambda를 이용하여 EC2, RDS를 원하는 시간대에 시작, 중지하기 (0) | 2022.03.09 |
AWS X-RAY를 이용하여 JAVA 웹 애플리케이션 모니터링 구축 (0) | 2022.01.17 |