본문 바로가기
Research/Python

shootingstar_성공로그_Selenium 스크래퍼 flask 서버 EC2 Linux에 배포하기

by RIEM 2023. 4. 14.
728x90

EC2에 Sellenium 스크래핑 앱을 flask 서버로 띄우려는 시도를 한번 했는데 실패했다. 관련 파일들이 퍼즐처럼 꼬여서 다시 EC2를 파서 진행한다.

리눅스 접속

Ubuntu 대신 Amazon Linux 2023으로 진행해보자.

ssh로 EC2 linux 접속

초기화

//새 스크린에서 루트 유저로 시작하기
screen
sudo su

패키지 설치

yum install python3 -y
yum install git -y
yum install pip
pip install virtualenv

가상환경 설정

// 가상환경 생성 후 activate
virtualenv -p python3.9 my_app
source ./my_app/bin/activate

browser 및 driver 다운로드

// 브라우저를 먼저 다운받은 뒤 그 버전을 체크한다. 그리고 그 버전에 맞는 웹드라이버를 다운받으면 된다.

curl https://intoli.com/install-google-chrome.sh | bash
sudo mv /usr/bin/google-chrome-stable /usr/bin/google-chrome

//버전 확인
google-chrome --version

(my_app) [root@ip-172-31-81-68 home]# google-chrome --version
Google Chrome 112.0.5615.49

이 버전에 맞는 드라이버를 다운로드 해주자.
https://chromedriver.chromium.org/downloads

wget https://chromedriver.storage.googleapis.com/112.0.5615.49/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/chromedriver

// 설치 확인
chromedriver --version

 

추가 라이브러리 설치

pip install flask
pip install selenium==3.141.0
pip install python-dotenv
pip install requests
pip install waitress

스크래퍼 클론

// Scraper Clone
git clone https://github.com/thursdaycurry/shootingstar-scraper-flask.git
 

GitHub - thursdaycurry/shootingstar-scraper-flask

Contribute to thursdaycurry/shootingstar-scraper-flask development by creating an account on GitHub.

github.com

 

보안그룹 설정

혹시 5000번 포트를 열지 않았다면  아래와 같이 HTTP, HTTPS, TCP 5000 번 포트도 열어주자.

.env 파일 추가

원래 있던 .env 파일도 루트 디렉터리에 추가한다.

실행

브라우저 상에서 성공!

python main.py

flask --app main.py run 이 명령어으로는 실행이 안되는데 이건 왜 안되는지 모르겠다.

 

Insomnia로 간단한 GET 요청도 성공.

/scrape API도 느리지만 성공.

 

깨달은점

Ubuntu로 진행할 때는 자료도 부족하고 드라이버 설정이 복잡했는데, Linux 관련 자료(아래 링크)를 찾았기도 하고 왠이 이 방법이 더 깔끔하다는 느낌이 강하게 들었다. 이전에도 비슷한 생각을 자주 했는데 Linux EC2를 사용하면 빌드가 매끄러워지는 느낌을 또 받았다.

 

Reference

https://abhishek569.hashnode.dev/how-to-install-and-run-selenium-scrapper-in-flask-on-aws-ec2

728x90

댓글