-
[뉴스검색봇] 8. 오라클 클라우드를 이용해 디스코드 봇을 호스팅 해보자!DEVELOP/discord-bot 2022. 5. 21. 20:52
드디어 봇 개발의 최종단계인 서버 호스팅을 할 차례다.
앞서 말했듯 나는 OCI 프리티어를 이용할 것이다.
계정 생성 방법은 블로그 이전글에 작성하였다. https://shurimp.tistory.com/11?category=930777
오라클 클라우드 홈페이지에 접속한 후, 메뉴에서 Create a VM instance를 클릭한다.
프리티어 서비스 내에서 이용할 것이기 때문에, 다른 설정들은 건드릴 필요 없고 이름만 설정해주면 된다.
SSH 키를 다운받아준다.
Private key와 public key 모두 저장하고 create를 누르면 인스턴스가 생성된다.
이 역시 인스턴스를 최초로 생성할 때만 다운이 가능하기 때문에, 실수로 삭제하거나 다운받지 않고 넘기지 않도록 주의해야 한다.
처음 인스턴스를 생성하면 아이콘이 주황색이고, provisioning 상태인데, 조금 기다리면 Running으로 바뀌고 아이콘도 초록색으로 바뀐다.
이제 이 인스턴스에 SSH 키를 통해 접속해야 한다.
이를 위해 Bitvise 프로그램을 다운받았다. https://www.bitvise.com/
다운로드 탭의 첫번째를 받으면 된다. 설치파일을 실행하면 약관에 동의할거냐고 묻는 창이 나오는데,
agree를 선택해준다.
Bitvise를 실행하면 이런 창이 뜬다.
[Server]의 Host에 만들어둔 인스턴스의 public IP 주소를 붙여넣는다. 포트번호는 22 입력.
Username은 [Authentication]의 username에 입력한다.
그 후, client key manager를 선택 후 아까 받아놓았던 .key파일을 임포트한다.
SSH 키를 임포트한 후, Initial method에서 publickey 선택, client key를 global 1으로 설정한다.
그 후 Log in을 누르면, SSH키로 접속이 가능하다.
맨 처음 로그인할 때, 로그인 정보를 저장할 것인지를 묻는 창이 뜨는데 저장한다고 눌러주면 된다.
로그인에 성공하면, 좌측에 새로운 메뉴들이 생긴다.
New terminal console을 누르면 콘솔창을 실행할 수 있다.
> curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - > sudo yum install -y nodejs > sudo yum install gcc-c++ make
콘솔창에 해당 명령어들을 한줄 씩 입력해 설치한다.
설치 완료 후, 좌측 메뉴의 New SFTP window를 열고 Remote files에 봇을 만든 프로젝트 폴더를 통째로 붙여넣기한다.
다시 터미널로 돌아가서, 해당 폴더로 경로를 이동한다.
ls는 디렉토리를 확인하는 명령어이다. 경로 이동 후, discord.js와 pm2를 설치해줘야 한다.
> npm i discord.js > npm i pm2
만약 pm2를 설치했는데도 pm2 명령어를 찾을 수 없다는 에러가 뜨면, 아래의 명령어로 다시 설치하면 된다.
> sudo npm i -g pm2
설치 완료 후, pm2 start (실행파일명).js를 입력해서 봇을 실행시킨다.
> pm2 start index.js
pm2 save는 현재 프로세스를 pm2에 저장해두는 명령어인데, 안해도 무방할 것 같다.
디스코드를 실행하면 봇이 온라인 된 것을 확인할 수 있다.
이제 터미널을 종료해도, 내 컴퓨터를 꺼도 봇이 24시간 내내 돌아간다! Wa!
호스팅 단계에서 엄청 고생할 거라고 예상했는데, 의외로 오류없이 잘 진행됐다.
이전글의 '그 오류'만 없었더라면 금방 끝났을 듯하다. 기능 자체가 많지 않았기 때문에...
어쨌든 실제로 사용할 수 있는 결과물을 만들었다는 것에 의의를 둔다.🤣
'DEVELOP > discord-bot' 카테고리의 다른 글
[뉴스검색봇] 9. 마무리 (0) 2022.05.22 [뉴스검색봇] 7. 왜 안되지? 왜 되지?! (0) 2022.05.17 [뉴스검색봇] 6. 봇 외형 단장하기 (0) 2022.05.17 [뉴스검색봇] 5. Pagination, 코드 리펙토링 (0) 2022.05.12 [뉴스검색봇] 4. 사용자 키워드 입력받기, Select menus, Button 만들기 (0) 2022.05.06