Technical Architecture Studio

소프트웨어 구성도

Tech Studio 2020. 1. 10. 04:28

#5 소프트웨어 구성도

 소프트웨어는 OS 부터 그 위에 구성되는 유틸리티와 Daemon, WEB, WAS 등등을 말한다. 우리가 컴퓨터를 사게 되면, 윈도우나 리눅스를 설치해서 사용하듯이 서버도 윈도우나 리눅스를 설치해서 사용하게 된다. 물론 가상서버의경우도 OS를 지정해서 생성되게 된다. 

 물론 우리가 새로운 컴퓨터를 샀을때, 사용할 소프트웨어를 정리하고 위치와 파일의 사용 용량을 걱정하지는 않지만, 서버는 24시간 7일 1년을 사용하기 때문에 위치와 사용할 소프트웨어 그리고 관리를 위한 스크립트까지 전부 기록하고 정리해야한다. 

소프트웨어 구성 및 연동 표

 서버안에 들어가는 소프트웨어와 소프트웨어들간의 연동을 보면 위의 그림과 같은데, 서버 안에는 제일 먼저 서버 OS 와 그 위에 각종 유틸리티, 그리고 모니터링 소프트웨어와 배치잡 스크립트가 있고 흔히 말하는 어플리케이션인 웹, 와스, 데이터베이스가 있다. 웹 데몬은 HTTPD, NGINX, WEBTOB 등이 있고, 와스는 TOMCAT, JBOSS, JEUS 등이 있다. 기본적인 운영은 조금씩 다르지만 주로 사용하는 부분은 비슷하므로 사용환경혹은 요청에따라 사용하게 된다. 

 위 그림의 주로 사용하는 소프트웨어들을 한개씩 보자면, ILO ( HP 서버 ) 는 서버하드웨어에 들어있는 관리용 소프트웨어라고 보면된다. 예를 들면 서버는 물리 전원버튼이 안눌러져있어도 전원공급과 네트워크 연결이 되어있다면, 원격으로 서버를 키거나 원격으로 사용할 수 있다. CentOS 는 오픈소스 리눅스 시스템으로 RHEL 의 1버전 이전으로 볼 수 있다. RHEL 과의 큰차이점은 레포지터리의 이용과 기술지원이 있다. JAVA 는 개발용 JAVA 패키지로 흔히 JDK 로 쓴다. 버전은 OS, WAS 등의 환경을 고려하여 선정하고 주로 OS 상에 자동으로 설치되는 버전보다는 특정경로에 PATH를 지정하여 사용한다. ( 버전의 변경시, 이슈발생 ) 모니터링은 서버의 모든 활동을 감시하고 장애예방과 예측하지 못한 장애시, 서버의 활동기록을 확인하게 해준다. 유틸리티는 종류가 많지만 그중 특징적인것을 본다면, top, vim 등 상태를 확인하거나, 수정하는 등의 것들이라고 보면된다. 기타 vsFTP와 OpenSSH도 물론 포함되는 것이라고 보면 될 것이다. 배치는 로그 혹은 특정 작업을 시간에 맞춰사용하거나, 필요로 하는순간에 특정조건에 맞춰 사용되는 간단한 스크립트 덩어리로 볼 수 있고, 흔히 로그를 압축, 삭제등을 진행하게 된다.

소프트웨어 설치 경로 표

 소프트웨어는 위의 표처럼 경로와 이름, 그리고 여러 소프트웨어가 겹치지 않게 구성하고 클러스터링과 N개 이상 증가필요시를 대비해 증가할 수 있는 상태로 구성한다. Tomcat 같은 경우 한개의 Tomcat을 config와 script를 이용하면, 공유된 메모리들을 사용해 메모리의 사용을 관리할 수있다. My-SQL 같은 경우 패스워드가 별도로 생성되어야 하므로 root 계정의 패스워드는 따로 관리하고, 실제로 사용할 유저 계정을 생성하여 관리한다. 

 물론 HTTPD나 Tomcat에도 패스워드를 사용하여 관리가 가능하다. 스테이터스 페이지와 메니지먼트 페이지를 사용할 수도 있지만 보안문제가 발생할 수도 있으므로 별도로 생성하지는 않는다. 물론 HTTPD는 로드벨런싱의 용도로 사용하기때문에 별도 페이지는 비우고 에러페이지도 Tomcat에서 처리하게 한다. 이때 Tomcat은 ROOT 경로를 사용하지 않고, 소스경로를 따로 구성하여 사용한다. 로그 또한 별도의 경로를 지정하여, 로그와 소프트웨어를 분리한다. 그 이유는 보안과 디스크의 용량과 관련이 있는데, 개발자가 설정을 변경하거나 불특정 인원이 설정에 접근하지 못하게 해서 보안에 대비하고, 소프트웨어의 공간이 로그로 사용 할 수 없게되면 이슈가 발생 할 수 있기때문이다. 로그를 확인 할 수 있는 공간은, 권한을 조정하여 수정을 할 수 없게 한다. 

 이를 바탕으로 한 소프트웨어는 아래의 그림처럼 구성한다. 

HTTPD 구조
Tomcat 구조
My-SQL 구조

각 그림의 경로와 설정에 따라 해당 디렉토리 혹은 설정 파일을 불러오게 된다. 

'Technical Architecture Studio' 카테고리의 다른 글

성능치 반영도  (0) 2020.01.14
전체 시스템 구성도  (0) 2020.01.10
서버 구성도  (0) 2020.01.08
네트워크 구성도  (0) 2020.01.07
요구사항 분석  (0) 2020.01.06