AWS LightSail 에 Crawler 를 배포할 일이 생겨서, 배포했던 경험을 공유합니다.
(Crawler 는 Python 으로 이미 개발되어서 Repository 에 올라가있다고 가정한다.)
1. AWS 계정 생성 후 카드 연결하고 Lightsail 인스턴스를 생성한다.
Create an instance | Lightsail (amazon.com)
https://lightsail.aws.amazon.com/ls/webapp/create/instance?region=ap-northeast-2
lightsail.aws.amazon.com
요금제를 선택하고 인스턴스의 이름을 정한다.
네트워크 탭에서 고정 IP 를 추가한다.
- Django 의 경우 8000 번 포트를 열어준다.
MobaXterm 을 설치한다. (필수는 아님)
MobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)
MobaXterm free Xserver and tabbed SSH client for Windows
The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!
mobaxterm.mobatek.net
LightSail Account 로 들어가서 SSH Key를 다운 받는다.
MobaXterm 을 실행하고 Session 버튼을 클릭
고정 IP 및 username, 그리고 다운받은 SSH 를 Use private Key 에 넣어준다.
접속한다.
- 시간대 한국으로 바꾸기
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- Ubuntu 업데이트 하기
sudo apt update
sudo apt upgrade
- build-essential 설치
sudo apt-get install build-essential
- unzip 설치
sudo apt-get install unzip
- Chrome 설치하기 (명령어 4개 순서대로 실행, 마지막은 Chrome 버전 확인)
$ 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 update
$ sudo apt-get install google-chrome-stable
$ google-chrome --version
Google Chrome 115.0.5790.110
- 설치된 Chrome 버전 확인
https://sites.google.com/chromium.org/driver/downloads?authuser=0
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se
sites.google.com
아쉽게도 여기에는 115 버전 드라이버가 없다.
https://googlechromelabs.github.io/chrome-for-testing/
Chrome for Testing availability
This page lists the latest available cross-platform Chrome for Testing versions and assets per Chrome release channel. Consult our JSON API endpoints if you’re looking to build automated scripts based on Chrome for Testing release data. Last updated @ 20
googlechromelabs.github.io
자신의 버전에 맞는 chromedriver 주소를 복사한다.
https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.110/linux64/chromedriver-linux64.zip |
- bin 으로 이동해서 chromeDriver 를 받아서 압축을 푼다.
cd /bin
sudo wget -N https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.110/linux64/chromedriver-linux64.zip
sudo unzip chromedriver-linux64.zip
cd chromedriver-linux64/
sudo mv chromedriver ../chromedriver
- 가상환경 설치
sudo apt install python3-venv
- 프로젝트 폴더와 가상환경 폴더 생성
mkdir projects
mkdir venvs
- 가상환경 생성
cd venvs
python3 -m venv mysite
- 가상환경으로 진입
cd mysite/bin
. activate
벗어나려면
deactivate 명령 수행
- wheel 패키지 설치하기
pip install wheel
git 이랑 프로젝트 연결하기
- ssh key 생성하기 ( Github에서 Private Repository 를 다운받기 위해 필요한 절차)
ssh-keygen -t rsa
$ cd ~/.ssh
$ cat id_rsa.pub
cat 해서 출력되는 결과 복사하기
Github, Profile 에서 Settings 로 이동
좌측에 SSH and GPG keys 로 이동
New SSH Key
Key 아까 복사한 내용 붙여넣고 Add SSH Key 클릭
Github Repository 에서 <> Code 클릭 후 SSH 주소 복사
- AWS Lightsail 에 git clone 받기
- 프로젝트에 필요한 라이브러리 설치하기
pip install -r requirements.txt
- mysqlclient 설치시에 오류가 나면 아래 명령어 실행 후 다시 pip install -r requirements.txt 실행
sudo apt install default-libmysqlclient-dev pkg-config -y
apt-get -y install python3.8-dev
실행한 코드를 실행하여 크롤러가 정상적으로 동작하는지 확인한다.
네이버 쇼핑의 경우 현재 115 버전을 쓰면 비정상적인 요청으로 차단을 하는 이슈가 있음
다음에는 114 버전을 설치하는 방법에 대해서 포스팅 하겠습니다.
참고자료
https://product.kyobobook.co.kr/detail/S000001817996
Do it! 점프 투 장고 | 박응용 - 교보문고
Do it! 점프 투 장고 | 파이썬 입문자도 2주 만에 만들어 운영할 수 있는 게시판 서비스! 게시판 만들기로 웹 개발 전 과정 완벽 입문!파이썬 입문서로 많은 독자에게 사랑받는 《Do it! 점프 투 파이
product.kyobobook.co.kr
[Ubuntu] Ubuntu 서버에 Selenium 설치하고 사용하기
Mac에서 Selenium을 활용하여 열심히 크롤링 코드를 작성하여 제대로 동작하는지 확인한 후 호기롭게 Ubuntu 서버에 그대로 파일을 옮긴 뒤 selenium 라이브러리를 설치하고 Linux용 chromedriver를 다운받
somjang.tistory.com
https://www.sysnet.pe.kr/2/0/13377
오류 유형: 867. 파이썬 mysqlclient 2.2.x 설치 시 "Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
글쓴 사람 정성태 (techsharer at outlook.com) 홈페이지 첨부 파일 부모글 보이기/감추기 (연관된 글이 2개 있습니다.) 파이썬 mysqlclient 2.2.x 설치 시 "Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually"
www.sysnet.pe.kr
https://heehehe-ds.tistory.com/164
[Python] 패키지 설치 시 PEP 오류 해결 방법
pip로 설치 시 다음과 같은 오류가 발생할 경우의 해결방법 ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly pip install --upgrade pip setuptools wheel pip install opencv-python
heehehe-ds.tistory.com
https://vhrehfdl.tistory.com/152
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
에러메시지 : error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 에러원인 : Docker에서 Polygon3를 설치하려고 했는데 계속 알 수 없는 에러가 났다. 의존성 문제인 것 같았는데 에러메시지를 자세히
vhrehfdl.tistory.com
Amazon(AWS) Lightsail Instance를 RDS 서비스와 연결하기
Lightsail Instance VPC 피어링 활성화와 RDS 보안 그룹 인바운드 규칙 설정하기
taesun.medium.com
'기록 > 개발관련' 카테고리의 다른 글
Windows11 + VirtualBox + Ubuntu + MariaDB (0) | 2023.11.01 |
---|---|
Chpat GPT의 나의 알고리즘 풀이 법 개선을 요청했다 (2) | 2023.05.02 |