Project.다원 Ensemble_내부망 구조(서버 도식화)


오늘은 제가 구현할 ERP Ensemble의 서버 구조를 간단하게 설계해 보았습니다.

 

이는 내부망 구조로, 웹 서버가 구축된 내부망에서만 사용이 가능하며,

외부에서 필요한 경우 VPN 접속을 열어 최대한으로 보안을 유지하기 위해서 설계를 했습니다.

 

 - 아래는 내부망 구조 (서버 도식화)

내부망 구조 (서버 도식화)

** 그림에 사용된 글자체는 네이버 나눔글꼴의 나눔스퀘어 Bold입니다.

** 상단 그림은 제가(Karzin) 직접 만들었으며, 필요한 픽토그램등의 작업도 직접 만든것임을 명시합니다.

** 상단 그림의 저작권은 Karzin에게 있음을 명시합니다.

 

- Ensemble는 위와 같은 구조로 개발이 진행 될 것입니다.

  -> 다만, 제게는 WEB, WAS, DB를 따로 두고 개발하진 못할것으로 보이며(테스트 서버의 부재), WEB/WAS/DB 서버를 하나로 합쳐서 테스트 할 것입니다.

 

-  WEB Server의 경우 Apache나 Nginx를 사용할 예정입니다.

  -> 이는 추후 변경가능성이 없지않아 있으며, 사실상 개발은 WAS단에서 이루어질 것이고, WEB서버는 사용자의 입맛에 맞추어 진행하는것으로 해볼 예정입니다.

  -> 다만, 제가 Apache나 Nginx 정도만 다뤄본 경험이 있어 추가적인 WEB Server에 대해서는 대응이 어려울 것으로 보여 Apache 혹은 Nginx를 Default로 잡았습니다.

 

- WAS Server의 경우 tomcat8을 타겟으로 잡고 진행합니다.

  -> 톰캣 외 WildFly (이전 JBoss)도 사용해보았지만, 저는 WAS는 아무래도 tomcat8이 좀 더 익숙하다 보니 tomcat8을 타겟으로 잡았습니다.

  -> 또한 tomcat은 APACHE 2 License를 따르고 있어 개인적 혹은 상업적 목적으로 사용할 수 있기 때문에(APACHE2 License를 포함시키고 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확히 밝히기) 채택한 것도 큰 이유중 하나입니다.  

 

- DB Server의 경우 Master와 Slave를 나누어 사용합니다.

  -> Master는 CRUD 전반적인 입출력이 될 예정입니다.

  -> Slave의 경우 DBLink로 Master의 모든 테이블 및 데이터를 동일하게 복제할 예정이며, 이 복제된 데이터를 n일마다 새벽 2시(혹은 이외의 시간) 부터 Backup을 하여 Backup Storage로 Backup된 파일을 이동할 예정입니다.

    -->> Backup Data의 이동은 사람이 하는것이 아닌, Linux crontab(Shell Script)을 활용하여 옮길 예정입니다.

  -> Backup Storage의 경우 실제 물리적인 HDD를 따로 두어 Backup Data를 관리를 하던, Backup용 Server를 따로 구축하여 관리를 하는 형식으로 이루어질 예정입니다.

  * 저의 경우 어떠한 DB Data가 되었던 자신 혹은 회사 혹은 나라의 자산이라 생각하기 때문에 Backup을 굉장히 중요하다고 생각합니다. 따라서 가능하면 Backup에도 많은 공을 들일 예정입니다.

  -> WAS와 데이터를 주고 받을 시 중요한 데이터(Password 및 개인 정보 등)에 대해서 암호(encryption)/복호(decryption)화를 통해 주고받을 예정입니다.

  -> 또한 Master Server의 상태가 불안정할시 Slave Server로 변경하여 작업을 원할하게 진행할 수 있도록 개발할 생각입니다. (이는 추후 과제가 될예정)

  -> 사실 설계적인 부분에 있어서는 고민을 많이 했는데, 처음에는 Replication을 활용을 할까 고민을 많이 했습니다. (Insert/Update/Delete는 Master, Select는 Slave 형식의 분산처리) 다만, Replication을 활용할 만큼 엄청나게 많은 데이터가 오가지 않는다는 생각으로 설계를 했으므로, 추후 변경가능성이 다소 있습니다. (Ref1. DB를 DBLink가 아닌 Replication을 활용한 경우의 구조도)

 

- 내부망에 붙기 위해서는 VPN을 활용

  -> 요즘의 공유기는 날이 가면 갈수록 좋아집니다. 특히 VPN이 지원될 정도로 말이죠. (적어도 제가 사용중인 iptime의 경우 지원하고 있습니다.)

  -> 최대한 외부로의 포트를 막고 내부에서만 작업을 하게끔 하고 있으며, 외부에서 작업이 필요한 경우 VPN을 통해 접속을 할 수 있도록 생각하고있습니다.

 

- Client

  -> 최대한 모든 Web Browser를 지원할 예정입니다. (시간이 걸리더라도)

  -> Front단을 Bootstrap을 이용하여 개발하여 PC, 모바일, 태블릿 등 OS에 상관없이 수많은 플랫폼에서 지원이 가능하며, Ensemble의 개발이 어느정도 진척이 이루어지면 Application(Android, iOS)을 제작하여 Ensemble의 장비관리 파트에 붙여서 사용할 예정입니다.

    -->> 장비관리 파트의 대략적인 기능으로는

          1. 모바일 등에서 장비촬영,

          2. 촬영된 장비를 등록 및 관리,

          3. 장비 상태에 따른 불용 및 폐기 처리 등을 지원하도록 할 예정입니다.

 

Ref1. DB를 DBLink가 아닌 Replication을 활용한 경우의 구조도

DBLink가 아닌 Replication을 활용한 구조도

 

** 그림에 사용된 글자체는 네이버 나눔글꼴의 나눔스퀘어 Bold입니다.

** 상단 그림은 제가(Karzin) 직접 만들었으며, 필요한 픽토그램등의 작업도 직접 만든것임을 명시합니다.

** 상단 그림의 저작권은 Karzin에게 있음을 명시합니다.

 

버전정보 (v1.1)

 - v1.0 2020.06.16 배포

 - v1.1 2020.06.16 Ref1. 추가 (Replication의 활용 구조도 그림 추가)

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

 

Project.다원은 개인(karzin)이 기획, 분석, 설계, 디자인, 개발, 유지보수 등

모든 부분을 혼자 맡아 진행하는 개인 프로젝트입니다.

Project.다원 Ensemble

Karzin

abbeea@naver.com

 

+ Recent posts