티스토리 뷰
이번 프로젝트는 신규 서버에 빅데이터 플랫폼을 새롭게 구축, 데이터도 이관하고 데이터 포탈을 만들고 분석환경을 만들어주는 대형 프로젝트이다.
계속 국소적인 파트만 하는 프로젝트에 투입되다가 처음으로 전체적인 프로젝트에 투입된건데 그러다보니 SE(System Engineering)적인 지식들이 요구될 때가 많았다.
해당 지식이 너무도 없어서 무조건 수석님께 질문을 토스하고 스스로도 모르는 정보들에 허덕일 때 기본적인 개념이라도 이해하고 있어야된다고 느꼈다.
그 중 가장 자주 접하는 생소한 개념은 프록시 서버였다. 이 외에도 너무도 많기 때문에 이번 글은 두서없이 느껴질 수도 있다. 아직도 머리에서 이 전체 시스템에 대한 전체적인 그림이 안그려져서 나도 내가 뭘 공부하는지 모르는 상태이기 때문인데, 시작은 프록시로 하려고 한다.
프록시 서버가 도대체 무엇일까, 왜 VIP가 따로 존재하지? 이게 로드밸런싱해주는거처럼 보이는데 맞을까? Cluster IP는 뭐길래 내부통신만 허용해줄까. 등등의 두서없는 질문들에 대해 공부하는 글이라고 생각해주길 바란다.
프록시란?
Proxy란 “대리”를 의미하는 용어이다. 컴퓨터 네트워크 분야에서의 클라이언트와 서버 간의 통신을 대신 수행하는 역할을 가리킨다. 중간에 위치해서 요청을 받고 이를 다른 서버로 전달하고 그 결과를 다시 클라이언트에게 전달하는 역할을 한다. 이 프록시의 개념이 구현되는 곳이 프록시 서버이다.
프록시 서버란?
프록시 서버(Proxy Server)는 컴퓨터 네트워크에서 클라이언트와 다른 네트워크 서비스 사이의 중개자 역할을 하는 서버이다. 간단히 말해, 사용자의 컴퓨터와 인터넷 사이에서 요청과 응답을 전달하는 중간자라고 할 수 있다.
작동 방식
1. 요청 전달 : 클라이언트가 인터넷에 있는 어떤 자원(웹페이지)에 접근하려고 할 때, 그 요청은 프록시 주소를 통해야하고 프록시 서버로 요청이 들어간다.
2. 처리 및 전달 : 프록시 서버는 이 요청을 받아서 인터넷의 해당 서버에 전달한다.
3. 응답 반환 : 웹서버로부터 응답을 받고 이 응답은 프록시 서버를 통해서 사용자에게 전달됩니다.
솔직히 프록시 개념은 생각보다 별거 없고 이해하기 쉬웠다. 그럼 내가 헷갈렸던 부분은 뭘까?
우리 프로젝트에서 proxy.example.com 이런 주소로 프록시 서버에 요청을 보내는데 이 주소의 IP는 VIP라고 한다.
그런데 하나의 서버에 서비스 IP도 있고 서비스 VIP도 있고 클러스터 IP도 있어서 하나하나 살펴보려고 공부하다보니 이건 또 쿠버네티스에서 주로 쓰는 개념이고.. 공부할게 너무 많다..
우선은 차근차근.. 몰랐던 용어나 정리해보자..
쿠버네티스 서비스
- 목적: 쿠버네티스 서비스는 파드(Pods) 집합에 대한 지속적이고 안정적인 접근점을 제공한다. 서비스는 클러스터 내에서 실행되는 애플리케이션의 네트워크 트래픽을 관리하고, 파드에 도달하는 방식을 추상화한다.
- 기능: 서비스를 통해, 파드를 지속적으로 사용할 수 있는 고정적인 IP 주소와 포트를 지정하며, 로드 밸런싱 및 서비스 검색 기능을 제공한다.
쿠버네티스 서비스 IP
- 목적: 쿠버네티스 서비스 IP는 쿠버네티스 서비스에 접근하는 방법이다. 이 IP 주소를 통해 클러스터 내부 또는 외부에서 해당 서비스에 접근할 수 있다.
- 특징: 서비스 IP는 클러스터 내에서만 유일하며, 파드가 죽거나 새로 생성될 때도 일정하게 유지된다. 이를 통해 안정적인 서비스 연결을 보장한다. 이 중 Cluster IP는 클러스터 내부에서만 접근이 가능한 IP 주소를 서비스에 할당하여 사용하는 개념이다. Cluster IP가 쿠버네티스 서비스의 기본타입이다.
서비스 VIP(Virtual IP)
- 목적: 서비스 VIP는 하나 이상의 서버나 서비스가 공유하는 가상의 IP 주소이다. 서비스 VIP를 통해 들어오는 트래픽을 클러스터 내의 파드들에 균등하게 분산시키며 로드 밸런싱을 수행한다.
- 특징: 클러스터 내에서 고정된 IP 주소를 가지며, 파드의 수명주기와 무관하게 일정하게 유지된다. 서비스 VIP는 파드의 물리적 위치를 추상화하고, DNS 이름을 통한 간편한 접근을 가능하게 한다.
그럼 내가 proxy.example.com:21000으로 impala 서버에 접근할 때 이 도메인 주소는 서비스 VIP를 가리키고 있던 것이었다. 임팔라 데몬은 서버 두개에 이중화되어 떠있는데 내가 proxy주소를 사용하면 VIP를 사용하는 것이고, 이 VIP는 두 서버중 하나로 요청을 다시 보내주는 방식이었다.
이제 좀 "프록시"의 개념과 프록시 주소를 호출했을 때 일어나는 일에 대해서는 개념이 잡혔다!
다음글은..아래 내용 참고 ㅎㅎ
여기까지 알아보고 아직도 이해가 안되는 부분이 있긴 한데..
우리 시스템의 분석플랫폼은 쿠버네티스를 사용하는게 맞아서 kubectl 명령어로 이것저것 하는데 impala 등 하둡 에코시스템들이 깔린 서버는 사실.. 쿠버네티스를 사용하는지 잘 모르겠다. 다음 글에서는 이제 하둡 에코시스템을 설치할 때 도커나 쿠버네티스 개념이 들어간게 맞는지 아니라면 내가 무얼 잘못 공부한건지 알아봐야겠다..
'데이터 엔지니어링' 카테고리의 다른 글
DBT를 도입한대요 (1) - 개념편 (1) | 2024.02.04 |
---|---|
Hadoop의 미래(부제: 춘추전국시대) (0) | 2024.01.07 |
Hadoop Ecosystem 컴포넌트들의 서버 구성 (0) | 2023.06.22 |
초보자라면 HDFS 헷갈리는 기본 개념 정리 (3) - Tez (0) | 2023.06.18 |
Kerberos 인증 (0) | 2023.05.07 |