데이터 엔지니어링/airflow

[Airflow] Airflow 랑 GCP 연동시키기 (초보자용 세팅 설명)

허니비 honeybee 2023. 8. 10. 16:39

 

* 해당 게시글은 airflow 설치와 local 에서 작동이 잘 되고있는 상태라고 가정하고 작성한 글입니다. 혹시 설치부터 막힌다면 이전에 포스팅한 글을 참고해주세요!

 

 

에어플로우로 데이터 처리 자동화 작업을 해보려 한다. 에어플로우는 웬만한 3rd party 제품과의 연결을 지원하는데, 나는 익숙하게 사용하는 GCP 를 이용해보려고 한다. 먼저 gcp 에 가입을 해준다. 뭐라도 쓰려면 일단 무료 평가판을 구매해야 하는데, 실습을 위한 용량은 충분히 제공하기 때문에 걱정하지 않아도 됨. 

 

GCP > BigQuery 에 들어와서 데이터 세트 만들기를 눌러준다 

 

 

 

 

아이디를 설정하고 세트를 만들고 나면 다음과 같은 화면이 뜬다 

점 세개를 누르면 정보들을 확인할 수 있다 

 

 

 

이번에는 클라우드 스토리지 > 버킷 으로 넘어가자. GCP 에서 버킷은 데이터에 대한 엑세스를 관리할 수 있는 컨테이너다

여기서 버킷을 새로 생성해 줄 것이다 

 

 

버킷을 새로 만들어준다 

여러가지 설정 옵션들이 있는데 일단 지금은 기본으로 설정하고 넘어가자 

 

 

 

 

이번엔 서비스 계정을 만들어 주어야 한다. 

서비스 계정에서 권한이라던지 역할이라던지, 인증 토큰 등을 관리할 수 있다

 

 

 

인증을 위한 절차이고, 여기서 서비스 인증 키를 발급받을 수 있다. 

 

이 영상이 설명을 아주 기깔나게 잘하니 참고하시길! 

토큰은 절대 노출하면 안되는거 아시죠들?ㅡ

 

https://www.youtube.com/watch?v=Nq8Td8h_szk 

 

 

 

 

여기까지 마무리가 되었다면 이제 다시 airflow 로 돌아오자.

 

admin > connect 에 들어오면 연결할 수 있는 서버나 DB 들의 리스트가 주르륵 보이는데, 그중에서 google_cloud_default 를 찾아 들어가자. (저걸로 안하고 새로 만들어도 된다!) 그런데, 처음에는 구글 설치가 안되어있어서 connection type 에 저게 안 보일 것이다.

 

 

 

에어플로우는 providers 라고 외부 연결을 위해서는 추가적인 패키지를 설치해줘야하는듯 하다

터미널을 종료하고, 이 명령어를 새 터미널에 입력해서 설치해준뒤, 다시 에어플로우 웹서버를 킨다 

 

pip install 'apache-airflow-providers-google'

 

근데 만약 이렇게 해도 안 뜬다면..!!! 가상환경을 파서 거기에 깔아보시길!! 저는 이 방법으로 성공했음 

 

 

그리고 사진에 보이는 것 처럼 입력해주면 된다. 아까 서비스 계정에서 발급받은 json 파일을 airflow 파일 안에 새로 폴더를 만들어서 저장해주고, 이를 keyfile path 로 사용하면 된다 

 

나는 이렇게 dag 파일 안에 support 파일을 만들고 발급받은 key 파일을 넣었다. 그걸 경로로 사용하면 된다.

 

 

 

 

Scopes (comma separated). 는 이걸 사용하자 

https://www.googleapis.com/auth/cloud-platform

 

 

그리고 나면 DAG 도 잘 불러와지고, 구글 빅쿼리에도 원하는 데이터를 넣을 수 있게 된다! 

 

끝! 

728x90