인프라 구축기EC2의 t3.large로 Airflow를 구축한 상황에서 AI 학습 및 예측을 진행해야 하는 문제에 직면했다. 그러나 Airflow Worker(LocalExecutor)만 사용한다면, 과부하가 올 것이라는 확신이 있었기에 AI를 위한 추가 인스턴스를 생성하고자 하였다. 이에 따라 Terraform 작업을 진행하게 되었으며, 진행 내용은 다음과 같다.AI Server를 위한 EC2 인스턴스 추가Airflow에서 EC2를 Start/Stop 하기 위한 IAM 사용자 생성lambda 함수에 AI Server를 추가하고, 특정 시간에 Start/Stop 되도록 수정EC2 인스턴스 추가 및 사용자 생성instance/ec2.tfAMI는 Amazon Linux 2023, 인스턴스는 t2.micro ..
schedule_interval 개념과 사용법schedule_interval은 Airflow의 DAG 실행 주기를 설정하는 파라미터이다. 이 설정을 통해 DAG 실행을 자동화하여 특정 시각에 정해진 작업을 수행한다. 이 글에서는 schedule_interval의 개념과 사용법을 소개한다. 만약 Scheduling을 진행할 때 Airflow의 시간 개념 (Interval Start, Interval End, Logical Date)에 대해 알지 못한다면, 아래의 글을 참고하면 된다. [Airflow] DAG Scheduling과 ExecutionAirflow Scheduling과 Execution개요Airflow 관리Airflow를 사용하면서 반드시 알아야 할 것이 "작성한 DAG가 언제, 얼마나 실행되는..
EC2 (Start/Stop) InstanceOperator 사용 예시EC2의 t3.large로 Airflow를 구축한 상황에서 AI 학습 및 예측을 진행해야 하는 문제에 직면했다. 그러나 Airflow Worker(LocalExecutor)만 사용한다면, 과부하가 올 것이라는 확신이 있었기에 AI를 위한 추가 인스턴스를 생성하였다. 이에 따라 AI 관련 Task를 실행할 때만, 해당 EC2를 켜두기 위해 Airflow의 EC2 관련 Operator를 사용하고자 하였다. 이처럼 EC2로 인한 비용 절약을 목적으로 EC2 (Start/Stop) InstanceOperator를 정리해두려고 한다.코드는 공식문서 참고 : EC2Hook의 start(), end(), wait_for_state() 메서드를 활용..
S3ToRedshiftOperator 사용 예시Airflow에서 S3에 존재하는 파일을 Redshift로 COPY 하는 방법은 크게 두 가지 방식이 있다. S3ToRedshiftOperator는 파라미터 정보만 적어주면 되므로 실제 쿼리 작업이 필요한 Hook 사용 방식보다 간편하게 사용할 수 있다. S3Hook과 PostgresHook을 활용해 S3와 Redshift를 각각 연결한 뒤 COPY Query 실행S3ToRedshiftOperator를 사용한 간단하게 COPYS3ToRedshiftOperator 사용 예시라이브러리 선언from airflow.providers.amazon.aws.transfers.s3_to_redshift import S3ToRedshiftOperatorS3ToRedshift..