wonpick
devvon
wonpick
방문자🌱
오늘
어제
  • 분류 전체보기 (146)
    • 개발 (42)
      • Spark (7)
      • Hadoop (3)
      • ML&DL (4)
      • Paper Review (0)
      • ETC (24)
    • STUDY (77)
      • Data Engineering (54)
      • Cloud (4)
      • Algorithm (5)
      • SQL (10)
      • Toy Project (1)
    • Android (2)
    • Backend (14)
    • 인턴 (0)
    • 공모전 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • cka
  • 쿠버네티스
  • 데이터엔지니어링
  • 최신 데이터 인프라 이해하기
  • Python
  • kodekloud
  • 자연어처리
  • 최신 데이터 인프라 이해하기 #7
  • 인턴강연
  • SQL

최근 댓글

최근 글

티스토리

Designed By.hELLO
wonpick

devvon

STUDY

Teleport 기반 Core Tunnel 도입으로 로컬 개발 환경 효율성 극대화하기

2025. 1. 5. 23:00

 

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 기반의 통신 방식은 다음과 같은 문제를 야기할 수 있습니다:

  1. 끊김 현상:
    • HTTP 기반 연결은 짧은 세션 유지 기간 때문에 데이터 전송이 끊기거나 세션이 종료되는 일이 잦습니다.
    • 특히 Teleport와 같은 HTTP Proxy 기반 접근에서는 Session Replay와 같은 기능 활성화로 연결 불안정성이 더 증가할 수 있습니다.
  2. 외부 접근 제한:
    • 원격 서버의 리소스는 방화벽이나 네트워크 정책에 의해 외부에서 접근할 수 없는 경우가 많습니다.
  3. 보안 취약성:
    • 암호화되지 않은 연결은 네트워크 상의 데이터 도청이나 중간자 공격(Man-in-the-Middle)에 노출될 위험이 있습니다.

Core Tunnel은 이러한 문제를 해결하기 위한 대안으로 사용됩니다. SSH를 통해 암호화된 안전한 통신 채널을 제공하며, 끊김 현상을 줄이고 지속 가능한 세션을 유지합니다.

3. Core Tunnel의 장단점

장점:

  1. 보안성:
    • SSH 암호화를 통해 모든 트래픽이 보호되며, 외부 공격에 안전합니다.
  2. 세션 안정성:
    • Keep-Alive 기능을 통해 세션이 끊기지 않고 지속적으로 유지됩니다.
  3. 유연성:
    • 원격 서버의 리소스와 로컬 애플리케이션 간의 통신을 간편하게 설정할 수 있습니다.
  4. VPN 대체:
    • 복잡한 VPN 설정 없이도 내부 네트워크 리소스에 접근할 수 있습니다.

단점:

  1. 초기 설정 복잡성:
    • SSH 키 또는 인증 설정이 필요하며, 이를 구성하는 데 약간의 학습 곡선이 존재합니다.
  2. 세션 의존성:
    • SSH 세션이 종료되면 터널도 함께 종료되므로, 세션 관리가 필요합니다.
  3. 성능 제한:
    • 암호화/복호화 과정으로 인해 네트워크 성능이 약간 저하될 수 있습니다.

4. 신규 JupyterHub 작업환경에서 Core Tunnel 활용

  1. 문제점:
    • 기존 Teleport를 통한 HTTP Proxy 기반 연결에서 끊김 현상이 자주 발생.
    • 특히, Session Replay 기능 활성화로 인해 세션의 지속성이 떨어졌음.
  2. 대안:
    • Core Tunnel을 통해 SSH 기반 세션을 제공.
    • JupyterHub 등 다양한 도구가 안정적으로 연결될 수 있는 환경 조성.
  3. 결과:
    • 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
    wonpick
    wonpick

    티스토리툴바