개인 프로젝트/python

개인 프로젝트/python

Railway 을 사용한 Discord Bot 의 구축과 응용 (4)

다운타임 검증이어서 다운타임 검증을 해봅시다. 검증기간은 3일간으로 하겠습니다. 다음이 검증에 사용한 소스코드입니다.다운타임 측정 방법 Discord의 설정이나, 소스 코드의 내용에 대해 가볍게 설명하겠습니다. (관심이 없는 분은 안 보셔도 무방합니다.) 먼저 프라이빗 채널을 만들고 거기에 Bot을 추가합니다. 이렇게 해두면 다운타임의 검증을 병행해 실시할 수 있게 되고, Bot의 부하 경감도 예상해볼 수 있습니다(소속되어 있는 채널의 메시지 밖에 취득할 수 없기 때문에).또, 프라이빗 채널 이외의 메시지에는 반응하지 않도록 설정되어 있습니다. 사용할 파일은 send.py, main.py, chk.py, chk.sh 입니다. send.py 와 chk.py 를 Raspberry Pi 상에서 서비스로서 움직..

개인 프로젝트/python

AWS Lambda와 일반 백엔드 호스팅의 차이점

서문: 서버리스 컴퓨팅과 전통적인 백엔드 호스팅의 비교를 통해 어떤 것을 선택해야 하는지에 대한 고려 사항을 다루는 글입니다. 본문: 1. 서버 관리: AWS Lambda: 서버리스 아키텍처의 핵심인 서버 관리의 부담을 덜 수 있습니다. 코드를 업로드하고 실행하면 AWS가 인프라 관리를 처리합니다. 일반적인 백엔드 호스팅: 사용자는 서버 인프라를 직접 설정하고 관리해야 합니다. 2. 비용: AWS Lambda: 사용한 컴퓨팅 리소스에 대해서만 비용을 지불하므로 트래픽이 낮을 때는 비용이 낮을 수 있지만, 높은 트래픽의 경우 비용이 증가할 수 있습니다. 일반적인 백엔드 호스팅: 고정된 비용이 있어 트래픽과 상관없이 일정한 비용이 발생합니다. 3. 확장성: AWS Lambda: Lambda는 요청에 따라 자..

개인 프로젝트/python

Railway 를 사용한 Discord Bot 의 구축과 응용 (3)

CLI V3 를 사용한 디플로이 방법 Railway CLIV3에서는 크게 변경 사항이 있습니다. 첫 번째로,railway init 시에 .env 파일을 읽어주지 않게 되었습니다. 두 번째로 환경 변수 설정 명령어인 railway variables set 를 입력 및 실행 할 수 없게 되었습니다. 왜 이런 개편(개악?)을 했는지는 모르겠습니다. (Discord 커뮤니티에서 질문해봤어요.보안이라든가의 영향일지도 모르겠습니다.) 그러면 CLIV3를 사용한 디플로이 방법에 대해 설명하겠습니다.기본적인 커맨드 조작은 V2와 큰 차이가 없습니다.우선은 Railway 커맨드로 인스톨하는 방법입니다. Linux, macOS, Windows: GitBash 환경에서는 아래와 같이 명령어를 입력해줍니다. Shell Scr..

개인 프로젝트/python

Railway 를 사용한 Discord Bot 의 구축과 운용(2)

Deploy 계정이 준비되었으면 이제 디플로이를 해봅시다. 디플로이의 방법으로는 GUI 하고 CLI 두 종류가 있습니다. Railway의 UI가 아주 심플해서 GUI로 디플로이 하는 편이 편할겁니다. 또 CLI는 커맨드가 시원찮은 이미지가 있어서 쓰기 불편할 수 있습니다. (굳이 CLI 쓸 필요가 없다고 개인적으로는 생각합니다) GUI 에서 디플로이 하는 방법 필요한 파일을 Github 의 레포지토리에 추가합니다. 필요한 파일은 main.py, requirements.txt, Dockerfile 입니다. 이번에 사용한 main,py 파일에 관해서는 다운타임검증에서 설명할테니 일단 생략하겠습니다. 각각 구동시키고 싶은 Bot의 소스코드를 작성합니다. requirements.txt 파일은 pip freeze..

개인 프로젝트/python

Railway 를 사용한 Discord Bot 의 구축과 응용 (1)

들어가며 무료로 사용 가능한 호스팅 서비스인 Railway 와 Discord.py 를 사용한 Discord Bot 의 구축과 운용에 관해 정리해보았습니다. 2023/09/17 추가 기록 Railway의 호스팅 서비스가 유료화되었습니다. 내용은 이하 사이트를 참고해주세요. 스펙이 좋아서 어디로 갈아탈지 고민중입니다. 개인적으로는 5달러를 계속 지불할 용의도 있습니다. Railway 란 Railway 란, 클라우드 베이스로 어플리케이션의 디플로이가 가능한 플랫폼입니다. 말하자면 PaaS(platform as a Service) 라고 불리는 서비스로 분류됩니다. 대단히 심플한 UI 에다가 GitHub 연동이 가능하여 쉽게 디플로이가 됩니다. 또한, 여러 언어를 사용 가능하며, 소규모 프로젝트부터 대규모 프로젝..

개인 프로젝트/python

render를 사용한 Discord Bot 구축과 응용 (3)

Uptime Robot 설정 Uptime Robot 이 뭐냐면 무료로 web 사이트를 사활감시(가동상황 지속적 체크) 지속 모니터링해주는 서비스입니다. 사이트에 액세스해서 우상단의 [Register for FREE] 에서 계정을 만듭니다. 계정을 만들었다면 자동적으로 "Dashboard" 페이지로 이동할 겁니다. (이동하지 않는다면 홈에서 [Go to Dashboard] 를 누릅니다) 계속해서 좌상단의 [Add New Monitor] 에서 감시대상을 추가합니다. 설정은 Monitor Type 을 HTTP(s) 로, Friendly Name 에 적당한 이름, URL에 아까 메모해둔 Render에 표시되었던 URL, Monitoring Interval 을 5분으로 설정(무료 계정에서는 5분 간격이 제일 짧은..

개인 프로젝트/python

Render 를 사용한 Dicord bot 구축과 응용 (2)

한 포스팅에 다 올리려니까 양이 좀 많아보여서 잘랐습니다. Web Services on the free instance type are automatically spun down after 15 minutes of inactivity. When a new request for a free service comes in, Render spins it up again so it can process the request. https://docs.render.com/free Render 에는 GitHub 의 repository에 변경이 생겼을 때, 자동적으로 재 deploy 해주는 기능이 있습니다. Deploy 계정의 준비가 되었으면 드디어 Deploy 하러 가보겠습니다. 필요한 파일을 gitHub의 repo..

개인 프로젝트/python

Render 를 사용한 Discord Bot 구축과 운용 (1)

찾아보니까 Heroku 가 작년인가? 에 유료화가 되어서... 디스코드 봇을 배포해보기에는 허들이 높아졋당.. 그러던 와중 따라해 볼 만한 qiita 의 포스트를 발견, 다른 분도 필요할지도 모르니까 번역해둡니다. 제일 하단에 원문이 있으니 원문 보실 분들은 원문으로. 저는 한국어로 읽기 편하게 간딘히 조금 다듬었음을 알립니다. 무료로 쓸 수 있는 호스팅서비스인 Render 와 Discord.py를 사용한, Discord Bot의 구축과 운용에 관해 정리해보았습니다. Render 란 Render 란, 웹사이트나 어플리케이션을 호스트하기 위한 클라우드호스팅 서비스입니다. 정적사이트, Docker 컨테이너, 서버리스 함수, 데이터베이스, 백엔드 API 등, 여러 종류의 어플리케이션을 호스팅할 수..

개인 프로젝트/python

Docker 에 관해 개인적으로 읽고 정리

개인적으로 얄팍한 코딩사전 줄여서 얄코님의 영상을 본 게 전부이다. 컨테이너를 들어서 통째로 옮겨줘용 원래 엄청나게 복잡했던 무슨 일을 줄여줘용 독커는 복어에용 복.커. (이런 영상 아닙니다) 밖에는.... 그런데 왜 도커에 대해 포스팅을 하냐면, 디스코드 봇을 만들어서 24시간 돌아가게 하려고 보니까 어떤 분이 도커파일을 만드신겨. 그게 딱 다섯줄밖에 없었는데 이게 디스코드 봇 만들어서 올리는데 왜 필요한거지의 호기심 때문에 시작되었다. 다른 포스팅을 봐도 역시 이과생들의 말은 알아듣기 어렵네만 오백번 ... 차근차근 읽으면서 모르는거 또 찾아보고 피상적으로나마 알게 되었다. 하이퍼 바이저(Guest OS) - (생성) > 운영체제1(Cpu 할당), 운영체제 2(Cpu 할당), 운영체제3(Cpu할당....

우주필링마카롱
'개인 프로젝트/python' 카테고리의 글 목록