본 실습에서는 빈 EC2 인스턴스에서 Docker를 활용해 Airflow 환경을 세팅한다.
원본 Tutorial: Running Airflow in Docker
EC2 인스턴스 시작하기
Docker 설치
- EC2 인스턴스에 Docker를 설치한다. (참고: 2.4 Docker)
- 다음 명령어를 차례차례 입력하고,
sudo docker run hello-world
가 정상실행되면 설치가 완료된 것이다.
docker compose 을 활용해 Airflow 시작하기
docker compose란?
- n개의 docker 환경을 구축해야 한다고 가정하자. Dockerfile만으로 docker container를 만든다면, n개의 Dockerfile이 필요하고 container를 실행시키는 docker run을 n번 입력해야 할 것이다.
- docker compose를 활용하면, 하나의 파일로 n개의 docker 환경을 생성 및 관리할 수 있다.
- 이전에는 docker-compose라는 program이 별도로 있었지만, v2부터 docker안에 귀속되면서 중간에 - (하이픈)을 작성할 필요가 없어졌다. (참고: Difference between “docker compose” and “docker-compose”)
docker compose 실행 원리
docker-compose.yaml 파일이 있는 디렉토리에서 docker compose up
를 실행하면 다음 절차로 Docker 환경이 구축된다.
- Parse the Compose file: Docker Compose가 docker-compose.yaml 파일을 읽고 services, networks, volumes를 결정한다.
- Build or pull images: 로컬에 있는 Dockerfile을 활용해 build를 하거나, 없으면 Docker Hub에서 image를 가져온다(pull)
- Create Containers: docker-compose.yaml에 명시된 구성에 따라 docker container를 만든다
- Start Containers: docker container가 만들어지면, dependency를 고려해서 해당 container들을 순차적으로 실행한다.