일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PYTHON
- Docker
- 데이터 웨어하우스
- 데이터베이스
- 가상환경
- Go
- redshift
- 데이터엔지니어링
- 데이터 파이프라인
- 정리
- 데브코스
- airflow.cfg
- dockerfile
- 파이썬
- HADOOP
- 컴퓨터네트워크
- TCP
- 종류
- airflow
- Django
- 운영체제
- http
- linux
- AWS
- sql
- 컴퓨터 네트워크
- S3
- 데이터 엔지니어링
- 자료구조
- TIL
- Today
- Total
홍카나의 공부방
[Airflow] 컨테이너 고정IP 할당 & PostgresDB 확인 본문
1. 컨테이너의 IP
docker container들은 기본적으로 유동 IP를 가지고 있다.
즉, 컨테이너 재기동시 IP가 바뀔 수 있다는 것이다.
그래서 고정 IP를 할당하려면 networks 만들어서 할당해야 한다.
Airflow를 구성할 때 postgresDB에 고정IP를 할당시켜서 DB에 접속하는 경우를 살펴보자.
먼저 airflow가 만드는 여러 기본적인 container들이 있는데
이 컨테이너들은 네트워크 지정이 되어있지 않다.
그러면 default network에 모두 소속된다.
그런데 docker에서
컨테이너 간의 네트워크가 다르면 통신할 수 없다!
따라서 동일 네트워크로 할당하는 과정이 필요하다.
2. docker-compose.yaml 파일 수정하기
docker-compose.yaml 파일로 들어가서 networks를 먼저 설정해보자.
volumes:
postgres-TOBE-db-volume:
postgres-db-volume:
pgadmindata:
networks:
network_new:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.47.0.0/16
gateway: 172.47.0.1
맨 아래 volumes 부분 밑에
networks:를 추가하여 위와 같이 작성하였다.
새로 만든 네트웤에는 'network_new'라는 이름을 주었고,
subnet은 172.47.0.0/16으로 주었다.
Host address가 16개, Network address는 16개라는 뜻이고
게이트웨이는 172.47.0.1로 주었다.
위 서브넷 주소는 디폴트 네트워크가 쓰지 않고 있는 대역대를 부여해야 한다!
나는 172.47.0.0 대역을 기존에 사용하지 않았기에 부여해줬다.
이후 컨테이너들에 하나하나씩 주소를 할당해주면 된다.
그리고 airflow가 MetaDB로 사용하고 있는 postgres가 아닌
새로운 postgres 서비스를
postgres_TOBE라는 이름을 붙여서 하나 추가해줬다.
그리고 다른 모든 컨테이너에 ipv4_address 값을 부여해서 네트워크를 묶어줬다.
(ex : 172.47.0.4, 172.47.0.5, ... )
3. docker-compose up
이후 docker-compose up 명령어로 컨테이너를 뛰워주면 된다.
4. DB확인하기
DBeaver라는 프로그램을 이용하여 PostgresDB에 들어가보겠다.
DBeaver 설정은 위와 같다.
Host는 우선 localhost로 냅둬도 된다.
localhost는 WSL과 기본적으로 연결되어 있기 때문이다.
그래서 localhost로 두면 WSL에 들어가겠다는 말과 같다.
Database, Username, Password는 docker-compose.yaml에서
새로운 Postgres 컨테이너에 입력한 그대로 입력해주면 된다!
airflow metaDB로 사용하는 postgresDB는 5431번 포트를 열었으니
5431번으로 설정해서 새로운 연결을 만들어주면 되고
그리고 ID PW DB도 그에 맞춰 연결하면 된다.
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] Import "airflow.operators.dummy" could not be resolved 해결 (0) | 2024.03.23 |
---|---|
[Airflow] 에어플로우 번역 책 오탈자 - 1) 스케쥴러 (0) | 2024.03.10 |
[Airflow] 외부 모듈에서 라이브러리 No module 문제 해결하기 (0) | 2023.12.16 |
[Airflow] python airflow library 설치하기 (0) | 2023.12.16 |
[Airflow] python operator - 템플릿 사용이 가능한 파라미터 (0) | 2023.11.19 |