내 주말을 날려버린 AWS -> NCP 서버 이전기를 작성해보려고 한다..
최근에 NCP 크래딧을 40만원정도 받게 되어 서버 이전을 도전했는데..!
이사는 생각보다 너무 힘들었다.🥲
https://guide.ncloud-docs.com/docs/clouddbforpostgresql-start
DB 서버를 만들기 위해서는 이 링크를 참고하면 되는데
간단히 정리해보자면 다음과 같다.
공인 IP 설정, 외부 접근용 SSL VPN 설정
- putty를 이용하거나, ssh를 이용.
- ssh 설정 방법은 조만간 포스팅하겠다.
여기가 정말.. 나를 이틀동안 헤매게한 주 원인..
공식문서를 잘 꼼꼼히 읽어 봐야한다.
4번을 보면 '애플리케이션 서버의 ACG 이름' 을 입력하라고 되어있음.
여기 잘 안읽으면 이미 전에 등록했는데 뭘 또 하라는거지..? 하고 헤매게 되니 꼭...꼼꼼히...
이것까지 다 문제없이 마쳤다면 이제 DB를 진짜로 만들어볼 차례이다.
https://wikidocs.net/177321
나는 점프 투 fastapi 문서를 참고했는데, 이건 AWS용이라 안되는 부분이 많을 것이다.
해당 주소에 들어가서 그대로 따라하게 되면
createdb fastapi_pybo --username=dbmasteruser -h <데이터베이스 주소>
여기서 막히게 될 텐데 크게 두가지 에러가 나온다.
password authentication failed for user "postgres"
createdb: error: connection to server at "어쩌고" FATAL: no pg_hba.conf entry for host "어쩌고" user "postgres", database "template1", SSL off
그래서 NCP 콘솔을 이용해서 DB를 먼저 만드는 꼼수(?)를 이용할 것이다.
DB 서버 콘솔에서 'DB Service 상세보기'를 클릭하자.
여기서 DB를 만들어준다.
만약 Owner가 없으면 현재 보이는 화면에서 DB User탭으로 넘어가자.
여기서 DB User 를 추가하여 만들면 된다.
다시 돌아와서 Database 관리 탭에서 DB를 만들어주었으면 NCP 콘솔은 끝이다.
다시 우리 서비스의 코드로 돌아가자구요
database.py
로 들어가서 config
를 아래와 같이 변경함.
# database.py
from starlette.config import Config
config = Config('.env')
SQLALCHEMY_DATABASE_URL = config('SQLALCHEMY_DATABASE_URL')
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SQLALCHEMY_DATABASE_URL="postgresql://아이디:비밀번호@엔드포인트/DB이름"
아까 NCP에서 만들어주었던 정보들을 입력한다.
그리고 기존 db와 alembic으로 만들었던 파일들을 지우고 새로 만들어줌.
$ alembic init alembic
# alembic/env.py
from starlette.config import Config
from alembic import context
config = Config('.env')
SQLALCHEMY_DATABASE_URL = config('SQLALCHEMY_DATABASE_URL')
# alembic.ini
# migrations에서 alembic으로 변경되었으니 여기도 수정
script_location = alembic
# sqlalchemy부분은 아예 주석처리
# sqlalchemy.url = driver://user:pass@localhost/dbname
$ alembic revision --autogenerate
$ alembic upgrade head
🎉 끝! 🎉
딱 한달전에 lightsail이랑 postgre연결시켰다고 기뻐했는데 기록을 제대로 안남겨서 고생했다. (내 프로젝트의 터미널인지 서버 ssh인지 몰라서 고생함, 똑같은 에러 났는데 해결 못함 ㅠ)
기록을 습관화하자... 사소한 것도....
음.. 너무 비싸다. 내가 잘못 설정한걸수도 있는데 lightsail은 한달에 3만원정도 나오는데 이건 세팅하고 일주일 지났는데 벌써 9만원정도 씀..
학생이라면 부담이 될 것 같다.
그리고 공식문서가 친절하지 않고 사소한 오류가 많아서 아쉬웠다ㅠㅠ
참고 링크
(port에러 관련)
오류가 있으면 언제든지 댓글을 달아주세요 😊