본문 바로가기
카테고리 없음

가상서버 물리서버

by ESTP 개발자 2025. 11. 17.

물리서버란?

진짜 구매하는 물리서버

 

가상서버란?

VM = 물리서버 여러대 위에 논리적 컴퓨터를 여러대 띄운 것

물리서버 2대로 VM 15대를 세팅할 수 있게됨

이 기술이 하이퍼 바이저라는 가상화 기술이다.

 

VM이 여러 컴퓨터를 쪼개서 쓰는거면 늘리는건 쉬운거 아냐?

 

기술적으로는 쉽다.

조건1. 물리 서버 자원이 충분하면 VM도 쉽게 늘릴 수 있다.

물리서버 CPU 20코어 중 10코어가 비어있다면 VM을 3개 더 만들 수 있다.

 

조건 2. 가상화 관리자가 권한을 줘야한다.

 

늘리는 건 어떻게 하는가?

VM이 어떻게 만들어지는지 보자

 

1) 물리 서버 클러스터 확인

- CPU 몇 코어 남았는지?

- RAM 몇 GB 남았는지?

- 스토리지 여유는?

- 네트워크 대역은 가능한가?

 

2) 하이퍼 바이저(가상화 플랫폼)에서 VM 템플릿 선택

- RHEL7 템플릿

- Windows Server 2019 템플릿

- Ubuntu 22.04 템플릿

 

 

3) VM 사양 결정

- CPU 2코어

- RAM 4GB

- Disk 50GB ?

- NIC 1개 ?

 

4) VM 자동 생성

하이퍼바이저에서 Clone 하면 30초면 끝남

 

5) IP 설정 + 방화벽 + DNS 등록

네트워크팀 / 운영팀이 하는 부분

 

6) 개발자가 접속해서 시스템 설치

- 톰캣

- DB

- WAS

- 젠킨스

- API 등

 

그래서 VM을 확장할 땐 어떻게 하는가?

 

물리서버 여러대가 클러스터라는 그룹으로 묶임

그 위에 하이퍼 바이저가 깔리고

VM은 클러스터 전체 자원을 공유함

VM이 물리서버 어디에서 돌지는 자동배치되거나 수동으로 지정

큰 땅(클러스터)위에 가상건물(VM)을 여러개 짓는 구조

 

VM 자원 확장

CPU/RAM같은 자원을 확장하면 내부적으로 일어나는 일?

하이퍼바이저가 해당 VM에 더 많은 CPU 스케줄링 시간을 배정

해당 물리서버 RAM에서 더 큰 영역을 할당

VM은 다음부팅 때 새로운 자원을 인식 (RAM은 재부팅 필요, CPU는 무중단 가능)

 

일부 OS는 재부팅 없이 CPU/RAM 추가 가능

- Linux 일부 배포판

- Windows Server Datacenter

회사에서는 안정성을 위해 껐다 키는 경우가 더 많다.

 

VM이 여러 물리 서버에 분산되는 방식

 

1. 자동 분산 (DRS - Distributed Resource Scheduler)

VMware 기준인데 비슷함

동작 방식

- 클러스터 전체 CPU, RAM 상태를 계속 모니터링

- 물리서버 1번이 바쁘면, VM을 2번 서버로 이동시킴

- 이 이동은 무중단으로 수행됨

 

VM을 들고 옮기는게 아니라

실행중인 메모리, CPU 상태를 다른 서버로 복사하여 중단없이 옮기는 기술

 

2. 수동 배치

관리자가 VM 생성할 때 선택함

- 대부분은 자동

 

3. 스토리지(저장소)는 공유

여러 물리서버가 하나의 공용 저장소(SAN, NAS)를 사용함

그래서 VM을 옮겨도 데이터는 안 움직이고 실행만 다른 서버로 넘어가는 구조

 

질문!

물리서버 2대가 있고, 가상서버는 5대가 있었다.

나는 이번에 신규로 가상서버를 2대 받았고, 총 7대의 가상서버가 있다.

그런데 나는 신규 가상서버 2대에 NAS를 쓸 수있도록 권한을 받았다.

 

내가 신청하지 않은 가상서버 5대가 내가 요청한 NAS를 쓸 수 있을까? 없을까?

 

이건 NAS의 접근 권한을 어디까지 열지에 따라 달렸다.

NAS는 물리적으로 하나지만 논리적으로는 폴더 권한 단위로 접근을 통제할 수 있다.

NAS는 기본적으로 네트워크 파일 서버라서

- 특정 IP에만 열 수도 있고

- 특정 VM에만 열 수도 있고

- 특정 계정/그룹만 접근 허용할 수도 있고

- 특정 공유 폴더만 VM에 연결할 수도 있다.

 

 

DB도 서버다?

하...^^^

 

서버란 무언가를 제공하는 컴퓨터라는 뜻인데,

- 웹서버는 웹페이지 제공

- API 서버는 API 제공

- 파일서버는 파일 제공

- DB 서버는 데이터를 제공

 

그래서 DB도 서버다!

 

DB도 VM으로 만든다.... 뻥....

 

[VM1] = Web
[VM2] = API
[VM3] = Batch
[VM4] = DB  (ORACLE / MARIA / MSSQL / PostgreSQL)

 

DB는 왜 서버가 따로 존재하냐?

여러 시스템이 같은 DB를 읽고 쓰기 때문에 

DB서버는 OS까지 따로 구성하고 백업도 촘촘히 하고 보안도 따로 관리하다.

 

DB는 어떤 방식으로 서버가 되나?

DB도 결국 VM 위에 올려져있다.

 

EAI

여러 시스템을 서로 연결하는 중앙 허브

시스템 → 시스템

시스템 → DB

실시간 연계

데이터 변환 등

모든 것을 연결하는 존재다.

 

LNK

EAI를 사용하지 않고 직접 연동하는 단순 인터페이스 서버

간단한 데이터 전달 같은 것 할 때 사용한다.

 

RFC 방식과 EAI 방식에 대해 알아보자

 

1. RFC 방식

- 오라클쪽 어플리케이션(주로 자바)가 SAP Connector(JCO 같은 것)로 SAP의 RFC Function Module을 직접 호출

- 그 RFC 안에서 SAP 테이블을 읽고 결과 데이터를 넘겨준다.

이때 권한은

- SAP : RFC용 계정 + 해당 RFC 실행 권한

- Oracle : SAP 연결용 계정/설정만 있으면 됨 (DB의 접근 권한 X)

 

언제 RFC를 쓰는가?

시스템이 1:1 연계 (Oracle <-> SAP만)

인터페이스가 많지 않음

별도 EAI 플랫폼을 안 쓰거나, 단순하게 가고 싶을 때

 

EAI 사용하는 경우,

[Oracle 시스템]  <──>  [EAI]  <──(RFC/IDoc/OData 등)──>  [SAP App 서버] → [SAP DB]

 

- SAP ↔ EAI : RFC, IDoc, OData, MQ 등 SAP 전용 어댑터로 통신

- EAI ↔ Oracle : JDBC, REST API, 파일, MQ 등으로 통신

- EAI가 중간에서 필드 매핑, 포맷변환, 로깅, 모니터링, 재처리까지 담당

 

권한은 

- SAP : EAI용 계정 + RFC/IDoc 실행 권한

- Oracle : EAI용 계정(스키마/계정) + CRUD 권한

- EAI : 두 시스템을 대신해서 통역+운반+기록

 

언제 쓰는지?

- SAP랑 연계하는 시스템이 여러개 일 때

- 연계 건수가 많고, 장애/재처리/모니터링이 중요할 때

- 망이 다르거나 직접 붙이는게 보안상 안 좋을 때

- 회사에 이미 EAI 가 깔려있을 때

 

SAP 데이터를 Oracle에서 쓰고 싶은 경우

- 작고 단순하다 → RFC

- 크고 복잡하고, 여러 시스템이 쓰고, 망 분리되어있고, 보안/모니터링이 중요한 경우 → EAI 경유

웬만하면 EAI를 쓰긴한다.

 

 

망이란 무엇일까?

망 = 서로 통신할 수 있는 네트워크 구역

 

→ 같은 망 : 서로 마음대로 통신 가능

→ 다른 망 : 기본적으로 통신 불가능

 

회사에서는 보안을 위해 네트워크를 여러 구역으로 나눈다.

이걸 네트워크 존 또는 망 분리 라고 부른다.

 

망이 다르다는 건

서로 다른 네트워크 존 안에 있고, 기본적으로 서로 통신이 안 된다는 뜻이다.

이 말이 곧:

  • IP 주소 대역이 다르거나
  • 라우팅이 막혀 있거나
  • 방화벽(Firewall)이 통신을 차단하거나
  • 서로 다른 VLAN/Subnet이라 직접 접근 불가하거나
  • 보안 정책상 서로 접근 못 하게 해둔 구역이라는 뜻

즉, 물리적으로 다른 건 아니라 논리적으로 차단된 별개의 네트워크라고 생각하면 됨.

 

 

A망에서 B망으로 SAP 호출(RFC 호출)이 가능한가?

기술적으로는 가능하지만, 방화벽 허용이 필요하다.

 

왜 방화벽 허용이 필요한가?

SAP RFC 통신은 SAP Gateway 포트(기본 33xx 등)를 사용해.

 

예를 들어 SAP 서버가 B망에 있을 때

A망에서 RFC 호출을 하려면 

A망 → FW : SAP RFC 포트 → B망 SAP 시스템

 

방화벽 허용이 없으면 

RFC 코드가 완벽해도 네트워크 막힘 때문에 절대 통신 안됨.

 

그래서 망이 다르면 EAI를 거치라는 것....

직접 연결 구조는 포트를 오픈하니까 A망에서 오는 공격/비정상 트래픽이 B망 SAP에 바로 도달할 위험이 있고

시스템이 많아지면 포트가 난리난다.

 

EAI 중간 구조 (표준)

[A망] → [연계/EAI망] → [B망 SAP]

SAP에는 EAI만 붙고, 트래픽 통제가 쉽고, 장애 대응이 쉽다.

 

물리/논리 망 분리

망을 방이라고 생각해보자

같은 망 = 같은 방

다른 망 = 다른 방

방과 방과 사이에는 문이 있는데 그걸 방화벽이라고 생각하자.

 

물리적 망분리

방을 아예 건물 자체에 따로 만들었다.

업무망 = A건물

개발망 = B건물

 

벽, 케이블, 전선까지 완전히 따로되어있어

물건을 A건물에서 B건물로 가져오려면 직접 들고 건물을 이동해야한다.

완전히 분리되어있고 절대 섞이지 않는다.

 

스위치, 케이블, 라우터 전부 따로

해킹/바이러스가 한쪽에서 발생해도 절대 다른쪽으로 들어가지 않는다.

최고 수준 보안

 

논리적 망분리

같은 건물 안에서 칸막이를 친 것

기본적으로 분리는 되지만 관리자가 마음만 먹으면 칸막이를 열고 바로 연결 가능

 

방화벽이란?

물리적/논리적 망분리에서 문을 열어주거나 닫는 역할

 

물리적 망분리일 때도 방화벽이 있을 수 있는데

두 망을 아예 연결하지 않으면 방화벽이 필요가 없어

건물 자체가 2개이면 건물 사이에 문이 없으니까

근데 잠깐이나마 연결해야하는 경우가 생기면 방화벽을 넣어서 문을 잠깐 만들어줄 수 있어

 

논리적 망분리에서 방화벽은 거의 필수

[스위치]  
  VLAN 10 (업무망)
  VLAN 20 (운영망)

→ 내부적으로는 같은 장비인데 논리적 벽만 세워둔 상태

 

이 둘이 통신하려면

라이터 설정, 방화벽 정책 두개가 필요해

방화벽은 문을 열지 말지 결정하는 문지기인거야.

 

 

🙋 이해됐는지 확인 질문 ?

Q. A망과 B망은 서로 통신이 안 되는 이유가 뭘까?

  1. 물리 장비가 따로라서 (물리적 분리)
  2. VLAN/Subnet으로 막혀 있어서 (논리적 분리)
  3. 방화벽에서 막아놔서
  4. 위 셋 다 가능함

정답 어느 것 같아? 4번~ 선택했다면 정답!

 

VLAN에 대해 알아보자

하나의 큰 건물(스위치) 안에 여러개의 가상방(네트워크)를 만드는 기술

예전에는 방을 여러개 만드려면 건물(스위치)를 여러개 사야했는데,

근데 VLAN 기술이 나오면서 스위치 한 개 안에 논리적으로 여러 네트워크(방)을 나눌 수 있게 되었다.

 

VLAN : 하나의 물리 스위치에서 여러개의 독립된 네트워크를 논리적으로 분리하는 기술

같은 스위치인데도 서로 다른 VLAN끼리는 절대로 통신이 안돼, 벽을 나눈 것 처럼

 

VLAN이 없는 스위치 (모두 같은 네트워크)

[스위치]
 |  |  |  |  
PC1 PC2 PC3 PC4  → 다 같은 네트워크 (서로 통신 가능)

 

VLAN이 있는 스위치 

[스위치]
 |PC1  |PC2   |PC3   |PC4
 VLAN10  VLAN10   VLAN20   VLAN20
(업무망)         (운영망)
→ VLAN10과 VLAN20은 서로 통신 불가!

 

VLAN이 방화벽인가?

아니오!

 

VLAN은 시멘트임 벽을 만드는것

방화벽은 문이다.

 

VLAN은 건물 내부의 방 : 101호, 102호, 201호를 구분해주는 역할 = 방

방화벽 = 방과 방을 연결하는 문 앞에서 출입여부를 결정하는 경비원

 

VLAN은 왜 라우터를 바로 갈 수 있을까? 방화벽을 가지 않고?

네트워크 존의 설계이다.

많은 회사의 네트워크는 라우터-방화벽-VLAN의 구조로 구성된다.

VLAN10 = 내부망 (신뢰도 높음)

- 회사의 ERP, SAP, DB 등

- 라우터와 바로 닿을 수 있음 (방화벽을 거칠 수도 있음)

 

음 이제 헷갈리기 시작하네...

 

 

다시 다시

  • 스위치 = 건물 (내부 연결 담당)
  • VLAN = 건물 안의 방 (서로 벽으로 나뉜 공간)
  • 라우터 = 방과 방을 연결하는 “복도”
  • 방화벽 = 복도 어딘가에 설치된 ‘검문소’

네트워크 요소 비유 위치

스위치 건물 내부 전체
VLAN 건물 안의 방 건물 내부
라우터(L3) 방과 방을 잇는 큰 복도 건물 내부
방화벽 복도 중간 또는 건물 나가는 보안문 내부·출구 둘 다 가능
게이트웨이(라우터 외부) 건물 바깥길로 이어지는 곳 방화벽 뒤
외부 다른 건물/도시 인터넷/기타 네트워크

 

1. 건물(L2 스위치) 안에 방(VLAN)들이 있는 구조

- VLAN10, VLAN20은 같은 건물(스위치) 안의 또다른 방

- 방끼리는 기본적으로 못 봄

 

2. 방과 방을 연결하는 복도 (라우터)

 

라우터는 방과 방 사이를 이어주는 L3 복도 역할

VLAN끼리 통신하려면 무조건 라우터 필요

 

3. 복도 중간에 있는 검문소 (방화벽)

내부 보안 정책 때문에 방끼리도 통제가 필요함

내부망 <➔ 개발망

내부망 <➔ DMZ

같은 내부 VLAN끼리도 보안 때문에 방화벽을 두기도 함

 

4. 건물 밖으로 나가는 출입문 (방화벽)

외부 인터넷/다른 회사망과 연결할 때는 반드시 방화벽이 출입문

외부로 나가기 전에 무조건 방화벽 1개는 필요

회사 네트워크의 기본 보안 구조

 

 

라우터 / L3 스위치 = 복도

다른 방(VLAN)끼리 이동할 때 이 복도를 거침

외부와 통신할 때도 이 복도를 통해 나감

 

방화벽 = 검문소

복도 중간(내부 VLAN 사이)에도 둘 수 있고

건물 출입구(외부 나가기 직전)에도 둘 수 있음

허용/차단을 수행하는 문지기

 

L4 스위치 = 안내 데스크 = 서비스 별로 서버로 내보내주는 역할

포트 기반으로 트래픽 분배 (80/443)

여러 서버로 로드밸런싱

서비스 트래픽 제어

고객 요청을 적절한 서버로 안내

 

 

* L4스위치가 없으면 트래픽 분배(로드 밸런싱)이 안되고

단일 서버 혹은 고정된 IP/포트로 바로 들어감

 

 

 

사용자가 요청을 보내면 어디서부터 시작되는거지?

⭐L4 스위치가 는 경우

서버로 요청이 가긴하지만 서버 1대가 다 받음

 

[사용자]

    ↓

[방화벽] ⬅ 포트 80, 443 등만 허용

    ↓

[라우터]   ⬅ 해당 네트워크로 라우팅

    ↓

[서버1]   ⬅ 단일 서버로 요청 도착

 

⭐L4 스위치가 는 경우

[사용자]
    ↓
[방화벽]
    ↓
[라우터]
    ↓
[L4 스위치]  ← 트래픽이 서비스별로 분배됨
    ↓
 ┌───────┬──────┬────────┐
 ▼                ▼                     ▼
서버1          서버2               서버3

 

 

리버스 프록시는 뭘까?

대리로 받아서 대신 요청을 보내주는 문지기

로드밸런싱이랑은 뭐가 다를까?

 

로드밸런싱은 "분배"

리버스 프록시는 클라이언트를 대신해서 백엔드 서버에 요청을 보내주는 대리인.

사용자 ➔ 리버스 프록시 ➔ 서버 1

 

👉 로드밸런서는 “여러 서버로 나눠주는 도구”
👉 리버스 프록시는 “요청을 대신받아 서버로 보내주는 도구”

 

🧍‍♀️ 고객이 회사에 전화함 → 대표번호로 받음 = 리버스 프록시

 

  • “대표번호 = 리버스 프록시”
  • “상담원 분배 시스템 = 로드밸런서”

 

(1) 포워드 프록시(Forward Proxy)

우리가 흔히 말하는 프록시 서버

 

사용자 → Forward Proxy → 인터넷 서버

 

 

  • 사용자가 숨고 싶을 때 (내 IP 노출 방지)
  • 차단된 사이트 우회
  • 보안/감사/필터링
  • 회사 PC 인터넷 접근 제어

예:

  • 회사에서 직원 인터넷 접근을 통제하는 프록시
  • VPN/우회 프록시
  • Squid Proxy

 

(2) 리버스 프록시(Reverse Proxy)

 

 

사용자 → Reverse Proxy → 서버들

 

  • 서버 IP 숨김
  • SSL 처리
  • 보안 필터
  • 특정 서버로 보내는 라우팅
  • 로드밸런싱(옵션)

 

종류 누구의 대리인인가? 위치

Forward Proxy ❗ 사용자(클라이언트)의 대리 클라이언트 앞
Reverse Proxy ❗ 서버의 대리 서버 앞