1. CloudType - MjApp 제작기
클라우드타입은 GitHub 에 작성한 코드를 클라우드 서버에 간편하게 띄울 수 있는 PaaS 클라우드 호스팅 서비스입니다.
많이들 사용하는 언어, 플랫폼, 데이터베이스 등을 올릴 수 있습니다.
저는 FastApi와 MariaDB를 사용할 예정입니다.
한글로 문서정리도 깔끔하게 잘 되어있어서 처음 사용하는 사람도 쉽게 사용 할 수 있습니다.
클라우드타입 이용가이드
클라우드타입을 처음 사용하시나요? 아래의 가이드를 따라 클라우드타입을 사용하세요! 그럼 시작해볼까요? 😃
help.cloudtype.io
cloudtype
클라우드타입은 GitHub 에 작성한 코드를 클라우드 서버에 간편하게 띄울 수 있는 PaaS 클라우드 호스팅 서비스입니다.
www.youtube.com
위의 자료를 참고 하였는데도 모르는 경우에는 디스코드를 이용하여 질문도 할 수 있다고 합니다.
Discord - A New Way to Chat with Friends & Communities
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
discord.com
가장 중요한 요금 관련입니다.
큰 서비스가 아니라면 무료로 이용하기에는 문제가 없을 것 같습니다.
회원가입과 깃허브 연동 관련해서는 크게 어려운 점이 없으므로 생략합니다.
회원 가입이 완료 되었다면 새 프로젝트를 생성합니다.
프로젝트 생성 후 원하는 서비스를 선택하여 주면 되는데
저의 경우 FastApi와 MariaDB를 사용할 것이기 때문에 참고 링크를 남깁니다.
순서대로 따라하기만 해도 쉽게 할 수 있게 되어있습니다.
MariaDB
클라우드타입에서 MariaDB를 배포하고, 관리 툴을 사용하여 TCP 방식으로 접속하는 가이드입니다. 🧑🏻💻 본 가이드에서는 관리 툴로 MySQL Workbench를 사용했으며, 아래의 링크에서 다운로드
help.cloudtype.io
Python FastAPI 시작하기
클라우드타입에서 Python FastAPI 애플리케이션을 배포하는 방법입니다. 🧑🏻💻 아래의 가이드에 따라 템플릿을 통해 서비스를 배포해보세요. 시간은 3-5 분 가량 소요됩니다. 😺
help.cloudtype.io
FastApi의 경우 이미 프로젝트를 만든 것이 아니라면 자동으로 만들어주는 저장소 만들기를 이용하는 것을 추천합니다.
이제 클라우드 서버에 있는 MariaDB와 FastApi를 연결해보겠습니다.
우선 도메인을 알아야합니다. 아래 tcp/udp로 되어있는 곳의 주소들을 기록해둡니다.
로컬에서 테스트 할 때에는 svc.sel3.cloudtype.app:30341를 이용하고
서버에 배포할 때에는 mariadb:3306을 이용하게 됩니다.
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session
user_name = "user_name"
user_pwd = "user_pwd"
db_host = "mariadb:3306"
db_name = "pokemonDB"
DATABASE = f"mysql+pymysql://{user_name}:{user_pwd}@{db_host}/{db_name}?charset=utf8"
ENGINE = create_engine(
DATABASE,
encoding="utf-8",
echo=True
)
session = scoped_session(
sessionmaker(
autocommit=False,
autoflush=True,
bind=ENGINE
)
)
Base = declarative_base()
Base.query = session.query_property()
db_host 외에는 MariaDB생성 시 만든 값을 넣어주면 됩니다.
FastApi관련 글은 이전에 올린적이 있으므로 링크로 대체합니다.
포켓몬 도감 만들기(1) : Fast Api
Fast Api 설치 pip install fastapi 터미널에 위의 명령어를 입력하면 설치가 됩니다. 추가로 Python이 없을 경우 따로 설치해야 합니다. pip install "uvicorn[standrad]" 서버 작동을 위해서 uvicorn도 설치를 합니
alanboyce.tistory.com
패스워드 정보등이 있어서 이걸 환경 변수 설정으로 해보려고는 하는데
아직 해결이 안돼서 이 부분 관련해서는 해결되면 수정하도록 하겠습니다.
이상태로 배포를 하게 되면 sqlalchemy를 찾지 못한다는 오류가 발생하게 됩니다.
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
fastapi = {extras = ["all"], version = "*"}
sqlalchemy = "*"
pymysql = "*"
[dev-packages]
[requires]
python_version = "3.10"
Pipfile에 들어가서 packages안에
sqlalchemy = "*"
pymysql = "*"
위의 내용을 추가해주세요.
$ pip install pipenv
그 다음 터밀널로 들어가서 pipenv를 설치해 줍니다
그 후 프로젝트가 있는 경로로 이동 후
$ pipenv lock
위의 내용을 입력해주세요.
그러면 Pipfile.lock의 내용이 업데이트 되었을 것입니다.
마지막으로 requirements.txt 파일안에
sqlalchemy==1.4.22
pymysql==1.0.2
이 내용을 추가해 준 뒤 배포를 하게 되면 오류가 사라집니다.