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
보안그룹 설정
혹시 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
'Research > Python' 카테고리의 다른 글
Python_가장 긴 알파벳 정렬된 substring 찾는 코드 (0) | 2023.06.06 |
---|---|
python_nohup으로 앱 24시간 켜두기 (0) | 2023.04.17 |
Python_WSGI? ASGI? (0) | 2023.04.10 |
Chrome_웹사이트가 자바스크립트 기반인지 확인하는 방법 (0) | 2023.03.26 |
XPath_Basics (0) | 2023.03.26 |
댓글