AWS

Lambda 와 Aurora 연동

Kyle79 2019. 5. 30. 09:50


https://medium.com/@justanotherspyy/how-to-connect-your-lambda-function-securely-to-your-private-rds-instances-in-your-vpc-29789220a33

 

How to connect your Lambda function securely to your private RDS instances in your VPC!

A guide to Lambda + VPC + RDS, with common issues and some explanations!

medium.com

 

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

 

Amazon S3 버킷의 텍스트 파일에서 Amazon Aurora MySQL DB 클러스터로 데이터 로드 - Amazon Aurora

Amazon S3 버킷의 텍스트 파일에서 Amazon Aurora MySQL DB 클러스터로 데이터 로드 LOAD DATA FROM S3 또는 LOAD XML FROM S3 문을 사용하여 Amazon S3 버킷에 저장된 파일에서 데이터를 로드할 수 있습니다. 참고 Amazon Aurora MySQL 1.8 및 이후 버전에서는 Amazon S3 버킷에서는 데이터를 텍스트 파일에서 테이블로 로드할 수 있습니다. Aurora MySQL 버전에 대한 자세한 내용

docs.aws.amazon.com

 

https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/vpc-rds.html

 

자습서: Amazon VPC에서 Amazon RDS에 액세스하도록 Lambda 함수 구성 - AWS Lambda

자습서: Amazon VPC에서 Amazon RDS에 액세스하도록 Lambda 함수 구성 이 자습서에서는 다음 작업을 수행합니다. 기본 Amazon VPC에서 Amazon RDS MySQL 데이터베이스 엔진 인스턴스를 시작합니다. MySQL 인스턴스에서 샘플 테이블(Employee)이 포함된 데이터베이스(ExampleDB)를 생성합니다. Amazon RDS에 대한 자세한 내용은 Amazon RDS를 참조하십시오. ExampleDB 데이터베이스를 액세스하기

docs.aws.amazon.com

 

* Load Data Files into Aurora RDS from S3 Bucket

SET @file_name = 'file_name'
SET @s3_path = CONCAT('s3://bucket-name/folder-name/', @file_name);
 
SET @q = CONCAT('
SELECT *
FROM table
INTO OUTFILE S3 ''', @s3_path, ''' ;
CHARACTER SET utf8
    FIELDS TERMINATED BY '',''
    OPTIONALLY ENCLOSED BY ''"''
    LINES TERMINATED BY ''\\r\\n''
    OVERWRITE ON;');
 
PREPARE stmt FROM @q;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

 

* load data import DB

query = """ LOAD DATA FROM S3 PREFIX '######/'
INTO TABLE TBL_SA_DATA
CHARACTER SET utf8
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES
(CAMPAIGN_TYPE, CAMPAIGN_NAME, REG_DT, URL, MEDIA_NAME)
"""

 

 

CREATE FUNCTION `split`( str VARCHAR(500), del VARCHAR(2), idx INT ) RETURNS varchar(500) 
BEGIN
    /**
        문자열에서 특정값으로 배열을 잘라주는 함수 (없으면 빈문자열을 리턴함)
        str: 해당 문자열
        del: 구분자 
        idx: 구분자로 구분한 위치 (1부터 시작함)        
    **/
    RETURN SUBSTR(SUBSTRING_INDEX(str, del, idx),LENGTH(SUBSTRING_INDEX(str, del, idx-1))+IF(idx > 1, 2, 1));
END