구 레거시 윈도우 서버 프로젝트 (IIS / ASP) 이관 도전기

2025. 7. 30. 09:52·Develop/DevOps
반응형

 

 

목차

  1. 이관 개요 및 환경 정리
  2. 사전 준비 (백업/점검)
  3. IIS 설정 백업 방법
  4. 웹사이트 파일/데이터베이스 이전
  5. IIS 설정 복원 및 재구성 (2012)
  6. 테스트 및 마이그레이션 체크리스트
  7. FAQ & 문제 해결 팁

1. 이관 개요 및 환경 정리

  • 이관 전 서버: Windows Server 2008 R2 Enterprise (IIS 7.5)
  • 이관 후 서버: Windows Server 2012 Standard (IIS 8.0)
  • 목적: 특정 사이트만 이전 (전체가 아님)
  • 주요 서비스: ASP/ASP.NET 웹사이트, MSSQL 연동, FTP 등

2. 사전 준비 (백업/점검)

체크리스트

  • 웹사이트 파일 백업 (웹 루트 폴더 전체)
  • IIS 설정 백업 (ApplicationHost.config/메타베이스 등)
  • DB 백업 (필요 시 .bak, 또는 DUMP)
  • SSL 인증서 백업 (필요시)
  • 방화벽/포트 확인 (HTTP/HTTPS, FTP 등)
  • 서버 IP/도메인 정보 메모
  • Windows Update (신규 서버에 최신 보안 패치 적용)

상세 설명

  • 백업은 두 번! (실제 복사, 그리고 자동화 스크립트/도구)
  • 운영 중인 사이트라면 이관 시점을 사전에 정해두는 것이 안전

3. IIS 설정 백업 방법

3-1. ApplicationHost.config 내보내기

(IIS 7.0 이상은 메타베이스 대신 ApplicationHost.config 기반임)

# PowerShell을 '관리자 권한'으로 실행 
cd "C:\Windows\System32\inetsrv" 
appcmd add backup myBackup
 
myBackup은 백업명 (원하는 이름으로 변경 가능)
결과물: C:\Windows\System32\inetsrv\backup\myBackup\
 

3-2. 사이트별 구성 내보내기 (특정 사이트만)

사이트명 확인:

appcmd list site

 

특정 사이트만 내보내려면:

appcmd list site "사이트명" /config /xml > D:\Backup\site_config.xml

3-3. 웹사이트 파일 백업

  • 일반적으로 C:\inetpub\wwwroot\ 또는 커스텀 경로
  • 해당 사이트 루트 전체 복사:
robocopy "C:\inetpub\wwwroot\YourSite" "D:\Backup\YourSite" /E
  • FTP 등 별도 서비스 폴더도 동일하게

3-4. SSL 인증서 백업

  • 인증서 MMC에서 내보내기(개인키 포함, .pfx)
  • IIS 관리 콘솔 → 서버 인증서 → 내보내기

4. 웹사이트 파일/데이터베이스 이전

  • 백업해둔 웹사이트 폴더를 신규 서버로 복사
  • DB는 .bak 파일로 복원하거나, Export/Import
  • SSL 인증서는 MMC로 Import

5. IIS 설정 복원 및 재구성 (2012)

5-1. IIS 역할 및 필요 컴포넌트 설치

  • IIS 설치 (서버 관리자 → 역할 및 기능 추가)
  • ASP/ASP.NET, CGI 등 필요한 구성요소 추가
  • 32비트 지원(필요시), ISAPI, Windows 인증 등 옵션 확인

5-2. 사이트 Import

(전체 백업/복원이 아니라면 수동 등록 추천)

A. ApplicationHost.config 복원

  • 전체 환경 복원 필요시:
appcmd restore backup myBackup
 
  • 주의: 전체 복원은 기존 설정을 덮어씌우니 신규 서버에서 조심히 테스트할 것!

B. 사이트 개별 등록

  • IIS 관리자에서 ‘사이트 추가’
  • 포트/호스트헤더/인증/애플리케이션 풀 등 원본과 동일하게 구성
  • site_config.xml 직접 Import는 지원 안 하므로, GUI에서 수동 입력이 일반적
  • Application Pool은 .NET 버전/모드(Integrated/Classic), 32비트 지원 여부 확인

C. SSL 인증서 설치

  • 인증서 MMC → 인증서 가져오기
  • IIS 관리 콘솔에서 바인딩에 인증서 연결

D. hosts 파일 등 도메인 매핑(테스트 목적)


6. 테스트 및 마이그레이션 체크리스트

  • 사이트 정상 동작 여부 (HTTP/HTTPS)
  • DB 연결 및 쿼리 정상 작동
  • 파일 업로드/다운로드, 세션, 쿠키 등 정상 여부
  • 이벤트 로그 오류 여부 확인 (이벤트 뷰어)
  • 외부 접근성 (방화벽, 포트)
  • 관리자 페이지/FTP 등 부가 서비스 정상여부
  • 백업/복원 시 권한 문제(권한 상속/계정) 체크

7. FAQ & 문제 해결 팁

Q1. 백업한 appcmd 설정이 바로 Import가 안될 때?
→ 2008R2와 2012는 구조상 거의 동일하지만, 일부 컴포넌트/경로 차이로 인해 직접 GUI에서 재등록이 더 안전
Q2. 인증서 내보내기 오류
→ 인증서 MMC에서 ‘개인키 포함’ 옵션 반드시 체크
Q3. 권한 오류
→ 웹 루트 폴더는 IIS_IUSRS, NETWORK SERVICE에 읽기/쓰기 권한 필요
Q4. 바인딩 충돌
→ 기존과 동일한 포트 사용시 중복에 유의 (특히 80, 443)

Q5. 전체 구성 백업과 사이트별 구성 내보내기 차이
→ 전체 백업/롤백용, 사이트별 내보내기는 부분 이관/문서화용

백업 범위 IIS 전체 지정한 사이트(1개)
용도 전체 환경 복구/마이그레이션 특정 사이트만 복구/이관
복원 방법 appcmd restore backup 수동 생성 참고자료
실제 파일 시스템 폴더에 저장 원하는 경로에 XML로 저장
일반적 활용 서버 전체 백업/롤백 일부 사이트 백업/이관

참고자료  Ref. 

  • 공식 MS IIS 문서
  • appcmd 명령어 참고

https://learn.microsoft.com/ko-kr/iis/

 

IIS 설명서

IIS에 대해 알아봅니다.

learn.microsoft.com

 

 

https://learn.microsoft.com/en-us/iis/get-started/getting-started-with-iis/getting-started-with-appcmdexe

 

Getting Started with AppCmd.exe

AppCmd.exe is the single command line tool for managing IIS 7 and above. It exposes all key server management functionality through a set of intuitive manage...

learn.microsoft.com

 

 


 

 

실무에서 가장 많이 발생하는 이슈는 권한/경로 문제, SSL 인증서 이슈와 서버간 Application Pool 호환성이니 반드시 체크리스트 기반으로 차근차근 진행하는 게 안전하다 😓

 

반응형
저작자표시 비영리 (새창열림)

'Develop > DevOps' 카테고리의 다른 글

[nssm] 윈도우(window)에서 JAR 파일 서비스로 등록하기 🤡🍯🐝  (12) 2025.04.24
newman 을 이용하여 node 서버 부하 테스트 및 pm2 클러스트 모드 사용 / 커넥션 풀 사용하여 부하 예방하기 🐝  (6) 2024.11.12
[모니터링] 프로메테우스 + 그라파나 모니터링 시스템 구축하기 (feat micrometer)  (70) 2024.02.14
아파치 카프카(APACHE Kafka) 그게 도대체 뭔데 😤 카프카 기본 개념에 대해 알아보자  (93) 2023.11.17
자주 사용하는 linux 필수 명령어 모음  (2) 2023.07.23
'Develop/DevOps' 카테고리의 다른 글
  • [nssm] 윈도우(window)에서 JAR 파일 서비스로 등록하기 🤡🍯🐝
  • newman 을 이용하여 node 서버 부하 테스트 및 pm2 클러스트 모드 사용 / 커넥션 풀 사용하여 부하 예방하기 🐝
  • [모니터링] 프로메테우스 + 그라파나 모니터링 시스템 구축하기 (feat micrometer)
  • 아파치 카프카(APACHE Kafka) 그게 도대체 뭔데 😤 카프카 기본 개념에 대해 알아보자
    반응형
  • 개발자는어디까지공부해야할까?
  • 전체
    오늘
    어제
    • 분류 전체보기 (51)
      • 인디해커 (1)
      • Develop (42)
        • Front-End (7)
        • Back-End (17)
        • Spring (1)
        • Tool (1)
        • DATABASE (1)
        • DevOps (7)
        • CS (3)
        • Trouble Shooting (5)
      • 다이소 (1)
        • 코딩테스트문제풀이 (1)
      • 변소 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브(Github)
    • 개발 Feed
  • 공지사항

  • 인기 글

  • 태그

    백엔드
    스프링부트
    타임리프 사용방법
    Java
    React
    lol
    github
    spring
    롤
    SpringBoot
    react-router-dom
    @Scheduled
    fow.kr
    op.gg
    mybatis
    셀레니움
    Oracle
    리그오브레전드
    백엔드 개발자 면접 단골 질문 뿌시기
    자바
    개발자
    backend
    spring boot
    JavaScript
    개발자 면접
    node
    jdk
    thymeleaf
    리액트
    Recoil
  • 최근 댓글

  • 최근 글

  • 01-25 02:38
  • hELLO· Designed By정상우.v4.10.3
구 레거시 윈도우 서버 프로젝트 (IIS / ASP) 이관 도전기
상단으로

티스토리툴바