소개
17기 Figma + Replit 스터디에서 쓸 로즈봇의 서버를 DigitalOcean이라는 클라우드 서버에 구축했습니다.
진행 방법
한국 문자 메시지의 스크린 샷
한국어 문자 메시지의 스크린 샷
로즈봇을 만들었습니다. 일단 지피터스 링크를 공유하면, 응원과 칭찬을 팡팡해드립니다.
느낌표 뒤에 검색어를 쓰시면 퍼플렉시티 검색을 해서 알려드립니다.
17기 Figma + Replit 스터디 참여하시는 분들, 많이 애용해주세요~😍
오늘 공유할 사례는 DigitalOcean 클라우드 서버 구축 사례입니다.
PC 하나를 계속 켜 두기는 싫고, 아직 N100도 없고.. ㅠ.ㅠ
대안으로 클라우드 서버에 계정을 하나 만들었습니다.
계정은 만들었는데, 무엇을 어떻게 해야 하나.. 😅
검색을 통해 방법을 알아냈습니다.
로컬에서 잘 돌아가던 서버를 DigitalOcean에 올리려면 일단 "Droplets"이란 걸 만들어야 합니다.(용어부터 어렵다.. ㅠ.ㅠ)
인증방법은 SSH 키로 하는 것이 보안이 좋대서 열심히 키를 만들었습니다.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
type C:\Users\사용자명\.ssh\id_rsa.pubDroplets 생성이 완료되면 생성된 Droplets을 클릭하면 IP 주소를 확인가능합니다
이렇게 접속합니다.
ssh root@<서버_IP_주소>서버 업데이트를 하고, 파이썬 서버여서 파이썬 설치합니다.
프로젝트 소스를 업로드 합니다.
apt update && apt upgrade -y
apt install -y python3 python3-pip python3-venv
scp -r <프로젝트 폴더> root@<서버_IP_주소>:/root가상환경을 생성하고 필요한 패키지를 설치합니다.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt필요한 것이 다 되었으니 서버를 실행해서 동작을 확인합니다.
uvicorn app.main:app --host 0.0.0.0 --port 8000잘 되니, 이제 후처리를 합니다. 방화벽을 활성화합니다.
ufw allow ssh
ufw allow 80
ufw allow 443
ufw allow 8000
ufw enable서버 시작과 종료 설정을 합니다. - /etc/systemd/system/fastapi.service 파일을 작성합니다.
[Unit]
Description=FastAPI App
After=network.target
[Service]
User=root
WorkingDirectory=/root/<프로젝트 폴더>
Environment="PATH=/root/<프로젝트 폴더>/venv/bin"
ExecStart=/root/<프로젝트 폴더>/venv/bin/gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
Restart=always
[Install]
WantedBy=multi-user.target
이제 이렇게 서비스를 시작합니다.
systemctl daemon-reload
systemctl enable fastapi
systemctl start fastapi중지와 재시작은 이렇게 합니다.
중지: sudo systemctl stop fastapi
재시작: sudo systemctl restart fastapi도메인 설정도 하고 싶지만, 구매를 안 했... 😅
결과와 배운 점
서버에 소스를 업로드하며 venv 까지 실수로 올려서 다 지우고
다시 설치해야 했어요..😅
클라우드 서버 구축 은근 저렴하고 어렵지 않네요..
도움 받은 글 (옵션)
https://www.gpters.org/wealth/post/n8n-automation-platform-built-hQZljoaUYR2b9s1