구글 클라우드 서버의 HTTP 포트를 SSH 로 터널링해서 로컬에서 접속하기
조대협 (http://bcho.tistory.com)
구글 클라우드 VM에 서버를 설치한 후 웹을 접근하고자 할때, 설치한 애플리케이션이 ACL (접근 제어) 처리가 안되어 있는 애플리케이션이 있을 수 있다. 특히 관리자 콘솔 같은 경우에 이런 경우가 많은데, 아파치 에어플로우 역시도 설치 후에 웹 서버를 띄우면 포트가 모두 퍼블릭으로 오픈되기 때문에 관리자만 액세스가 가능하도록 ACL 처리를 할 필요가 있다.
이를 위한 방법으로는 몇가지가 있는데
- 방화벽으로 특정 포트만 허용 하는 방법
- 앞에 nginx나 apache를 넣어서 HTTP BASIC AUTH등 인증 방식을 추가하는 방법
- Google Cloud Identity Aware Proxy를 이용하여, 구글 클라우드 계정 사용자에게 접근 권한을 부여 하는 방법
- 해당 HTTP 포트를 SSH로 터널링 하는 방법
매우 간단하게 할 수 있는데, 로컬에 gcloud SDK가 깔려 있을때
gcloud compute ssh {인스턴스명} --project {내프로젝트ID} --zone {인스턴스가 있는 존 이름} --ssh-flag="-L" --ssh-flag="{랩탑에서 접속할 포트번호}:localhost:{인스턴스의 포트 번호}"
로 기입해주면 된다.
예를 들어 terrycho-ml 프로젝트의 us-central1-f 존에 있는 hello-airflow 인스턴스의 8080 포트를 로컬에서 localhost:2222로 접근하도록 포워딩 설정을 할 경우 다음과 같이 하면 된다.
gcloud compute ssh hello-airflow --project terrycho-ml --zone us-central1-f --ssh-flag="-L" --ssh-flag="2222:localhost:8080"
'클라우드 컴퓨팅 & NoSQL > google cloud' 카테고리의 다른 글
Stackdriver profiler (0) | 2018.04.08 |
---|---|
구글 스택드라이버를 이용한 애플리케이션 로그 모니터링 (0) | 2017.12.11 |
구글 클라우드의 서버리스 서비스 Cloud Functions (1) | 2017.03.20 |
한시간에 만드는 대용량 로그수집 분석 시스템 (1) | 2017.01.24 |
구글 빅쿼리 사용시 count(distinct)의 값이 정확하지 않은 문제 (0) | 2016.12.15 |