0. 개요
JupyterHub를 통해 개발을 하고 있고 Teleport의 HTTP Proxy 기능을 활용해 원격 사용자가 웹 브라우저를 통해 안전하게 접속할 수 있도록 설정되어 있습니다.
최근 Teleport를 사용한 Proxy 연결 중 알 수 없는 끊어짐이 간헐적으로 발생하고 있어, 세션 안정성을 강화하기 위한 대안으로 SSH 기반의 기술을 통해 WEB JupyterHub를 사용할 수 있는 환경을 구축하기로 하였습니다.
그렇게 결론을 짧게 말하자면 SSH 연결을 통해 vs code에서 로컬 개발 환경을 구축하여 간단하게 작업도 가능하게 되었습니다.
Teleport를 사용하고 있음에도 왜 core tunnel이라는 것을 도입했는지, 도입했을때의 장점에 대해 알아보도록 하겠습니다.
특징 | Teleport HTTP Application | core tunnel - SSH (Secure Shell) |
프로토콜 | HTTP(S) | SSH 프로토콜 |
연결 안정성 | HTTP는 상태가 없는(stateless) 프로토콜로, 세션 유지에 의존적 | SSH는 상태가 있는(stateful) 연결을 유지 |
끊김 원인 | 네트워크 지연, HTTP 세션 만료, Keep-Alive 설정 불량 등 | 주로 네트워크 불안정, 터널 설정 문제 등 |
목적 | 웹 애플리케이션 또는 HTTP 서비스에 주로 사용 | 터미널, 파일 전송, 포트 포워딩 등 광범위한 서버 작업 지원 |
VSCode와의 연동 | 간접적으로 지원 (HTTP를 통한 REST API 통신) | VSCode의 Remote SSH 확장 프로그램에서 직접적으로 지원 |
1. Core Tunnel이란 무엇인가?
Core Tunnel은 SSH(Secure Shell) 기반의 네트워크 터널링 기술로, 원격 서버와 로컬 머신 간에 암호화된 "터널"을 생성하여 데이터를 안전하게 주고받을 수 있는 방법입니다.
이를 통해 외부에서 직접 접근할 수 없는 내부 리소스(예: 원격 데이터베이스, 내부 API 서버)에 안전하게 접근할 수 있습니다.
Core Tunnel은 SSH 프로토콜의 포트 포워딩 기능을 활용하여 특정 포트를 안전한 통로로 연결합니다. 이를 통해 로컬 머신에서 원격 서버의 자원을 마치 로컬 리소스처럼 사용할 수 있게 합니다.
2. 왜 Core Tunnel이 필요한가?
기존 HTTP 기반의 통신 방식은 다음과 같은 문제를 야기할 수 있습니다:
- 끊김 현상:
- HTTP 기반 연결은 짧은 세션 유지 기간 때문에 데이터 전송이 끊기거나 세션이 종료되는 일이 잦습니다.
- 특히 Teleport와 같은 HTTP Proxy 기반 접근에서는 Session Replay와 같은 기능 활성화로 연결 불안정성이 더 증가할 수 있습니다.
- 외부 접근 제한:
- 원격 서버의 리소스는 방화벽이나 네트워크 정책에 의해 외부에서 접근할 수 없는 경우가 많습니다.
- 보안 취약성:
- 암호화되지 않은 연결은 네트워크 상의 데이터 도청이나 중간자 공격(Man-in-the-Middle)에 노출될 위험이 있습니다.
Core Tunnel은 이러한 문제를 해결하기 위한 대안으로 사용됩니다. SSH를 통해 암호화된 안전한 통신 채널을 제공하며, 끊김 현상을 줄이고 지속 가능한 세션을 유지합니다.
3. Core Tunnel의 장단점
장점:
- 보안성:
- SSH 암호화를 통해 모든 트래픽이 보호되며, 외부 공격에 안전합니다.
- 세션 안정성:
- Keep-Alive 기능을 통해 세션이 끊기지 않고 지속적으로 유지됩니다.
- 유연성:
- 원격 서버의 리소스와 로컬 애플리케이션 간의 통신을 간편하게 설정할 수 있습니다.
- VPN 대체:
- 복잡한 VPN 설정 없이도 내부 네트워크 리소스에 접근할 수 있습니다.
단점:
- 초기 설정 복잡성:
- SSH 키 또는 인증 설정이 필요하며, 이를 구성하는 데 약간의 학습 곡선이 존재합니다.
- 세션 의존성:
- SSH 세션이 종료되면 터널도 함께 종료되므로, 세션 관리가 필요합니다.
- 성능 제한:
- 암호화/복호화 과정으로 인해 네트워크 성능이 약간 저하될 수 있습니다.
4. 신규 JupyterHub 작업환경에서 Core Tunnel 활용
- 문제점:
- 기존 Teleport를 통한 HTTP Proxy 기반 연결에서 끊김 현상이 자주 발생.
- 특히, Session Replay 기능 활성화로 인해 세션의 지속성이 떨어졌음.
- 대안:
- Core Tunnel을 통해 SSH 기반 세션을 제공.
- JupyterHub 등 다양한 도구가 안정적으로 연결될 수 있는 환경 조성.
- 결과:
- SSH 기반 Core Tunnel은 세션 안정성과 네트워크 보안을 동시에 강화.
- JupyterHub 및 데이터베이스 관리와 같은 작업에 높은 활용성을 제공.
5. Core Tunnel vs 다른 SSH 기반 기술
기능 | Core Tunnel | Autossh | Ngrok | Teleport |
SSH 기반 | 예 | 예 | 아니오 | 예 |
자동 재연결 | 예 | 예 | 아니오 | 예 |
보안 | SSH 암호화 | SSH 암호화 | SSL 암호화 | SSH 및 고급 보안 |
사용 편의성 | 높음 | 중간 | 매우 높음 | 중간 |
추가 기능 | 세션 관리 간단 | 세션 재연결 | HTTP/TCP 터널링 | 인증 및 감사 로그 |
적합성 | 일반 터널링 및 포트포워딩 | 안정적인 세션 유지 | 간단한 리소스 노출 | 엔터프라이즈 환경 |
6.결론
Core Tunnel은 안전하고 지속 가능한 연결을 제공하며, 기존 HTTP 기반 세션의 끊김 문제를 효과적으로 해결합니다.
또한, JupyterHub와 같은 개발 환경에서는 Core Tunnel을 활용하여 작업의 연속성을 유지하고 네트워크 보안을 강화할 수 있는 최적의 솔루션으로 자리 잡을 수 있습니다.
특히, Core Tunnel은 원격 서버에 연결된 리소스를 로컬 환경에서도 마치 로컬 자원처럼 활용할 수 있도록 지원합니다. JupyterHub 에서도 기존에 사용하던 커널을 그대로 사용하여 개발이 가능합니다. 이를 통해 개발자는 로컬 머신에서 데이터베이스, JupyterHub, 또는 기타 원격 서비스에 안전하게 접속하며, 로컬 개발 환경에서 작업의 효율성을 높일 수 있습니다.
Core Tunnel를 도입했다고 하여 Teleport를 사용하지 않는 것이 아닌 개발 환경은 Teleport를 기반으로 동작하며, Teleport 세션을 통해 원격 서버에 접속한 후 추가적인 SSH 터널링을 설정한 형태로 작업을 진행하고 있습니다.
'STUDY' 카테고리의 다른 글
[Udemy] 【한글자막】 Spring Boot 3 & Spring Framework 6 마스터하기! [최신판] (0) | 2024.05.12 |
---|---|
[Udemy] 실무 활용 중심의 MySQL 부트캠프 강의 후기 (0) | 2024.04.28 |