MySQL (OLTP) -> Airflow Server -> S3 -> Redshift (OLAP)
MySQL (OLTP) -> Local Disk -> Redshift (OLAP)
1번 방식으로 실습해볼 예정

IAM 콘솔에서 사용자 -> 사용자 생성 버튼 클릭

사용자 이름 : airflow-s3-access

직접 정책 연결 로 AmazonS3FullAccess 정책을 연결해도 되고,

더 좋은 방법은 정책 생성 버튼을 눌러 대상이 되는 S3 bucket에 대한 권한만 지정하는 것(JSON 형태로 해당 내용으로 수정하기)

생성한 사용자 (airflow-s3-access) -> 보안 자격 증명 -> 액세스 키 만들기 버튼 클릭

AWS 외부에서 실행되는 애플리케이션 선택 (Airflow에서 돌릴거기때문)

액세스키가 만들어지면 액세스 키와 비밀 액세스 키를 확인할 수 있다 (비밀 액세스 키는 지금밖에 확인할 수 없으므로 꼭 기억해둘 것! 만약 까먹으면 다시 알수는 없고 액세스키를 새로 만들어야 함)


Airflow에서
MySQL,S3가 연결된 것을 확인할 수 있음!
IAM 콘솔에서 역할 -> 역할 생성 버튼 클릭

신뢰할 수 있는 엔터티 유형을 AWS 서비스 선택하고 서비스를 Redshift - Customizable로 선택 -> AmazonS3FullAccess 정책을 연결하거나 JSON편집해서 대상이 되는 S3 bucket에 대한 권한만 지정해서 역할 만들기

Redshift 콘솔로 이동해서 원하는 클러스터에 방금 만든 IAM 역할을 연결해주면 됨
--user root를 추가해줘야 함
sudo apt-get update
sudo apt-get install -y default-libmysqlclient-dev
sudo apt-get install -y gcc
sudo pip3 install --ignore-installed "apache-airflow-providers-mysql"
MySQL_to_Redshift인 DAG 테스트해보기airflow dags test MySQL_to_Redshift