여러 인터넷 정보 서비스(IIS) 사이트를 온프레미스 환경에서 클라우드로 마이그레이션해야 하는 경우가 종종 있습니다. 하지만 사이트를 하나씩 개별적으로 옮기는 작업은 시간이 많이 걸리고 번거로울 수 있습니다. 이번 글에서는 이 과정을 간소화하는 방법을 소개합니다.
개요
Microsoft® 웹 배포(Web Deploy) 도구를 사용하면 소스 환경에서 사이트와 해당 콘텐츠를 내보낸 후 대상 환경으로 가져올 수 있습니다. 이번 글에서는 Web Deploy를 활용해 IIS 사이트를 마이그레이션하는 다음 단계를 자세히 살펴봅니다.
- 소스 서버와 대상 서버에 Web Deploy를 설치합니다.
- Web Deploy를 사용해 소스 환경에서 IIS 콘텐츠를 내보냅니다.
- PowerShell
copy/sync명령으로 데이터를 소스에서 대상 환경으로 복사합니다. - Web Deploy를 사용해 IIS 콘텐츠를 대상 환경으로 가져옵니다.
- 백업 및 복원 명령으로 데이터베이스를 소스에서 대상 환경으로 복사합니다. 이 글에서는 MySQL® 데이터베이스를 예로 듭니다.
소스 및 대상 서버에 Web Deploy 설치
다음 절차에 따라 Web Deploy를 설치합니다.
- Microsoft 웹 플랫폼 설치 관리자(Web Platform Installer, WebPI)를 다운로드하여 Web Deploy를 설치합니다. WebPI에는 Web Deploy가 포함되어 있습니다.
- WebPI 다운로드가 완료되면 설치 프로그램을 실행합니다.
- 검색 창에 Recommended를 입력하고, 아래 화면과 같이 Recommended Configuration for Hosting Providers(호스팅 공급자용 권장 구성)를 선택합니다.

- 설치할 전체 구성 요소 목록을 확인하려면 창 하단의 Items to be installed(설치될 항목)을 클릭합니다. 항목 옆에 "X"가 표시된 것은 제거할 수 있습니다. 아래 스크린샷은 Web Deploy 기능을 보여줍니다.

- 어떤 항목도 선택 해제하지 말고 Next를 클릭한 후 Install을 클릭합니다. 라이선스 계약에 동의하면 아래 화면과 같이 설치가 시작됩니다.

- WebPI 설치가 완료되면 WebPI를 닫습니다.
소스 환경에서 IIS 콘텐츠 내보내기
Web Deploy를 사용해 IIS 사이트 콘텐츠를 내보내기 전에 다음 파일의 백업 복사본을 먼저 만들어 둡니다.
- C:\Windows\System32\inetsrv\config\administration.config
- C:\Windows\System32\inetsrv\config\applicationHost.config
이 파일에는 모든 사이트 설정이 담겨 있습니다. 이후 단계에서는 대상 서버에서만 이 파일들을 수정하게 됩니다. 진행 중 문제가 발생해 대상 서버를 원래 상태로 되돌려야 할 경우, 백업해 둔 파일을 복원하면 됩니다.
백업 복사본을 만든 후, 소스 서버에서 다음 단계를 수행해 IIS 사이트 콘텐츠를 내보냅니다.
- 마이그레이션할 IIS 사이트가 있는 소스 서버에서 IIS 7.0 관리자를 엽니다.
- 서버 이름을 마우스 오른쪽 버튼으로 클릭하고 Deploy를 선택한 후 Export Server Package(서버 패키지 내보내기)를 클릭합니다. 아래 스크린샷을 참고하세요.

- Export Server Package 화면에서 아래와 같이 Manage Components(구성 요소 관리)를 클릭합니다.

- Manage Components 창에서 목록의 첫 번째 Provider Name(공급자 이름)이 webServer로 지정되어 있는지 확인합니다. 이렇게 하면 전체 서버 구성을 내보낼 수 있습니다. 해당 항목이 없다면 Provider Name 아래 셀을 클릭하고 표시되는 목록에서 직접 선택합니다.

- OK, Next, 그리고 다시 Next를 차례로 클릭합니다.
- 내보낸 파일을 저장할 경로를 입력하고 Next를 클릭합니다.
- 메시지가 표시되면 보안 설정을 위한 암호화된 비밀번호를 입력합니다.
- 아래 화면과 같이 Export Progress and Summary 화면에서 Finish를 클릭합니다.

소스에서 대상 환경으로 데이터 복사하기
앞서 생성한 내보내기 파일은 표준 robocopy 명령, Windows 기본 복사 유틸리티 또는 선호하는 복사 도구를 사용해 대상 서버로 복사합니다.
대상 서버로 IIS 콘텐츠 가져오기
대상 서버에서 다음 단계를 수행해 IIS 설정을 가져옵니다.
- 마이그레이션할 사이트가 있는 대상 서버에서 IIS 7.0 관리자를 엽니다.
- 서버 이름을 마우스 오른쪽 버튼으로 클릭하고 Deploy를 클릭한 후 Import Server or Site Package(서버 또는 사이트 패키지 가져오기)를 클릭합니다.
- 소스 서버에서 복사해 온 내보내기 zip 파일을 찾아 선택합니다.
- Next를 클릭합니다.
- 메시지가 표시되면 보안 설정을 위한 암호화된 비밀번호를 입력합니다.
- Next를 클릭합니다.
- 서버의 기존 IIS 구성을 덮어쓰려면 아래 화면과 같이 OK를 클릭합니다.

- Next를 클릭합니다.
- Export Progress and Summary 화면에서 Finish를 클릭합니다.
가져오기 실패 시 문제 해결
패키지 가져오기 중 아래와 같은 오류가 발생하면 다음 단계로 문제를 해결할 수 있습니다.
Child object 'customFields' cannot be added to object 'logFile'.
The 'logFile' provider may not support this deployment."msdeploy로 내보낸 zip 파일을 엽니다.- zip 파일 안의 archive.xml 파일을 텍스트 편집기로 엽니다.
- customFields가 포함된 줄을 삭제합니다.
- xml 파일을 저장합니다.
- zip 파일을 다시 가져옵니다.
MySQL 데이터베이스 백업 및 복원
소스 서버에서 MySQL 데이터베이스를 백업하려면 mysqldump 명령을 사용합니다.
대상 서버에서 MySQL 데이터베이스를 복원하려면 mysql 명령에 생성해 둔 덤프 파일 이름을 지정하여 실행합니다.
결론
IIS 사이트를 수동으로 마이그레이션하는 것은 매우 방대하고 반복적인 작업일 수 있습니다. Web Deploy를 활용하면 수천 개의 사이트와 해당 구성까지 코드 수정 없이도 대상 환경으로 원활하게 마이그레이션할 수 있습니다. Web Deploy는 마이그레이션 과정의 대부분을 자동화할 뿐만 아니라, 사람이 실수할 가능성을 없애고 작업 시간도 크게 절약해 줍니다.
데이터베이스에 대해 더 자세히 알아보세요.
의견이나 궁금한 점이 있다면 피드백 탭을 이용해 남겨 주세요. 언제든지 대화를 나눌 수 있습니다.