Home Data Center and Cloud Overview
Post
Cancel

Data Center and Cloud Overview

데이터 센터와 클라우드 인프라

목차


데이터 센터와 서버

데이터 센터는 서버, 네트워크, 스토리지, 전력, 냉각 설비가 모여 있는 물리적 인프라 공간이다. 클라우드는 이런 인프라를 사용자가 직접 소유하지 않고 API와 콘솔로 빌려 쓰게 만든 서비스 모델이다.

1
2
3
4
5
6
사용자
    ↓ API/콘솔으로 조작
클라우드 (AWS, GCP, Azure)
    ↓ 가상 서버, 네트워크, 스토리지 할당
데이터 센터 (물리 인프라)
    ↓ 실제 하드웨어

Headless Server

“데이터 센터 서버는 왜 보통 headless로 운영되는가?”

데이터 센터의 모든 서버는 headless 상태다.

  • Headless: 모니터, 키보드, 마우스가 없음
  • 물리적으로 접근할 수 없음
  • 원격으로만 관리 (SSH를 통해)
1
2
3
4
5
6
7
일반 PC (모니터/키보드 있음)
    ↓
[모니터에서 작업]

데이터 센터 서버 (모니터 없음)
    ↓
[원격(SSH)에서만 작업]

“Server” vs “PC”

PCServer
개인 사용24/7 운영
가끔 켜고 끔항상 실행
보통 1-2개 CPU다중 CPU (8, 16, 32+개)
8-16GB 메모리수십~수백 GB 메모리
높은 신뢰성 불필요극도로 높은 신뢰성 필수

데이터 센터의 노드는 “Headless PC”가 아니라 “Server”입니다.


SSH를 통한 원격 관리

SSH란?

SSH (Secure Shell)는 네트워크를 통해 원격 서버에 안전하게 접속하는 프로토콜입니다.

1
2
3
4
5
6
7
8
노트북
    ↓ SSH 연결 (암호화)
[데이터 센터 서버]
    ├─ 앱 배포
    ├─ 패키지 설치
    ├─ 로그 확인
    ├─ 프로세스 재시작
    └─ 설정 파일 수정

실제 작업 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1. SSH로 원격 서버 접속
ssh ubuntu@192.168.0.10
# 패스워드 또는 키 입력

# 2. 서버에서 직접 명령 실행
cd /home/ubuntu/myapp
git pull origin main
npm install
npm run build

# 3. 서비스 재시작
systemctl restart myapp

# 4. 로그 확인
tail -f /var/log/myapp.log

# 5. 종료
exit

AWS EC2와의 비교

EC2는 무엇인가?

EC2 (Elastic Compute Cloud)는 AWS에서 제공하는 클라우드 기반 가상 서버다.

1
2
3
4
5
6
AWS 데이터 센터 (물리 서버)
    ↓
[Hypervisor - 여러 VM을 동시에 실행]
    ├─ EC2 Instance A (당신의 VM)
    ├─ EC2 Instance B (다른 사용자 VM)
    └─ EC2 Instance C (또 다른 사용자 VM)

일반 데이터 센터 vs AWS EC2

항목일반 데이터 센터AWS EC2
서버 타입물리 서버 (Bare Metal)가상 서버 (VM)
인프라 구축직접 구매, 설치, 관리AWS가 모두 관리
접속 방식SSHSSH (동일)
초기 비용매우 높음없음 (클릭으로 생성)
운영 비용고정비사용량 기반
확장성물리적 제약즉시 확장
냉각, 전원 관리직접AWS가 관리

관리 책임 범위 (Shared Responsibility)

일반 데이터 센터 (당신이 모두 관리)

1
2
3
4
5
6
7
8
9
10
11
당신의 책임
    ↓
[1. 물리 서버 구매]
[2. 데이터 센터 임차]
[3. 냉각, 전원 관리]
[4. 하드웨어 교체]
[5. 운영체제 설치]
[6. 보안 패치]
[7. 앱 배포]
    ↓
당신의 책임

AWS EC2 (책임 분담)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
AWS의 책임
    ↓
[1. 물리 서버 구매 및 관리]
[2. 데이터 센터 운영]
[3. 냉각, 전원 관리]
[4. 하드웨어 교체]
[5. 가상화 (Hypervisor)]
    ↓
당신의 책임
    ↓
[1. 운영체제 보안 패치]
[2. 앱 설정]
[3. 앱 배포]
[4. 방화벽 규칙]
    ↓
당신의 책임

AWS는 물리 인프라를 관리해주므로, 당신은 OS와 앱만 신경 쓰면 된다.


실제 사용 방식은 거의 동일

일반 데이터 센터에서 배포

1
2
3
4
5
6
7
ssh ubuntu@203.0.113.10

cd /opt/myapp
git pull origin main
npm install
npm run build
systemctl restart myapp

AWS EC2에서 배포

1
2
3
4
5
6
7
ssh -i my-key.pem ubuntu@ec2-54-123-45-67.compute-1.amazonaws.com

cd /opt/myapp
git pull origin main
npm install
npm run build
systemctl restart myapp

사용자 입장에서는 동일합니다. 내부적으로 물리 인프라 vs 가상 인프라일 뿐입니다.


Bare Metal vs Virtual Machine

“Bare Metal과 Virtual Machine은 무엇이 다른가?”

Virtual Machine (VM) - AWS EC2

일반 데이터 센터의 물리 서버 위에 Hypervisor를 깔고, 그 위에서 여러 VM을 실행한다.

1
2
3
4
5
6
7
8
9
10
장점:
- 즉시 생성/삭제 가능 (분 단위)
- 격리됨 (다른 사용자와 안전)
- 비용 효율적 (사용량만 지불)
- 자동 백업, 모니터링 지원
- 확장 용이

단점:
- 약간의 성능 오버헤드 (5-15%)
- 하드웨어 커스터마이징 불가

Bare Metal Server

물리 서버를 직접 전유한다. (다른 사용자와 공유 안 함)

1
2
3
4
5
6
7
8
9
10
장점:
- 하드웨어를 직접 제어
- 최고의 성능 (VM 오버헤드 없음)
- 하이퍼바이저 오버헤드 없음
- 특수 하드웨어 사용 가능 (GPU, 고속 네트워크)

단점:
- 느린 생성/삭제 (시간 ~ 하루)
- 높은 비용
- 유지보수 책임 커짐

AWS도 Bare Metal 옵션을 제공합니다 (EC2 Bare Metal Instance). 금융, 머신러닝, 데이터베이스 등 극도의 성능이 필요한 경우 선택한다.


관리 책임 범위

“클라우드에서 사용자가 책임지는 범위는 어디까지인가?”

일반 데이터 센터 (당신이 모두 관리)

1
2
3
4
5
6
7
8
9
10
11
당신의 책임
    ↓
[1. 물리 서버 구매 및 설치]
[2. 데이터 센터 임차]
[3. 냉각, 전원 관리]
[4. 하드웨어 교체 및 업그레이드]
[5. 운영체제 설치 및 관리]
[6. 보안 패치 적용]
[7. 애플리케이션 배포]
    ↓
당신의 책임 100%

AWS EC2 (책임 분담 - Shared Responsibility Model)

1
2
3
4
5
6
7
8
AWS의 책임                당신의 책임
─────────────────────    ───────────
[물리 서버 구매]          [운영체제 보안 패치]
[데이터 센터 운영]        [애플리케이션 설정]
[냉각, 전원 관리]         [애플리케이션 배포]
[하드웨어 교체]           [방화벽/보안 그룹]
[가상화 (Hypervisor)]     [IAM 권한 관리]
[네트워크 인프라]         [데이터 암호화]

AWS는 물리 인프라를 관리해주므로, 당신은 OS 레벨과 애플리케이션만 신경 쓰면 된다.

서비스별 책임 범위

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
On-Premises (직접 운영)
────────────────────
당신: 모든 것 (100%)

IaaS (AWS EC2, GCP Compute Engine)
───────────────────────────────────
AWS: 물리, 네트워크, 하이퍼바이저
당신: OS, 미들웨어, 애플리케이션

PaaS (AWS Elastic Beanstalk, Heroku)
────────────────────────────────────
플랫폼: 물리, 네트워크, OS, 미들웨어
당신: 애플리케이션만

SaaS (Salesforce, Google Workspace)
──────────────────────────────────
서비스: 모든 것
당신: 데이터와 사용자만

자동화 운영

“SSH 기반 운영과 자동화 운영은 어떻게 이어지는가?”

초기에는 SSH로 수동 접속해서 배포하지만, 서버가 많아지면 자동화 도구를 사용한다.

1. 수동 운영 (초기)

1
2
3
4
5
6
# 매번 SSH 접속해서 배포
ssh ubuntu@server1.com
cd /app
git pull && npm install && npm run build
systemctl restart app
# server2, server3도 반복...

2. Shell 스크립트 자동화

1
2
3
4
5
6
7
8
9
# deploy.sh로 여러 서버에 배포
#!/bin/bash
for server in server1 server2 server3; do
  ssh ubuntu@$server << 'EOF'
    cd /app
    git pull && npm install && npm run build
    systemctl restart app
  EOF
done

3. 설정 관리 도구 (Ansible, Chef, Puppet)

1
2
3
4
5
6
7
8
9
10
11
# Ansible playbook으로 선언적 관리
- hosts: all
  tasks:
    - name: Git pull
      shell: cd /app && git pull origin main
    
    - name: Install dependencies
      shell: cd /app && npm install
    
    - name: Build and restart
      shell: cd /app && npm run build && systemctl restart app

4. 컨테이너 + 오케스트레이션 (Docker + Kubernetes)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Kubernetes Deployment로 자동 배포, 확장, 롤백
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: app
        image: myapp:1.0
        ports:
        - containerPort: 8080

자동화의 이점

1
2
3
4
5
6
7
수동 운영                자동화 운영
─────────────          ───────────────
시간 오래 걸림          몇 초 (매우 빠름)
휴먼 에러 가능          일관성 보장
확장 어려움             쉽게 확장 가능 (100대 서버도 동일)
배포 기록 없음          모든 변경사항 추적 가능
야간 긴급 배포 힘듦     언제든지 배포 가능

흐름도

1
2
3
수동 (SSH) 운영 → Shell 스크립트 → Ansible/Chef → Docker → Kubernetes
(1대)            (2-5대)         (5-20대)      (20-100대) (100+대)
     ↑ 서버 개수 증가 →

정리

질문답변
데이터 센터 노드는 headless인가?✓ 맞음 (모니터/키보드 없음)
SSH로 접속해서 관리하나?✓ 맞음 (유일한 방식)
AWS EC2도 같은 방식인가?✓ 거의 동일
Bare Metal과 VM의 차이는?성능 vs 비용 트레이드오프
클라우드에서 사용자 책임은?OS, 미들웨어, 애플리케이션
자동화는 언제 필요?서버가 5대 이상일 때

참고

  • Shared Responsibility Model: 클라우드 제공사가 어디까지 책임지는지 항상 확인
  • 자동화는 선택이 아닌 필수: 서버가 여러 대면 수동은 불가능
  • 인프라 as Code (IaC): Terraform, CloudFormation으로 인프라 버전 관리
  • 재해 복구: 클라우드는 리전 분산, 백업으로 높은 가용성 보장
This post is licensed under CC BY 4.0 by the author.