[Airflow] Postgres 컨테이너 설치 및 network 설정

2024. 1. 5. 17:10·Data Engineering/Airflow
목차
  1. 1. Postgres 컨테이너 추가하고 network 만들기
  2. 2. 컨테이너에 고정 IP 할당하기 
  3. 3. yaml 파일 교체하기
  4. 4. 컨테이너 확인하기
  5. 5. Postgres 방화벽 허용하기
  6. 6. DBeaver 다운받고 연결하기


1. Postgres 컨테이너 추가하고 network 만들기

▪ 컨테이너들은 유동 IP를 가지기 때문에 재기동시 변경됨
▪ DB에 접속하기 위해서는 IP 정보가 필요함으로 network를 만들어서 컨테이너에 고정 IP를 할당해야함

 

▪ VM instance에 접속

▪ 기존에 있던 yaml 파일을 복사하여 새로운 yaml 만들기

cp docker-compose.yaml docker-compose.yaml.new

 

▪ vi 편집기로 "docker-compose.yaml.new" 열기

vi docker-compose.yaml.new

 

▪ 맨 밑으로 이동해서 network_custom이라는 network 추가

▪ 디폴트 network가 쓰고 있는 대역과 충돌을 피하기 위해 28 대역으로 사용

networks:
network_custom:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
gateway: 172.28.0.1

 

▪ volumes 부분에 postgres-custom volume도 추가

postgres-custom-db-volume:

 

▪ ":100" 입력해서 100번 라인으로 이동

▪ services 항목에 새로운 postgres 컨테이너 등록

postgres_custom:
image: postgres:13
environment:
POSTGRES_USER: [유저 이름]
POSTGRES_PASSWORD: [비밀번호]
POSTGRES_DB: [DB 이름]
TZ: Asia/Seoul
volumes:
- postgres-custom-db-volume:/var/lib/postgresql/data
ports:
- 5432:5432
networks:
network_custom:
ipv4_address: 172.28.0.3

2. 컨테이너에 고정 IP 할당하기 

▪ networks를 지정하지 않은 컨테이너들은 default network에 묶여있기 때문에,
새로 추가한 postgres_custom 컨테이너와 단절되게 됨 
▪ 이를 해결하기 위해 동일 네트워크에 둘 컨테이너들을 모두 같은 network에 할당하는 것이 필요함

 

▪ 밑으로 내려서 Airflow가 메타DB로 쓰고 있는 postgres 컨테이너 포트 개방하고, 네트워크는 고정 IP 할당

ports:
- 5431:5432
networks:
network_custom:
ipv4_address: 172.28.0.4

 

▪ redis 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.5

 

▪ airflow-webserver 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.6

 

▪ airflow-scheduler 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.7

 

▪ airflow-worker 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.8

 

▪ airflow-triggerer 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.9

 

▪ airflow-init 컨테이너에 고정 IP 할당

networks:
network_custom:
ipv4_address: 172.28.0.10

3. yaml 파일 교체하기

▪ 기존에 있던 yaml파일은 백업해두고, 새로운 yaml 파일로 교체

# 기존에 있던 yaml파일 백업
mv docker-compose.yaml docker-compose.yaml.240105
# 새로운 yaml파일로 교체
mv docker-compose.yaml.new docker-compose.yaml

4. 컨테이너 확인하기

▪ airflow 서비스 시작하기

sudo service docker start
sudo docker compose up

 

▪ 새 창 띄어서 가동 중인 컨테이너를 확인해보면, 새로 추가한 컨테이너가 올라와 있음

sudo docker ps

5. Postgres 방화벽 허용하기

▪ VM instance 외부 IP가 고정되어있지 않다면 링크로 이동하여 진행 -> https://doodo0126.tistory.com/27

▪ [VPC 네트워크] -> [방화벽] 으로 이동

 

▪ [방화벽 규칙 만들기] 클릭

 

▪ [이름] 설정

 

▪ [대상]은 네트워크의 모든 인스턴스, [소스 IPv4 범위]는 0.0.0.0/0으로 설정

 

▪ [지정된 프로토콜 및 포트]  -> [TCP]에 5432 입력해서 5432 포트에 대한 접속을 허가

▪ 모든 설정이 완료되었으면 [만들기] 클릭

6. DBeaver 다운받고 연결하기

▪ 해당 링크로 이동

 

Download | DBeaver Community

Download DBeaver Community 23.3.1 Released on December 25th 2023 (Milestones). It is free and open source (license). Also you can get it from the GitHub mirror. DBeaver PRO 23.3 Released on December 11th, 2023 PRO version website: dbeaver.com Trial version

dbeaver.io

 

▪ 자신의 OS에 맞는 installer 다운받고 설치

 

▪ 다운이 완료되었으면 DBeaver 열고 [새 데이터베이스 연결] 클릭

 

▪ PostgresSQL 선택하고 [다음] 클릭

 

▪ [Host]에 VM instance의 외부 IP 입력

▪ [Database], [Username], [Password]에는 컨테이터 추가할때 입력했던 DB이름, 유저이름, 비밀번호 입력하고 [완료] 클릭

 

▪ 다음과 같이 체크표시가 뜨고 메뉴가 생기면 정상적으로 접속된 것임

 

 

 

참고:

 

Airflow 마스터 클래스 강의 - 인프런

데이터 파이프라인을 효율적으로 만들고 관리하기 위한 Orchestration 도구인 Airflow에 대해 배우는 강의입니다. 초보자도 차근차근 배울 수 있는 Airflow 마스터 클래스, 환영합니다!, 데이터 파이프

www.inflearn.com

 

'Data Engineering > Airflow' 카테고리의 다른 글

[Airflow] Task 연결하기  (2) 2024.01.16
[Airflow] Cron 스케줄  (0) 2024.01.16
[Airflow] DAG 만들기 & DAG 디렉토리 설정  (0) 2024.01.04
[Airflow] Local에 Airflow library 설치  (1) 2024.01.04
[Airflow] 개발환경구성 (Github 설정)  (0) 2024.01.03
  1. 1. Postgres 컨테이너 추가하고 network 만들기
  2. 2. 컨테이너에 고정 IP 할당하기 
  3. 3. yaml 파일 교체하기
  4. 4. 컨테이너 확인하기
  5. 5. Postgres 방화벽 허용하기
  6. 6. DBeaver 다운받고 연결하기
'Data Engineering/Airflow' 카테고리의 다른 글
  • [Airflow] Task 연결하기
  • [Airflow] Cron 스케줄
  • [Airflow] DAG 만들기 & DAG 디렉토리 설정
  • [Airflow] Local에 Airflow library 설치
Doodo
Doodo
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[Airflow] Postgres 컨테이너 설치 및 network 설정
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.