4. airflow-day2-4

data_hamster·2023년 6월 8일
0
post-custom-banner

학습주제
airflow 도커 사용
https://github.com/keeyong/airflow-setup/blob/main/docs/Airflow%20Docker%20Local%20Setup.md
학습내용

ec2 보다 사용이 쉬움

제일 좋은 방법은
사양이 좋은 ec2 서버를 구매하여, 그 위에 도커를 실행, 컨테이너로 airflow를 만들어서 운영


도커 엔진 설치


메모리는 별도의 파일을 만들어서 관리해야함.
8GB는 넣어주어야 함
저번에 기본으로도 돌아갔던거 같아서 안돌아가면 설정 예정.

wsl 업데이트 필요 파워쉘에서 설치

별개로 윈도우에서 store을 통해 우분투를 쓸 수 있는거 같다

설치만 해봄

현재 도커 세팅 중 좀 시간이 걸리는 것 같음


도커기반 실행
https://github.com/keeyong/airflow-setup/blob/main/docs/Airflow%20Docker%20Local%20Setup.md

시작 설정이 무한이 되어, 구글링으로 해결함

깃 클론 유저폴더에서 생성
그 후 airflow로 이동해 yml 이미지 다운로드함

yaml을 야멀이라 읽음
그 파일을 가지고 pull을 써서 도커 이미지을 받고, up을 이용해 컨테이너로 실행함.

그럼 docker compose up airflow-init 이거는 뭐지?
일단 뭔가 작동한다

docker compose up으로 실행함

docker ps 명령을 실행해서 모든 프로세스가 동작하는지 확인한다.

ec2는 상당히 번거로웠다. 그룹프로젝트를 할때는 개인 도커를 쓰기 힘들 것. t3.small 론치한다음 해보기.


윈도우는 리소스를 별도의 파일에 달아줘야함


현재 서버가 돌아가는 모습

야멀 파일을 배쉬로 받음
소프트웨어들이 많이 사용하는 환경설정 파일

예전에는 xml 등을 썼었음
yaml, yml
야멀이라 읽음

이 파일을 기반으로 도커 이미지를 실제로 받음

실제로 시간이 걸림

그 다음 이미지를 컨테이너 위로 up 명령어로 실행

6~7개의 프로세스가 실행된다

이어서 도커 엔진으로 돌아간다

깃헙 리포 안에서 실행했음

실행이 안되는건 init 완료하고 쉬고 있음
redis를 씀
링크가 하나 걸려있음
8080으로 엑세스
내 컴퓨터에만 있음. 개발용으로 좋음. 나중에 데모를 할려고 하면
그룹, 공동개발을 하려면 ec2를 설치해야함


뭐지
로컬에서도 안열린다
아마 8080포트도 방화벽으로 막힌듯 하다
저번의 상황이랑 비슷한거 같음

실패.
다른 방식으로 시도함
docker-compose -f docker-compose.yaml up
실시간으로

아이콘이 활성화되는게 보임

Docker Desktop이나 WSL 2의 설정을 직접 변경해서 wslrelay.exe의 동작을 바꾸는 것은 일반적으로 권장되지 않습니다. wslrelay.exe는 WSL 2와 Windows 호스트 간의 네트워크 통신을 관리하기 때문에, 이 프로세스의 설정을 임의로 변경하면 시스템의 안정성에 문제가 발생할 수 있습니다.

왜인지 모르겠으나 wslrelay가 8080포트를 써서 안되고있음
이에 airflow yaml을 바꿔서 8081 포트로 접속을 시도함

docker-compose down, up 작업으로 다시 컨테이너를 내렸다가 재실행함


이렇게 바꿔보라는 글들이 있어서 바꿔봄
다시 compose up
실패함.

도커를 재설치하되
wsl을 사용하지 않고 한번 설치해본다

Hyper을 채택
설치가 안됨.

다시 wsl 해보니 됨.
뭐지????

wsl하고는 상관 없는거 같음.
bash를 돌리는 상태에서 컨테이너를 돌려야 하는것 같다.
그건 아닌가?
왜냐하면 불이 들어온 상태에서 실행시도했기 때문


airflow:airflow

나머지는 다예제임


맥스님 예제

이것들 중에 dag_v1을 살펴본다

배시 스크립트를 사용하면 커맨드 라인에서 수행할 수 있는 작업을 파일에 저장하고, 이 파일을 실행하여 일련의 명령을 자동으로 수행할 수 있습니다. 예를 들어, 서버에서 매일 백업 작업을 수행하거나 파일을 다운로드하고 압축을 풀고, 이와 같은 반복적인 작업을 자동화하는 데 배시 스크립트가 사용됩니다.

배시 오퍼레이터는 대그를 구성하는 태스크를 만든다

ec2 서버에서 직접 설치하는 것에 비해 쉽다.
ec2 도 도커를 설치하고 그 위에 에어플로우를 돌리는게 가능함.
그러려면 ec2 서버 성능이 좋아야함 최소 8GB는 보장해줘야함
4GB를 도커에 할당

나중에 그룹 프로젝트할때 ec2
개인 개발은 도커

profile
반갑습니다 햄스터 좋아합니다
post-custom-banner

0개의 댓글