이제 서버 작업을 해야 한다.
서버는 총 3대를 사용했다. AWS의 무료서버는 정말 성능이 낮아서, 스크래핑도 제대로 버티지 못한다 ㅠ
그래서 GCP에서 무료 크레딧으로 쓸 수 있는 그래도 2코어 4GB는 되는 서버를 사용했다.
서버 구조
- AWS 서버 : WEB 서버 (FLASK)
- GCP 서버 : 스크래핑 스크립트를 주기적으로 수행 (20분마다)
- 나스 도커 컨테이너 : mariadb
서버 설치 작업 (우분투 기준)
1. 파이썬 설치, pip 패키지 설치
# 파이썬 설치 : python 이라는 명령어로 3 버전 이상을 실행하도록 하는 명령어입니다.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# pip3 설치
sudo apt-get update
sudo apt-get install -y python3-pip
sudo apt-get install python-pip
# 버전 확인
pip3 --version
# pip3 대신 pip 라고 입력하기 위한 명령어
# 아래 명령어를 입력하면 pip 라고 쳐도 pip3를 작동시킬 수 있습니다.
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
2. 파이썬 패키지 설치
pip install selenium
pip install bs4
pip install re
pip install pymysql
pip install opengrapher
pip install datetime
pip install lxml
3. 크롬설치 (https://webnautes.tistory.com/1184 참고)
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get updatet
sudo apt-get install goole-chrome-stable
4. 서버 시간 변경 (KST로 변경)
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
5. 포트포워딩 (접속시 :5000을 해줘야 하는데, 아예 안하도록 함)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
6. 크롬 드라이버 다운로드
- 검색해..ㅜㅜ
7. PYTHON 데이터 배치
- 웹페이지 : app.py
- 스크래핑 : SSP_main.py
8. 백그라운드에서 app.py 실행
nohup python app.py &
9. crontab으로 주기적으로 스크래핑 실행
00,20,40 * * * * python /home/ubuntu/uk_work/SSP/SSP_main.py
18,38,58 * * * * pkill chrome
'SCC 9기' 카테고리의 다른 글
[Troubleshooting] 사이트 데이터를 가져오지 못할 때 (5) | 2022.01.27 |
---|---|
[SCC 9기] - Project 회고록 : 8주간의 스파르타 코딩클럽 후기 (0) | 2020.09.08 |
[SCC 9기] - Project 회고록 : 8주간의 스파르타 코딩클럽 후기 (0) | 2020.09.03 |
[SCC 9기] - Project TIL : DB 스위칭 (0) | 2020.08.31 |
[SCC 9기] - Project TIL : DB 중복제거와 짧은 데이터 제거 (0) | 2020.08.31 |