[프로젝트] 최종프로젝트 로컬로 이관

data_hamster·2023년 9월 21일
0

목표
EC2에 올렸던 프로젝트를
로컬로 배포해본다.
시간상 여유가 있으면 class 대그도 수정,
추가 대그도 구현해본다.
README도 작성..?

  1. 로컬 Postgres에 적재 시도.
  2. airflow DAGs 작성.
  3. web 연결 수정
  4. superset 연결
  5. 로컬로 배포

문제.
pgadmin4가 실행이 안됨.
현재 airflow, superset이 실행중이고 각각 호스트 포트가 5432, 5433임
airflow를 컴포즈 다운 해보고
pgadmin4를 실행시켜봄

실행되는거 같음.
그 전에는 호스트 포트충돌이 났었던 것 같음
해결.
airflow yml파일에서 postgres를 수정함. 5432 -> 5431

문제.

파이썬 가상환경 에러가 났음.

해결.
환경문제가 계속되어 도커 컨테이너로 postgres을 내려받음.
정상적으로 접속함 8080을 airflow가 사용하고 있어서 9080으로 접속함

문제.
서버생성이 안됨.

해결

pgadmin은 단순한 서버 관리도구임. 마찬가지로 도커 컨테이너 방식으로 Postgres13을 생성하여 컨테이너를 하나 만들어줌.


이미 5432 포트를 사용중이라고 한다.
기존 백그라운드에서 돌아가는 Postgres를 삭제함.

다시 컨테이터를 실행시키니 성공함.

컨테이너를 만들었으나 PGadmin에 연결이 되지 않음
listen_addresses를 모두 허용하는지 확인하기 위해 컨테이너 안으로 접속


들어가보니 이미 모든 listen을 허용함.
이게 문제가 아닌거 같음.
연결이 잘 되지 않아.
pgadmin은 컨테이너로 올리고,
psql은 로컬에서 돌려보도록 한다.


로컬에서
mydb
myuser
mypassword순으로
데이터베이스와 계정을 만들고 권한을 부여했는데 여전히 pgadmin4에서 로컬호스트를 읽지 못한다.

해결함 -> pgadmin을 로컬에서 설치했더니 연결 성공. 스키마도 연결

그러나 airflow에서 연결이 안됨.
이를 해결하기위해 환경설정
pg_hba.conf 및 postgresql.conf 파일을 수정하기로 함

postgresql.conf에서
listen localhost 풀어줌

sudo 에서 안되고 postgres 계정에서 저장할 수 있음

다음은 pg_hba.conf로 넘어감

다 열려있음
이제 postgres를 재시작

실패.
이에 localhost를 0.0.0.0으로 바꿔서 외부 IP주소도 허용해본다.

오류.
max depth exceeded
이번엔 docker compose up 과정에서 max depth exceeded 에러 발생.
https://blog.naver.com/PostView.naver?blogId=shino1025&logNo=222500479888

이는 사용할 수 있는 이미지 레이어의 수가 127개라는데, 초과하게 되면 에러를 낸다고 한다. 이에 이미지를
docker images prune -a로 에어플로우 이미지를 지우고 하니 잘 된다.


그러나 여전히 0.0.0.0도 에러를 띄운다.

좀 더 고민해본다.

profile
반갑습니다 햄스터 좋아합니다

0개의 댓글