이번 달 부터 윈도우 서버 대규모 이관 프로젝트에 CA로서 참여하게 되었다.
지금까지 실무에서는 리눅스를 주로 다뤄왔지만, 이번 이관 대상은 윈도우 서버뿐이기에 필요한 내용들을 윈도우 중심으로 심도 있게 살펴보았다. 리눅스와는 결이 다른 윈도우 NT 커널의 특성을 이해하고, WDS와 DSC를 활용한 자동화 전략을 세우며 공부한 내용들을 기록해두면 좋을 것 같아서 포스팅한다.
** 윈도우 vs 리눅스: 인프라 관리 도구 비교
| 역할 | 윈도우 | 리눅스 |
| 이미지 봉인 | Sysprep (SID, 드라이버 초기화) | 필요 없음 (파일 기반이라 복제가 쉬움) |
| 스크립트 | PowerShell (.ps1) | Bash Shell (.sh) |
| 네트워크 배포 | WDS (PXE 기반) | Kickstart / Cobbler (PXE 기반) |
| 설정 자동화 | DSC (프레임워크) | Ansible / Cloud-init |
| 커널 엔진 | NT 커널 | Linux 커널 |
이제 시작!
1. 인프라의 기초: Bare Metal vs VMware
1) 베어메탈(Bare Metal):
- 정의: 가상화 소프트웨어(Hypervisor) 없이 하드웨어 위에 OS를 직접 설치한 날것의 서버
- 장점: 가상화 오버헤드가 없어 최강의 성능 보장, VMware 같은 라이선스 비용이 들지 않음
- 용도: 고성능 DB 서버, 리소스를 풀(Full)로 써야 하는 고성능 연산 서버
2) VMware (VM):
- 정의: 물리 서버 1대를 소프트웨어로 쪼개서 여러 대의 가상 머신으로 사용하는 방식
- 장점: 서버 자원을 유연하게 배분할 수 있고, 복제와 이동이 매우 간편
- 용도: 웹 서버, API 서버, 일반 업무용 애플리케이션 서버
2. 배포의 핵심: 골든 이미지(Golden Image)와 레이어 전략
- 윈도우에서 골든 이미지는 도커와 달리 상태를 통째로 박제한 파일(.WIM)
- 운영 관리를 위해서는 전략적인 레이어 설계가 필요하다.
- Base Layer: OS + 최신 보안 패치
- Infra Layer: Base + 모니터링 에이전트(Windows Exporter) + 백신 + 원격 관리 설정. (가장 표준이 되는 골든 이미지)
- App Layer: Infra + MSSQL 또는 IIS 등 특정 서비스
주의: 윈도우는 도커처럼 레이어가 실시간 조립되지 않음. 각 단계가 합쳐진 '완성본'을 각각 구워야 하므로, 실무에서는 Infra Layer까지만 이미지로 굽고 그 위는 스크립트로 처리하는 것이 효율적이다.
** 도커(Docker) vs 윈도우 골든 이미지
| 구분 | 도커 (Container) | 윈도우 골든 이미지 (WIM) |
| 구조 | 호스트 커널 공유 (가벼움) | 자체 NT 커널 포함 (무거움) |
| 관리 | 코드 기반 레시피 (Dockerfile) | 설치 후 스냅샷 박제 (WIM) |
| 수정 | 코드 수정 후 즉시 재빌드 | 이미지 풀기 -> 수정 -> 다시 굽기 |
| 비유 | 필요한 부품만 가는 레고 | 방 전체를 복사하는 건축 |
3. 대규모 배포 기술: PXE 서버
- 대규모 서버 이관 시 400대 서버에 일일이 파일을 설치하는 것은 번거롭다. 네트워크를 통한 대량 배포 시스템을 구축해야 함
1) PXE(Preboot eXecution Environment, 픽시):
- 서버가 켜질 때 하드디스크가 아닌 네트워크(LAN) 선을 통해 OS 설치 파일을 받아오는 시스템
- 중앙의 PXE 서버(WDS 등)가 400대 서버에 동시에 OS를 쏴주는 역할
** WDS와 DSC 차이
- Ansible을 통해 Ansible Tower에서 각 타겟 VM에 접근해서 처리할 수 있지만, 사내 보안 상 그건 불가할 것으로 보임
- 타겟 VM에서 미들웨어 설치 스크립트를 pull로 당겨와서 할 수 있다면? DSC 사용 가능.
하지만 이것도 보안 상 불가할 수 있음... 그럼 공통 repository를 생성해서 관리하거나 해야 될 듯.
=> WDS는 MS에서 제공하는 PXE 서버 역할의 정식 명칭
=> DSC는 리눅스에서도 사용 가능하긴 하지만 윈도우 특화라고 보면 된다. (PowerShell DSC는 윈도우 인프라를 '코드로 관리(IaC)'하기 위한 선언적 프레임워크)
==> WDS가 서버라는 기초 건물(OS+기본 레이어)을 올리는 공사라면, DSC는 그 안에 미들웨어+서비스를 채우고 유지하는 작업
| 구분 | WDS (Deployment) | DSC (Configuration) |
| 목적 | OS 설치 (OS 굽고 뿌리기) | 설정 관리 (OS 설치 후 세부 세팅) |
| 시점 | 서버가 처음 태어날 때 | 서버가 운영되는 내내 |
| 핵심 파일 | .wim (골든 이미지 파일) | .ps1 (파워쉘 기반 선언적 코드) |
| 도구 성격 | 서버 역할(Role) | 파워쉘의 기능(Feature) |
4. 봉인과 소통: Sysprep & PowerShell(.ps1)
- Sysprep(시스프렙): 골든 이미지를 굽기 전, 서버의 고유 정보(SID, 이름)를 지우고 '봉인'하는 필수 단계, 이 과정을 거쳐야 수백대가 충돌 없이 복제됨
- PowerShell (.ps1): 윈도우의 심장인 NT 커널을 조종하는 마스터 키, bat 대신 현대적인 .ps1 스크립트를 통해 모든 자동화를 구현 가능
=> 실무 팁: 실행 권한 문제 해결을 위해 Set-ExecutionPolicy RemoteSigned 명령어가 선행되어야 함
| Q. 왜 하는가?: 윈도우 서버는 그대로 복사하면 400대의 SID(주민번호와 같다고 보면 됨)와 이름이 중복되어 네트워크 충돌이 발생 Q. 어떻게 하는가?: C:\Windows\System32\Sysprep\sysprep.exe를 실행하여 '일반화(Generalize)' 옵션을 선택함 * 결과: 컴퓨터 고유 정보는 지워지고, OS 설정과 설치된 프로그램(익스포터 등)만 남은 깨끗한 복제용 상태가 된다! |
5. 모니터링 체계: Windows Exporter & 프로메테우스
- Windows Exporter: NT 커널에서 CPU, 메모리, 네트워크 지표를 뽑아내는 전용 에이전트
- 설정: 기본적으로 9182번 포트를 사용, 골든 이미지를 만들 때 'NT 서비스'로 등록해두면 서버가 부팅되자마자 자동으로 모니터링이 시작됨
- linux의 node exporter와 동일 역할임
- 모니터링은 프로메테우스 대신 다른 솔루션 도입할 수도 있어서 추가로 알아봐야 될 듯
핵심 요약
대규모 윈도우 인프라 이관은 "한 대를 완벽하게 세팅하여 시스프렙으로 봉인하고(Golden Image), PXE로 400대에 배포한 뒤, 파워쉘 스크립트로 일괄 조종한다" 로 정리 가능