외국 웹 사이트를 크롤링할 때 한국 IP로 접속하기 힘든 경우가 있다. 이럴 때 해외 리전에 있는 IP를 활용하면 손쉽게 접근할 수 있으므로, GCP(Google Cloud Platform)의 VM을 활용하는 방법을 소개해보고자 한다.
준비
- VM 인스턴스 생성
우선 [GCP] -> [Compute Engine] -> [VM 인스턴스]에서 인스턴스가 생성되어있는 상태를 전제로 이야기하려고 한다.
준비가 되어있지 않다면, 하기 링크를 따라서 간단하게 만들어볼 수 있다.
그리고 VM 인스턴스를 만들어주었다면, 인스턴스 세부정보로 들어가서
[방화벽]에 HTTP,HTTPS를 허용해준다.
내가 알기로는 jupyter notebook은 http기반이기에 http만 선택해주면 될 것 같은데, https도 혹시 모르니 체크해두었다.
2. [VPC 네트워크]-[외부 IP 주소]에서 고정을 선택해준다.
3. [VPC 네트워크]-[방화벽 규칙]-[방화벽 규칙 만들기]에 들어간다.
그리고 이제 거의 끝났다.
ip 범위는 0.0.0.0/0 으로 설정해주고, http의 기본 포트인 80으로 tcp를 설정해준다.
jupyter notebook 설치
이제 다시 [Compute Engine]-[VM 인스턴스]에 들어가서 내가 만든 인스턴스의 SSH를 클릭해 터미널로 접속한다.
기본적으로 anaconda를 설치하면 jupyter notebook도 사용할 수 있기에 먼저 anaconda를 설치하면 된다. 하지만 여기서 아나콘다 설치까지 설명하기에는 너무 포스팅이 길어질 것 같기 때문에 이미 설치되어 있다는 전제하에 진행을 한다.
- 주피터 노트북 설치
conda install jupyter
2. config 파일 생성
jupyter notebook --generate-config
3. config 파일 열기
vi ~/.jupyter/jupyter_notebook_config.py
4. config 파일 편집
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 80 # http 기본포트가 80
5. jupyter notebook 실행
jupyter notebook --allow-root
이제 아래와 같은 주소로 이루어진 주소를 터미널에서 확인할 수 있을 것이다.
http://인스턴스이름:80/?token=~
여기서 인스턴스 이름을 외부 ip 값으로 넣고 입력한 뒤 토큰값을 입력해주면 정상적으로 접속이 된다.
이제 VM환경에서 jupyter notebook으로 코드를 작성하면 된다
참고
- 터미널에서 ipynb 파일을 실행하는 방법
pip install runipy
runipy <파일명>.ipynb