안녕하세요! 저는 슬기로운 문화생활 SMS DevOps부서의 팀원 Yoda.jedi 입니다.
해당 포스팅은 “Airflow에서 VPN을 통해 고정 IP가 할당 불가한 서버와 통신”에 대한 주제로 슬.문.생 팀이 고민했던 다양한 이야기들을 많은 분들과 공유하면 좋을 것 같아 글을 작성하게되었습니다.
고정 IP가 할당되어져있는 Airflow서버와 같은 네트워크 그룹이 아니며, 고정 IP가 할당되지 않았던, Apache Spark 서버와 통신을 구간을 열어주는 다양한 방법 중 저희 슬기로운 문화생활 팀에서 채택한 VPN ON/OFF 스위치를 Airflow Task Operator 로 구현하는데에 집중하였습니다.
기존, 슬기로운 문화생활 사내 Pipeline Cordinator로 사용하고 있는 Airflow, 데이터 전처리를 위한 Apache Spark Cluster는 AWS EC2로 배포되어있었습니다. 하지만 더욱 많은 양의 데이터를 처리해야하며, 적은 비용으로 보다 많은 데이터를 처리하기위해, Cloud 구축되어있던 Spark Cluster를 onPremise로 이관하였으나, 프로젝트 네트워크 환경상 고정 IP를 할당 할 수 없는 상황이였습니다. 해당 이야기를 더보고싶다면? 링크!
따라서, Airflow 서버와 Apache Spark 서버가 서로 통신을 할 수 없는 구조가 되었으며, 이에, 서로의 네트워크 환경에 대한 전반적인 수정이 필요했습니다. 이미 빌드되어있는 다른 서버 부터 모든 것을 수정하는데 시간적 여유가 없다는점, 이미 Airflow와 그룹화 되어있는 서버가 존재한다는점이 가장 큰 도전과제로 주어졌으며, 이 상황에서 저희 팀에서 수립한 요구사항은 아래와 같았습니다.