ssuperjun 님의 블로그
[스터디2] [인프라 엔지니어의 교과서] 4,5,6,7,8,9,12장 스터디 본문
Scale Up vs Scale Out
실무에서 언제 어떤 걸 선택하는지
Scale Up = 기존 서버의 사양(CPU, RAM, SSD 등)을 높이는 방식
주로 구조 변경이 어렵거나 데이터 정합성이 중요한 경우 사용
상황 1: 관계형 데이터베이스를 Scale Out을 하려면 샤딩이나 Replication을 도입해야 하는데, 복잡한 관리와 애플리케이션 코드 수정을 기피하고 싶은 경우 1차적으로 Scale Up 선택.
레거시 환경이 서버 로컬 메모리나 디스크에 의존해 Scale Out하려면 세션 클러스터링(두 대 이상의 서버가 한 가지 업무를 동시에 수행하도록) 등 대공사 필요. 당장 트래픽을 감당해야 한다면 돈을 더 주더라도 서버 스펙을 올리는 것이 합리적
상황 2: 서버 여러 대를 두는 것보다, 한 대의 고성능 서버를 사용하는 것이 라이선스 비용 측면에서 이득인 경우 Scale Up 선택
Scale Out = 수평 확장. 비슷한 사양의 서버를 여러 대 추가
상황 1: 웹 서버에 트래픽이 몰리면 오토스케일링 등의 기능으로 비용 효율적이면서 즉시 대응이 필요한 경우(웹 서버는 보통 Stateless가 원칙으로, 클라이언트의 요청을 DB로 넘겨주는 역할만 하지 서버 자체에 중요한 데이터를 저장하지 않음)
상황 2: 고가용성이 반드시 필요한 경우
그 외: 마이크로 서비스 아키텍처(서비스가 기능별로 쪼개져 있어 각기 다른 부하 패턴을 가짐. 트래픽이 몰리는 기능에만 Scale Out하면 됨), NoSQL 데이터베이스 사용(NoSQL은 기본적으로 Scale Out을 염두에 두고 설계됨)
상황 3: 더 이상 물리적인 Scale UP이 불가능한 경우
로드 밸런서 동작 방식
로드 밸런싱 기본 개념: 서버에 가해지는 트래픽 부하를 여러 대의 서버에 분산하는 것
로드밸런서의 기본 기능
1. Health Check(상태 확인): 서버가 살았는지 죽었는지(통신 가능한지) 확인. 죽었으면 해당 서버를 그룹에서 제외(failover), 다시 정상으로 돌아오면 헬스 체크로 감지해 다시 그룹에 추가
2. Tunneling: 데이터 통신을 위한 통로를 이용해, 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제하게 함
3. NAT(Network Address Translation): 클라이언트의 요청 패킷에 있는 목적지 주소(VIP)를 실제 서버의 IP 주소(Real IP)로 변환. 내부에서 외부로 트래픽이 나가는 경우도 마찬가지로 IP 변환 해줌
4. DSR(Direct Server Return): 로드 밸런서 부하 분산 방식
기존 스위치->l4스위치->서버 구조에서
인바운드는 l4스위치->서버, 아웃바운드는 서버->일반 스위치로 반환

주요 로드밸런싱 알고리즘
- 라운드로빈: 서버에 들어온 요청을 순서대로 돌아가며 배정(모든 서버의 스펙이 동일할 때 단순하고 효과적)
- 가중 라운드로빈: 서버마다 스펙(처리 능력)이 다를 경우, 성능이 좋은 서버에 더 높은 가중치를 두어 트래픽을 많이 보냄
- 최소 연결: 현재 연결(세션) 수가 가장 적은 서버로 요청을 보냄(세션이 불규칙하게 길어지는 경우 적합)
- IP 해시: 클라이언트의 IP주소를 해싱해 특정 서버에 매핑(사용자는 항상 동일한 서버로 연결되므로, 로그인 세션 유지 등이 필요할 때 유용)
L4 로드밸런서와 L7 로드밸런서를 가장 많이 활용함
- L4부터 포트 정보를 바탕으로 로드를 분산할 수 있기 때문
- L4 로드밸런서: IP 주소, 포트 번호로 패킷을 구분. 패킷의 내용을 확인하지 않으므로 속도 빠르고 가격 저렴
- L7 로드밸런서: URL, HTTP 헤더, 쿠키, 파일명 등 패킷의 내용을 분석해 정교하게 분산. 디도스 등 비정상적 트래픽 필터링이 가능. 쿠키 정보를 바탕으로 클라이언트가 연결했었던 동일한 서버에 계속 할당될 수 있음(클라이언트의 사설IP주소가 공인IP주소로 치환되어 전송되는 방식을 지원함)
4장: 네트워크
5장: 스토리지
6장: 서버 가상화
학교에서 배웠던 내용
라우터의 라우팅 테이블 역할, 1000BASE-T 의미(대역폭-케이블 종류), 2계층은 데이터 링크 계층. TCP vs UDP
동적 라우팅(테이블 정보 자동 갱신) 알고리즘 - RIP, OSPF, BGP
AS는 하나의 회사나 기관이 관리하는 네트워크 그룹(예: SKT망, KT망, 삼성전자 사내망 등)을 의미합니다.
- IGP (내부용): 우리 집 안(AS 내부)에서 길 찾기 (RIP, OSPF)
- EGP (외부용): 우리 집과 옆집(AS 간) 사이의 길 찾기 (BGP)
1. RIP (Routing Information Protocol) - "가장 단순한 길 찾기"
과거에 많이 쓰였지만, 현재는 규모가 작은 네트워크 외에는 잘 쓰지 않는 고전적인 프로토콜입니다.
- 알고리즘: 거리 벡터 (Distance Vector)
- 경로 기준 (Metric): 홉 카운트 (Hop Count)
- 단순히 **"몇 개의 라우터를 거치느냐"**만 따집니다.
- 속도가 빠른 10차선 도로라도 검문소(라우터)가 3개 있으면, 검문소가 1개 있는 좁은 골목길보다 안 좋은 길로 판단합니다.
- 특징:
- 30초마다 자신의 라우팅 테이블 전체를 이웃에게 '방송(Broadcast)'합니다.
- 최대 홉 수가 15로 제한됩니다. (16부터는 도달 불가능으로 간주 → 대규모 네트워크 사용 불가)
- **수렴 시간(Convergence Time)**이 느립니다. (네트워크 변화를 감지하고 전파하는 데 오래 걸림)
2. OSPF (Open Shortest Path First) - "가장 빠른 길 찾기"
현재 기업 내부망(LAN)에서 가장 널리 쓰이는 표준 프로토콜입니다.
- 알고리즘: 링크 상태 (Link State) - 다익스트라(Dijkstra) 알고리즘 사용
- 경로 기준 (Metric): 비용 (Cost = 대역폭/속도)
- 단순한 거리가 아니라 **"어디가 더 빠르냐"**를 따집니다.
- 라우터가 많더라도 1Gbps 광랜 경로가 10Mbps 구리선 경로보다 우선됩니다.
- 특징:
- 네트워크의 전체 지도(Topology)를 모든 라우터가 가지고 있습니다.
- 변화가 생겼을 때만 변경된 정보를 전파하므로 효율적입니다.
- 네트워크를 Area(구역) 단위로 나누어 관리하므로 대규모 네트워크에서도 안정적입니다.
3. BGP (Border Gateway Protocol) - "인터넷 그 자체"
서로 다른 조직(AS) 간을 연결하는, 인터넷을 작동시키는 핵심 프로토콜입니다.
- 알고리즘: 경로 벡터 (Path Vector)
- 경로 기준 (Metric): 정책 (Policy) & 속성 (Attributes)
- 단순히 빠르다고 연결하지 않습니다. **"정치적/관리적 이유"**가 들어갑니다.
- 예: "A 경로는 빠르지만 경쟁사 망이니, 좀 느려도 우리 제휴사인 B 경로로 보내라."
- 특징:
- ISP(통신사) 간의 연결에 필수적입니다.
- 속도보다는 안정성과 경로 제어가 최우선입니다.
- 설정이 매우 복잡하고 잘못 설정하면 인터넷 대란(예: 유튜브 접속 불가 사태 등)이 일어날 수 있습니다.
- 비유: 국가 간 외교 및 무역. 한국에서 미국으로 짐을 보낼 때, 최단 거리인 북한 상공을 통과하지 않고 태평양을 건너가는 것처럼 '규칙'과 '관계'를 중시함.
새로 알게 된 내용
L4, L7 스위치는 로드 밸런싱 기능이 추가된 스위치다.
NAS는 네트워크로 연결해 여러 서버 데이터를 한 곳으로 모은다. 마치 공유폴더
SAN과 NAS의 차이는 서버와 스토리지를 연결하는 통신 프로토콜과 인터페이스 차이
오브젝트 스토리지는 파일 단위로 데이터 저장 x. 계층이나 폴더 개념 없음. REST API 호출해 데이터 읽기 쓰기 수행
4장
지능형/비지능형 스위치?
- 비지능형 (Unmanaged / Dummy Switch):
- 기능: 단순히 포트를 늘려주는 역할만 합니다. 꽂으면 바로 작동(Plug & Play)하지만 설정 변경이 불가능합니다.
- 특징: 트래픽 관리, 속도 제어, 모니터링 기능이 없습니다. 그냥 데이터가 들어오면 목적지로 토스만 해줍니다.
- 용도: 가정용 허브, 소규모 사무실 등 단순 연결이 필요한 곳.
- 지능형 (Managed / Intelligent Switch):
- 기능: 관리자가 접속(Console, Telnet, Web)하여 설정(Configuration)을 할 수 있습니다.
- 특징:
- VLAN: 부서별로 네트워크를 논리적으로 쪼갤 수 있습니다.
- 보안: 특정 MAC 주소만 허용하거나 포트를 차단할 수 있습니다.
- 모니터링: 트래픽이 어디서 얼마나 발생하는지 감시(SNMP 등)할 수 있습니다.
- STP: 루핑(Looping, 뺑뺑이) 방지 기능을 제어할 수 있습니다.
- 용도: 기업 전산실, 데이터센터 등 관리가 필요한 주요 네트워크.
네트워크 패브릭이 뭐지? - 물리적으로 떨어진 것도 논리적으로 하나의 네트워크로 묶음.
(1) VLAN (Virtual LAN)
- 핵심: "쪼개기" (분리)
- 개념: 하나의 물리적 스위치를 논리적으로 여러 개로 나누는 것입니다. (예: 1번~10번 포트는 인사팀, 11번~20번 포트는 개발팀)
- 한계: 기본적으로 L2(동일 스위치 혹은 직접 연결된 스위치) 범위 내에서 작동합니다. 라우터(L3)를 거쳐 건너편 네트워크로 넘어가면 VLAN 태그가 벗겨지거나 유지가 어렵습니다. 또한, 만들 수 있는 개수(4,096개)에 한계가 있습니다.
(2) 네트워크 패브릭 (Network Fabric)
- 핵심: "엮기" (연결 & 확장)
- 개념: 스위치들을 그물(Fabric)처럼 촘촘하게 연결하여, 전체 네트워크를 하나의 거대한 스위치처럼 동작하게 만드는 구조입니다.
- VLAN과의 차이점:
- 물리적 제약 극복: 서울 데이터센터와 부산 데이터센터처럼 물리적으로 멀리 떨어져 있고 중간에 L3(라우터) 네트워크가 있어도, 그 위를 덮어서(Overlay) 마치 바로 옆에 있는 같은 스위치에 꽂힌 것처럼 통신하게 해줍니다. (이걸 L2 over L3라고 합니다.)
- 구조: 보통 Spine-Leaf(스파인-리프) 구조를 사용하여 어떤 서버끼리 통신해도 경로와 속도가 일정하도록 보장합니다.
- 요약 비유:
- VLAN: 한 사무실 안에 칸막이를 쳐서 부서를 나누는 것.
- 패브릭: 서울 본사와 부산 지사 사무실을 '순간이동 포털'로 연결해서, 마치 한 사무실에 있는 것처럼 만드는 것.
네트워크 인터페이스 통합(본딩=티밍=링크 어그리게이션=이더채널=포트 트렁킹)이 뭐지?
여러 개의 물리적 케이블을 묶어서 하나처럼 쓰는 기술
핵심 기능 (왜 묶는가?)
- 대역폭 확장 (Speed): 1Gbps 선 2개를 묶으면 2Gbps 도로가 됩니다.
- 고가용성 (Redundancy): 선 하나가 끊어져도 남은 선으로 통신이 끊기지 않고 계속됩니다.
5장
DAS 인클로저?
인클로저 (Enclosure): 하드디스크(HDD)나 SSD를 여러 개 꽂을 수 있는 **'껍데기(케이스)'**를 말합니다.
- 이 안에 전원 공급 장치, 냉각 팬, 그리고 데이터를 PC로 전송해 주는 컨트롤러 기판이 들어 있습니다
NAS 통신 프로토콜: NFS, SMB/CIFS, AFP
NAS는 네트워크에 연결되어 있으므로, 서로 다른 운영체제(OS)를 쓰는 컴퓨터들이 파일을 주고받으려면 **"공통 언어(프로토콜)"**가 필요합니다.
① SMB / CIFS (Server Message Block) - "윈도우의 표준"
- 주 사용 OS: Windows (현재는 사실상 표준)
- 설명: 마이크로소프트와 IBM이 주도한 프로토콜입니다. CIFS는 SMB의 옛날 버전 명칭인데, 현장에서는 혼용해서 부르기도 합니다.
- 특징:
- 호환성이 가장 좋아 윈도우, 리눅스, 맥, 프린터, 스마트 TV 등 거의 모든 기기에서 지원합니다.
- 가장 널리 쓰이는 방식입니다.
② NFS (Network File System) - "리눅스의 표준"
- 주 사용 OS: Linux / Unix
- 설명: 썬 마이크로시스템즈(Sun)에서 개발했습니다. 리눅스 서버끼리 데이터를 공유할 때 가장 많이 씁니다.
- 특징:
- 서버 간 통신에 최적화되어 있어 속도가 빠르고 가볍습니다.
- 윈도우에서 쓰려면 별도 설정이 필요하거나 성능이 조금 떨어질 수 있습니다.
③ AFP (Apple Filing Protocol) - "맥의 옛 표준"
- 주 사용 OS: macOS
- 설명: 애플이 맥을 위해 만든 전용 프로토콜입니다.
- 특징:
- 맥의 파일 특성(메타데이터 등)을 가장 잘 지원했었습니다.
- 중요: 현재는 애플도 AFP 대신 SMB 사용을 권장하고 있어 점점 사라지는 추세입니다. (Deprecated)
NAS에서 동시성 제어는 어떻게 하나?
여러 명이 동시에 같은 엑셀 파일을 열어서 수정하면 데이터가 엉키겠죠? 이를 방지하기 위해 NAS는 "파일 잠금(File Locking)" 기술을 사용합니다.
핵심 메커니즘: 잠금 (Locking) & OpLocks
- 파일 잠금 (File Locking):
- 사용자 A가 파일을 열어 '쓰기(수정)'를 시작하면, NAS는 해당 파일에 **Lock(잠금)**을 겁니다.
- 이때 사용자 B가 같은 파일을 열려고 하면, NAS는 **"읽기 전용(Read Only)"**으로 열어주거나, "누가 사용 중입니다"라는 경고를 보냅니다.
- OpLocks (Opportunistic Locks, 기회적 잠금):
- 네트워크 트래픽을 줄이고 속도를 높이기 위한 기술입니다. (주로 SMB에서 사용)
- 작동 원리: 사용자 A가 파일을 열면, 서버는 A에게 "너만 쓰고 있으니 네 컴퓨터 메모리(캐시)에서 편하게 작업해"라고 허락(OpLock)해줍니다. 매번 서버에 저장하지 않고 로컬에서 작업하므로 빠릅니다.
- 중단: 만약 사용자 B가 접근하면, 서버는 A에게 "잠깐, 다른 사람 왔어. 캐시에 있는 거 빨리 서버로 보내고 잠금 해제해"라고 신호(Break)를 보냅니다. 이를 통해 데이터 일관성을 유지합니다.
- 프로토콜별 차이:
- SMB: 상태 저장(Stateful) 프로토콜이라서 서버가 누가 파일을 열고 있는지 계속 기억하고 관리합니다. (동시성 제어에 강력함)
- NFS (초기 버전): **무상태(Stateless)**라서 별도의 Lockd 같은 데몬(프로그램)이 필요했습니다. (최신 버전인 NFSv4부터는 상태 저장 방식으로 바뀌어 잠금 기능이 강화됨)
6장
가상 스토리지와 씬 프로비저닝 간 관계?
"가상 스토리지는 '판'을 깔아주는 기술이고, 씬 프로비저닝은 그 위에서 부리는 '마법'입니다."
- 가상 스토리지 (Storage Virtualization):
- 물리적으로 여러 대 있는 디스크나 스토리지를 논리적으로 합쳐서 **하나의 거대한 풀(Pool)**처럼 보이게 만드는 기술입니다. (물리적 경계를 없애는 것)
- 씬 프로비저닝 (Thin Provisioning):
- 가상 스토리지 환경에서 가능한 공간 할당 방식입니다.
- 개념: "일단 줬다고 뻥치기"
- 상황: 물리적으로는 1TB밖에 없는데, 사용자(서버)에게는 "너 10TB 써도 돼"라고 논리적으로만 할당해줍니다.
- 작동: 실제로는 사용자가 데이터를 기록할 때마다 야금야금 물리 공간을 내어줍니다. (Just-in-Time 할당)
- 관계: 가상화가 되어 있어야(논리적 풀이 있어야) 물리적 용량과 상관없이 논리적 용량을 할당하는 씬 프로비저닝이 가능해집니다.
de-duplication에서 중복 부분은 저장 안하는데, 그럼 포인팅해주나?
ex. 이 데이터는 이미 저장된 데이터야. 그러니까 저장은 안할꺼지만 이 위치에 저장돼 있다고 표시는 해줄게. 이건가?
=> 맞다.
- 지문 채취 (Hashing): 스토리지는 데이터가 들어오면 잘게 쪼개서 고유한 지문(Hash 값)을 만듭니다.
- 비교: 이 지문이 내 '지문 리스트(인덱스 테이블)'에 있는지 봅니다.
- 처리:
- 없다면: 데이터를 디스크에 저장하고, 지문을 리스트에 등록합니다.
- 있다면 (중복): 데이터를 저장하지 않고 폐기합니다. 대신, 파일 시스템의 메타데이터에 **"이 데이터는 A 위치에 있는 녀석을 참조해"**라고 **포인터(주소)**만 연결해 줍니다.
결과적으로 물리적으로는 데이터 블록이 1개만 존재하지만, 논리적으로는 100개의 파일이 그 블록을 공유해서 쓰고 있는 셈입니다.
스냅샷은 모든 파일을 복사하지 않고도, 업데이트 내역 정보 저장만으로 그 시점으로의 복구가 가능하다는데, 어떻게?
"데이터를 복사하는 게 아니라, '지도(Map)'만 복사해두는 원리입니다."
스냅샷이 순식간에 생성되고 용량을 적게 차지하는 이유는 원본 데이터를 건드리지 않고, 데이터의 위치 정보(메타데이터/포인터 테이블)만 찰칵 찍어서 저장하기 때문입니다.
가장 대표적인 방식인 CoW (Copy on Write) 방식으로 설명해 드릴게요.
스냅샷 작동 과정
- 스냅샷 생성 시점:
- 아무런 데이터 복사도 일어나지 않습니다.
- 현재 데이터 블록들의 위치를 가리키는 '포인터 테이블(지도)'만 하나 복제해 둡니다. (용량 거의 0)
- 이 시점의 스냅샷은 원본 데이터(A, B, C)를 그대로 가리키고 있습니다.
- 데이터 변경 발생 (Update):
- 사용자가 'B'라는 블록을 'B-2'로 수정하려고 합니다.
- 스토리지는 **수정되기 전의 원본 'B'를 안전한 공간(스냅샷 저장소)으로 미리 대피(Copy)**시킵니다.
- 그 후, 원래 위치에 새로운 데이터 'B-2'를 덮어씁니다.
- 복구 (Restore) 원리:
- 스냅샷 시점으로 되돌리라고 명령하면?
- 현재의 지도를 버리고, 아까 저장해둔 **'과거의 지도(포인터 테이블)'**를 다시 꺼냅니다.
- 그 지도는 현재의 'B-2'가 아니라, 아까 대피시켜둔 **'B'**를 가리키고 있겠죠?
- 사용자 눈에는 데이터가 수정 전 상태로 완벽하게 돌아온 것처럼 보입니다.
7장: 클라우드
물리 서버 구매는 초기 구입에 현금 다량 소모. 5년 간 감가상각비로 비용 처리.
현금이 충분한 대기업이라면, 오히려 당기순이익 공표 측면에서 이득 아닌가? 150이 실제 비용이지만, 회계 장부상 100만 적히니
8장: 구매 및 상담
필요한 장비 싸게 사기
9장: 데이터센터
1월 22일(목)
NCC1 데이터센터(NHN 판교 플레이뮤지엄) 견학
상황실: cctv, 모니터링 지표(ups, 공조시스템, 서버룸)
소화가스실: 헬륨
서버룸: 서버 꽂혀있는 수많은 랙들. 핫룸 콜드룸
지하: 다이나믹 ups(hitec powerpro 2700 무중단 전원 공급) 경유 소모
옥상: 공조시설(환기, 쿨링)
pue(전력 사용 효율) 1.4
kvm 스위치: 키보드 모니터 마우스 세트 하나로 여러 컴퓨터 제어
패치 패널: 선 정리 용도
pbx: 사설 구내 교환기. 사내 내선 번호로 통화 가능
12장: 대규모 인프라
cdn: 콘텐츠 전송 네트워크
캐시 서버 느낌
dsr(direct server return): 로드 밸런서 부하 분산 방식
기존 스위치->l4스위치->서버 구조에서 인바운드는 l4스위치->서버, 아웃바운드는 서버->일반 스위치로 반환
'인턴' 카테고리의 다른 글
| [과제6-7] 발표자료 최종 - 도커를 이용한 DB 운영툴 환경 구축 자동화 (0) | 2026.02.06 |
|---|---|
| [스터디2] [인프라 엔지니어의 교과서] 2장 서버 발표용 (1) | 2026.02.06 |
| [과제6-6] 고도화: MyMon Dev환경 세팅(웹 소스코드 도커라이징) (0) | 2026.02.05 |
| [스터디2] [인프라 엔지니어의 교과서] 3장 OS (0) | 2026.02.03 |
| [스터디2] [인프라 엔지니어의 교과서] 1장 인프라 엔지니어의 업무 (0) | 2026.01.30 |