본문 바로가기

경험

서버 이관 - 서버 이관 처음할 때 필요했던 것들

 입사한 지 얼마 되지 않은 시절, 회사에는 Window Server 2008 / MsSQL / 파스칼로 이루어진 노후된 프로젝트가 있었다. 또한, 서버는 원격 접속이 되지 않고 직접 가서 배포 및 관리해야 했다. 또 또한, 회사에서 만든 프로젝트도 아니고 회사 내에서 파스칼을 할 수 있는 사람이 없었다(??? 이제 생각해 보니 어이가 없군..).

 

 그런데 내가 그 프로젝트의 서버 이관을 맡게 되었다..! 

 

 갑자기 생각나기도 했고 또 언제 서버 이관을 할지도 모르니

아주 늦었지만, 기억을 더듬어보며 정리해놓으려고 한다.

 

용어 설명

  • migration : 이관을 뜻한다.
  • AS-IS : 현재 환경 (이관 전 환경)
  • TO-BE : 구현해야할 환경 (이관 후 환경)

 

1. AS-IS 파악

 일단 이 프로젝트는 내가 개발 / 유지보수 / 배포 중 아무것도 해본 적이 없는 프로젝트이다. 설령 내가 배포 관리했더라도 까먹었을 수도 있으니 AS-IS 파악은 필수이다.

 

확인해야 할 것은 다음과 같다.

  • 데이터베이스
  • 서버 경로( 소스파일 / 이미지, 첨부파일 등 정적 리소스 등 )
  • 스케줄러 (리눅스의 경우 cron이 된다.)
  • 사용 중인 서비스 패키지( 예를 들면 Microsoft Visual C++ 2008?)

서버 경로나 스케줄러는 "프로젝트를 위해 설정해 놓은 게 무엇인지"이고,

데이터베이스나 서비스 패키지는 "어떤 것을 사용하고 있는지"를 중심으로 보면 된다.

 

2. TO-BE 파악

 당연히 구현해야할 환경을 알아야 한다. 또한, AS-IS와의 차이점을 알아야 한다.

  • 데이터베이스의 경우, 인코딩 방식이나 내장함수 등이 다를 수 있다.
  • 지원 종료한 패키지는 없는지 확인해야 한다.

 

3. 클라이언트에게 알리기

 서버 이관 시 일정 기간동안 작업 및 테스트가 필요하기 때문에 서버가 종료되어야 할 수 있다. 혹은 서버가 이관됨에 따라 클라이언트 프로그램을 업데이트해야 할 수도 있을 것이다.

 

 따라서 이런 것들은 클라이언트에게 사전에 알려야 한다.

 

4. 이관

 일단 데이터베이스다. MsSQL의 경우, 자체 DBMS 관리도구(SSMS)에서 백업할 수 있다. (MySQL의 경우 mysqldump 명령어를 사용한다)

 

 그 다음은 WAS 및 서버 소스이다. 버전 및 종속성에 유의하도록 하자. VCS를 관리한다면 서버 소스를 이관할 필요는 없겠지만, 이 프로젝트의 경우 최신 소스는 서버에만 적용되고 분실되었었다.. 하하..

 여기서 에러가 난다면, 서비스 패키지 오류가 아닌지부터 확인해봐야 한다.

 

 또 스케줄러를 그대로 등록한다. 이 작업은 없다면 스킵하면 된다.

 

 마지막으로 방화벽을 확인한다. 인바운드 규칙에서 서버 포트는 열어주어야 한다.

 

5. 테스트

 클라이언트 프로그램에서 단위 및 통합 테스트를 실시한다.

문제가 생길 경우, 다시 4번으로 돌아간다.

 

 이제 문제가 없다면 다시 클라이언트에게 정상화를 알리면서 끝마친다.

 


이제 생각해 보니 어떻게 성공적으로 끝냈는지 참 모르겠다. 허허.. 

처음 겪은 이관이 맵고 험악한 맛이라서 그런지 다음에는 훨씬 잘할 수 있을 것 같다~!!

반응형