Slack에서 ChatGPT와 함께하는 AI 챗봇 만들기 (7)

반응형

슬랫 봇을 AWS 서버에 배포하기

AWS 무료 프리 티어 가입하기

다음 단계를 따른다.

1단계: AWS 프리 티어 가입 페이지로 이동하기

AWS 프리 티어 가입 페이지(https://aws.amazon.com/free/)로 이동한다. 그리고 [무료 계정 생성] 버튼을 클릭한다.

AWS 프리 티어는 1년간 유지된다. 이 기간 동안 EC2를 무료로 사용할 수 있다. EC2는 한달에 750시간이 무료이므로 1년 동안 EC2 서버 1개를 무료로 사용 할 수 있다. 또한, DynamoDB나 Lambda와 같은 상시 무료 서비스도 있으며, AWS 프리 티어 기간이 종료된 후에도 이러한 상시 무료 서비스는 계속 무료로 사용할 수 있다.

2단계: AWS 계정 만들기

AWS 계정을 만들기 위해서는 이메일이 필요하다. 이메일과 AWS 계정 이름을 입력하고 [이메일 주소 확인] 버튼을 클릭한다. 그러면 이메일로 확인 코드가 전송된다.

이메일에서 확인 코드 를 확인한 후, AWS 회원가입 화면으로 돌아온다. 확인 코드 입력한 뒤 [확인] 버튼을 클릭한다.

그다음 사용자 암호을 두 번 입력하고 [계속(1/5단계)] 버튼을 클릭한다.

3단계: 연락처 정보 입력하기

다음 화면에서 이름, 연락처, 주소 정보를 입력한다. 그러고 나서 AWS 이용계약 및 개인정보의 수집 및 이용에 대한 사항 에 동의한 다음 [계속(2/5단계)] 버튼을 클릭한다.

4단계: 신용카드 정보 입력하기

AWS 프리 티어에 가입하려면 유효한 신용 카드 정보를 제공해야 한다. 하지만 무료 티어에 포함된 서비스만 사용하는 경우에는 수수료가 부과되지않는다. 또한 확인을 위해 1달러가 청구되지만 즉시 환불된다. 신용카드 정보를 입력하고 [계속(3/5단계)] 버튼을 클릭한다.

신원 확인을 위해 전화번호를 입력하면, 제공한 번호로 확인 코드를 받게 된다. 그리고 확인 페이지에 코드를 입력한 후 [계속(4/5단계)] 버튼을 클릭한다.

5단계: AWS 프리 티어 가입 완료하기

마지막으로 기본 지원 - 무료 를 선택하고 [가입 완료] 버튼을 클릭한다.


AWS에 EC2 서버 생성하기

방금 생성한 AWS 계정으로 AWS에 로그인한다.

아래는 AWS에 로그인하면 보게 되는 첫 화면이다. 우선 AWS 리전을 서울로 변경한다.
인스턴스 생성을 위해 인스턴스로 이동한다. 그리고 인스턴스 생성을 위해 [인스턴스 시작] 버튼을 클릭한다.

인스턴스 생성 화면에서 인스턴스 이름을 입력하고, 어떤 종류의 서버를 사용할지 선택한다. macOS는 무료 프리 티어를 지원하지 않으므로, 아마존 리눅스와 우분투, 윈도우 중에서 선택한다. 나는 우분투를 선택했다.

그다음 인스턴스 유형을 선택한다. 프리 티어에서는 t2.micro만 사용 가능하다. (t2.micro를 사용할 수 없는 리전에서는 t3.micro도 사용 가능하다.)

그 다음 키 페어를 생성해야 한다. [새 키 페어 생성] 링크를 클릭한다.

키 페어 생성 화면이 나타나면 키 페어 이름을 입력하고 [Create key pair] 버튼을 클릭한다. 그러면 키 파일이 생성되어 다운로드된다. 이 키 파일은 공개 키와 개인 키로 구성된 키 쌍으로 보안 자격 증명 세트이다. 그리고 AWS EC2 인스턴스에 연결할 때 신원을 증명하는 데 사용된다. 이 키는 나중에 E2 인스턴스에 연결할 때 필요하므로 안전한 곳에 보관한다.

다음으로 스토리지를 구성한다. 프리 티어에서는 최대 30GB의 스토리지를 사용할 수 있다. 30을 입력하고 gp3를 선택한 후, [인스턴스 시작] 버튼을 클릭한다.

인스턴스 목록에 방금 생성한 인스턴스가 나타나야 한다.

그리고 인스턴스 ID를 클릭하여 퍼블릭 DNS 주소를 확인한다. 이는 외부에서 서버에 접속하는 데 필요한 정보다.


AWS EC2에 접속하기

AWS EC2 서버에 접속하기 위해서 ssh 명령어를 사용한다. 이전에 확인한 퍼블릭 DNS 주소와 AWS 키를 사용하여 접속한다.

chmod 400 aws_slack_bot.pem
ssh -i "./aws_slack_bot.pem" ubuntu@본인의 퍼블릭 DNS 주소


AWS EC2 서버에 접속하면 다음과 같은 화면을 볼 수 있다.

우분투에서 최신으로 패키지로 업데이트한다.

sudo apt-get update & apt-get upgrade       


우분투에 Python3를 설치한다.

sudo apt-get install python3 python3-pip

~/.bash_profile 파일에 PATH 를 추가한다.

echo -e "export PATH=$PATH:/home/ubuntu/.local/bin\n" >> ~/.bash_profile 
source ~/.bash_profile

파이썬 버전을 확인한다.

python3 --version

파이썬 패키지 인스톨러 버전을 확인한다.

pip3 --version

슬랙 봇을 실행할 디렉토리를 생성한다.

mkdir slack_bot

슬랫 봇 배포하기

이제 AWS EC2 서버에 슬랫 봇을 배포해보자. main.py 파일 1개만 복사하면 되므로 scp 명령어을 사용한다. 하지만 파일 수가 많아지면 파일을 압축하거나 Github를 이용해야 한다.

다음 명령을 사용하여 main.py 파일을 EC2 서버의 slack_bot 폴더에 복사한다.

scp -i "./aws_slack_bot.pem" main.py ubuntu@본인의 퍼블릭 DNS 주소:slack_bot

파이썬 패키지 설치하기

다시 AWS EC2 서버에 접속해서 slack_bot 폴더로 이동한다. pip3 install 명령을 사용하여 슬랫 봇에 필요한 파이썬 패키지를 설치한다.

cd slack_bot
pip3 install slack_bolt openai

환경 변수 등록하기

아래의 3개 토큰 값을 ~/.bash_profile 파일에 추가한다.

export SLACK_BOT_TOKEN=여러분의 슬랫 봇 토큰
export SLACK_APP_TOKEN=여러분의 슬랫 앱 토큰
export OPENAI_API_KEY=여러분의 OPENAI API 키

그리고 방금 입력한 환경 변수를 시스템에 적용한다.

source ~/.bash_profile

슬랙 봇 실행하기

슬랫 봇을 실행한다.

python3 main.py

앱이 정상적으로 실행되면 다음과 같이 출력된다.

⚡️ Bolt app is running!

이 방법으로 슬랙 봇을 실행하면, 서버에 연결되어 있는 동안에만 슬랙 봇이 실행된다. 서버와의 연결이 끊어지면 슬랙 봇도 종료된다. 이 문제를 해결하려면 nohup 명령을 사용해야 한다.

nohup 명령을 사용하면 창을 닫아도 백그라운드에서 계속해서 실행된다.

nohup python3 -u main.py &

아래 명령을 사용하여 서버 로그를 확인할 수 있다.

tail -f nohup.out

슬랙 봇 중지하기

슬랙 봇을 중지하려면, 실행 중인 프로세스 ID를 확인하고 해당 프로세스를 종료해야 한다.

프로세스ID 확인하기

ps -ef | grep python

프로세스 종료하기 kill -9 명령 다음에 프로세스ID를 입력하여 해당 프로세스를 종료한다.

kill -9 4032



다음에는 파파고 번역을 붙여 한국어로 대답하게 하자.




or
[카카오페이로 후원하기] [토스페이로 후원하기]

반응형