맨날 프론트 끄적이고 Netlify나 쓰던 내가 그린디벨로퍼스가 되니깐 Ncloud로 Linux 서버 만들어서 디스코드 봇 배포를 성공했다고?

Jiwon Lee·2023년 4월 5일
0

CodeDog 제작기

목록 보기
2/2

자랑스럽구나 살아있는 꽁치야


잡설

우리 동아리가 얼마전 네이버클라우드 그린 디벨로퍼스와 공식적으로 제휴를 맺었다 두둥~ 사실 멋사도 제휴가 되어있고 심지어 우리 학교도 그린 루키 제휴인데 아무도 우리한테 쓰는 방법을 안 알려줄 정도로 활성화가 잘 안 되어 있었다 ... ㄱ-

우리_로고_언제_들어가요.png
우리 동아리도 얼른 로고 외주좀 맡겨야 할 ?것같습니다만? 중간고사 끝나자마자 외주 맡기고 명함 뽑아달라고 징징해야겠다 ㅎㅎ

어쨌든 우리 동아리 리드진의 열정적인 PT를 통해 좋은 기회로 제휴를 맺게 되었고 나는 얼씨구나 디코봇을 네이버클라우드로 배포해야겠다는 생각으로 무작정 신규 회원 크레딧 신청해서 리눅스 서버를 파뒀다. ( 진짜 아무것도 안보고 그냥 아 ㅋㅋ 이거면 되겠지 ㅋㅋ 하고 서버만 파둠 ) 근데............ discord.py 배포 찾아보니까 7할은 헤로쿠고 3할은 aws 관련이어서 나는 멘붕이 오기 시작했다. 아. 아니... 그냥 리눅스로 배포하면 안 되는 거였냐고~

그래도 나는 운영진이니깐... 프론트엔드트랙 리드니깐... 눈물을 머금고 바위치기를 시작해따. 그래도 다행히 Ncloud에서 제공하는 쉬운 시작 가이드가 나한테 꽤나 큰 도움이 됐다... VPC가 뭔데?... 하면서 검색부터 시작해서 서버를 파기 시작했다... 많이 헤매긴 했지만 그래도 Ncloud 많이 써주세요... 내가 열심히 블로깅할게요 ...


NAVER CLOUD PLATFORM Server 가이드

😗 서버 생성 전 기본 설정

1. VPC 설정하기

VPN = 가상사설망( 실제로 같은 네트워크, 논리적으로 다른 네트워크 )

VPC = Virtual Private Cloud!

옆집도 안방이 있고 우리집도 안방이 있지만 서로 안방을 들었을때 헷갈리지 않습니다. “안방”, “작은방”, “큰방”처럼 내부에서 쓰는 주소를 사설아이피 대역이라고 부르며 내부 네트워크내에서 위치를 찾아갈때 사용합니다.

-> 무릎을 탁쳣습니다... 고마워요...

VPC의 IP 주소 범위는, private 대역(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) 내에서 /16~/28 범위

  • 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
  • 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
  • 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)

이름 적어주고 CIDR 블록은 대충 범위 내로 적어주면 된다 !

2. 서브넷 설정하기

Subnet → VPN/VPC를 더 작게 나눠서 더 많은 네트워크 망을 사용하기 위함


🔥 리눅스 서버 만들기

1. 서버 추가하기

  1. 서버 추가 - 필요한 정보 넣고 Network Interface는 새로 추가 후 다음으로 ~~

  1. 인증키 생성 후 잘 저장해두기 … ( 잃어버리면 안 됨 )

  2. 최종 확인 완료 후 상태가 운영중으로 바뀔 때까지 기다리기

2. 서버 설정하기

  1. Public IP 탭에서 공인 IP 신청하기 ( 따로 입력할 건 없음 )

  2. ACG 탭에서 생성 밑의 설정 버튼 눌러서 아래 설정의 규칙이 없을 경우 추가해줌

    • 프로토콜: TCP
    • 접근소스: 0.0.0.0/0
    • 허용 포트: 3389

다시 서버 탭에서 서버 관리 및 설정 변경 - 관리자 비밀번호 확인 에서 인증키 파일로 root 비밀번호 발급

3. 서버 접속하기 ( MAC 기준 )

  1. 서버 상세 정보에서 공인 IP 복사해두기
  2. puTTy 혹은 mac 터미널로 ssh 접속하기
    • 터미널에서 ssh -l root -p '22' '공인 IP’ 입력
    • root로 로그인
    • 로그인 후 passwd root 명령어로 비밀번호 변경

😃 Discord.Py 배포를 위한 준비

1. Python 최신 버전 설치하기

https://earthconquest.tistory.com/242 블로그 참조

  • 파이썬에 필요한 플러그인 다운로드 yum install gcc openssl-devel bzip2-devel libffi-devel -y
  • 파이썬 최신 버전 설치 wget [https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz](https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz) tar -xvf Python-3.9.5.tgz
  • 컴파일 cd Python-3.9.5/ ./configure --enable-optimizations
  • 설치 make altinstall
  • 바이너리 파일 위치 찾기 > which python3.9 /usr/local/bin/python3.9
  • bash파일에 파이썬 별칭을 만들고 적용하기
    1. vi /root/.bashrc → alias python="/usr/local/bin/python3.9” 추가하고 저장
    2. source /root/.bashrc 로 적용
    3. 잘 적용되었는지 python -V로 확인
  • pip 설치하기
    1. yum install epel-release ( pip 설치하려면 저장소 활성화 필요 )
    2. yum install python3-pip

    command not found pip 오류 발생 시 pip3 install --upgrade pip 입력해서 업데이트

2. Git 설치하고 프로젝트 clone 해오기

yum install git ( 아마 설치되어 있을 거임 )

git --version

git clone 깃저장소이름


봇 실행하기

1. 실행 준비

cd 프로젝트명

pip install discord.py → 혹시 다른 모듈 있을 경우엔 requirements 같은 거 쓰시면 되겟죠

pip list로 discord가 뜨는데 module을 찾지 못할 경우 파이썬 버전이 여러개일 수도 …

파이썬 폴더 확인해보고 구버전 삭제 혹은 discord.py 삭제 후 재설치

2. nohup으로 실행하기

chmod 755 bot.py → nohup 실행을 위해서는 권한 755 이상이어야 함

nohup python3.9 -u bot.py] &

로그 확인은 tail nohup.out

쉽게 설명한 nohup 과 &(백그라운드) 명령어 사용법

  • nohup → ssh 세션이 끊어져도 프로세스 유지
  • & → 백그라운드에서 실행

종료 시에는 프로세스 찾아서 kill

ps -ef | grep python3.9 -u bot.py → 안 나올 경우 그냥 … ps -ef 해서 찾기

kill -9 PID → PID는 가장 왼쪽의 숫자

실행 시 발생할 수 있는 에러들 …

Non-ASCII 오류

  • 맨 윗 줄에 # -*- coding: utf-8 -*- 추가
  • 그리고 파이썬 3으로 실행 안 하면 뜰 확률 높음

no module found 어쩌고 오류들

보통 이 오류는 모듈이 설치 안 되어 있으면 나는 오류인데 나는 서버 설정을 하면서 python 3.9를 새로 설치하다보니 오류가 많이 났다... 왜냐면 Python3.6이 같이 있었음... 왠지는 저도 몰라요 ... pip list 했는데 모듈 말짱히 있으면 무조건 python3.9로 명령어 실행시켜줍시다 ^^ ... 만약에 그래도 안 돌아가면 3.9가 아니라 다른 버전에 깔린 거라 확인 해봐야 함!

Ncloud Server 생성 후기

사실 서버 생성 자체는 무지 쉽고 편했다 가이드도 잘 되어있고... 근데 나같은 알못 학생에게는 그 이후가 좀 어렵지 않나 ... ㄱ- ㅠㅠ 강의도 없고 하니깐 좀 어려웠던 것 같다. nohup 찾는 것도 챗gpt한테 물어봐서 알아냄 ㅋㅋㅋㅋㅋㅋㅋ

쉽게 따라할만한 배포 실습 가이드나 강의, 아니면 약간 다른 배포 플랫폼처럼 통째로 자동 배포해주는 그런 기능도 있으면 접근성도 그렇고 많이들 쓰지 않을까 하는 생각이 들었다.

다음 번에는 Ncloud의 다른 서비스를 또 활용해봐야겠다. 클라우드 고수가 되겟어 ...... 이번에 클라우드 기초 교육도 13일에 받을 예정인데 그것도 후기 올려야겠당 ㅋㅅㅋ

profile
노는 게 제일 좋은데 공부는 하고 싶어요 😗

0개의 댓글