서버의 데모 구성
- blackrusiper
- 2016년 5월 2일
- 3분 분량
자 실 서버의 수량 예측 및 수량의 계획을 잡았다면 간단하게 실제 구성을 고민하면서 예측을 하면 위의 개념 설계를 바탕으로 실 구성에 대한 구성도를 완성 후, 데모를 완성 한다.
그 이후, 실 구성에 들어가게 되는데 이때 데모 장비는 DEV 장비로 실 구성의 장비는
STG, 혹은 TB 등으로 구성 후에 STG를 그대로 상용으로 위치 아동 혹은 필요 부분을 상용으로 완성 후에
다시 STG, TB 등으로 다시 동일하게 만드는 것이 좋다.
이는 서버의 설정 및 배포 계획에도 지대한 영향을 미치게 되는데
아래의 그림처럼 표현이 된다.

우선 데모를 2기 ( 혹은 2기 ) 를 편성 하게 되는데 이 데모 장비가 DEV, 즉 개발 장비로 구성이 될 것이다.
여기에 필요한 모든 테스트를 위한 프로그램과 개발이 필요한 장비들의 베이스가 되는데
모든 서비스의 데모 검증이 된다면,
STG 로 필요한 성능을 최소화 하여 연동을 대비한 구축을 시작한다.
이때 서비스의 구축 기준에 따라 Domain을 구성한다면 실제와 동일한 서비스 테스트도 가능하고 이 서비스의 도메인을 교체 하는식으로 STG가 상용 서비스로 변환이 될 수도 있다.
서비스의 성질에 따라 달라지므로 좋은 선택을 하자
데모 장비의 구성의 중요성을 길게 설명 했으니 이제 데모 장비의 구성을 시작하자.
데모 장비는 개발 장비로 활용이 가능하고, 실제 서버의 구성을 테스트할 수 있는 가장 좋은 장소이므로,
가능한 요구 사항과 모든 내역들을 다 포함시키는 것이 좋다.
물론 물리적으로 불가능한 부분은 구성이 불가능하므로 다른 방법을 강구하거나 단위 테스트 등으로 제한을 하자.
서버의 구성은 여러가지 측면을 강구 해야하지만 보안 적인 측면을 대비한 최고가 아닌 최적성능이 가장 좋다고 본다. 그 이유는 실제 구성에서 최고의 성능이 모든 서비스에 바탕이 된다 해도, 각 소프트웨어나 처리에 있어서 발란스를 맞추는 일이 더 중요 하기 때문이다.
이러한 부분을 미리 데모 단계에서 찾아내면 좋을 것이다.
우선 데모기는 최소 1기 구성 혹은 2기이상의 구성으로 되겠지만 필요한 기능은 다 있어야 한다.
WEB, WAS, DB 그리고 각종 필요 프로그램들이 그 대상이 될 것이고 보안 및 서비스의 제어와 배포등을 볼때 상당히 많은 구성이 집중될 것이다.
우선 서버의 용량을 다시 짚어 보자면 OS 와 개발 도구들, 배포를 위한 소프트웨어들 그리고 저장공간들을 전부 넣어야 한다. 하지만 모든 것들이 반드시 실용량과 동일하게 들어가지는 않을것이다.
그렇다면 우선적인 기본 환경은 다음과 같을 것이다.

필요한 서비스를 위해 필수요소를 구성한다. 물론 위의 구성에서 소프트웨어 선정에 따라 필요 소프트웨어등을 선택한다. ( 가능하면 동일 소프트웨어 및 복잡한 구성은 지양한다. )

이런 서비스 들은 위 그림의 예시 처럼 영역의 분할과 처리의 흐름을 고려해 구조를 미리 선정한다.

서버의 내부에 필요한 서비스등은 실제 서버에 들어갈 프로그램들을 정확히 나열하고 빠져야 할 소프트웨어와 추가하여야 할 프로그램들을 반드시 구성하고 각 서비스 별로 메모리, 디스크용량을 대비해서 구성한다.
또한 이를 접속하거나 서비스 구성 여부를 확인하기 위해 방화벽의 구축 및 서비스의 확장성 및 유지 보수를 위해 도메인을 각 서버별로 구성한다. ( L4의 구성이 있을경우 서버에는 도메인이 서버 도메인과 L4도메인 두개가 형성 될 것이다. )
각 서버의 운영 및 배포를 위한 모니터링과 배포용 소프트웨어도 구성하여야 하고 확장을 위한 각 서버별 경로와 인스턴스 이름, 그리고 포트등은 전부 겹치지 않게 구성한다.
이때 각 서비스의 룰을 기반으로 구성하는데 이런 룰은 아래의 표를 기반등을 참조하여
추후 확장시 유연성과 충돌을 예상하는게 좋다.




서버의 구성을 위해 기본적인 논리적인 구성이 구성되었으면 실제적인 데모장비 혹은 개발 장비를 구성해보자
OS 는 Linux ( CentOS ), 소프트웨어는 Apache HTTPD, Apache Tomcat, My-SQL 유틸리티는 개발환경이 JAVA 라는 가정하에 Oracle JDK 를 사용할 계획이다.
OS 의 기본 구성을 다음과 같이 구성하고, Linux 의 튜닝은 따로 설정하지 않은 상태에서 1개 서비스에 2개의 테넌트를 이중화를 대비하여 구성해보자
설치와 설계에대한 개념이 생겼다면 각 부분 별로 경로별 설계를 하자
OS 를 설치 할 시 최소한의 구성 요소는 다음과 같다.

용량과 경로등은 상황에 따라 달라지겠지만 확장을 고려해 파티션을 구성한다.
서비스와 서버 사용을 위한 유저 계정을 생성한다.
이때 UserName, Group, UID, GID 는 모든 서버 동일하게 구성하여야 추후 NAS 등 공유된 스토리지를 사용할때 권한문제가 생기지 않는다.

계정의 bash_profile 에 추가할 설정등을 기록해두도록 한다.
각 프로그램에 대한 경로와 이름정책등을 미리 정의해서 추후에 경로의 충돌이 생기지 않도록 한다.

위의 서비스 1은 app 과 서비스 2는 api 를 구성한다 정의 할때의 구성이다.
필요에 따라 추가 및 재구성을 하면 된다.
DB 및 기타 공통 Utillity, Log의 백업 및 반복 작업을 하게될 Scripts는 한곳에 경로를 정의하여 누락되는 경우를 배재한다.

기타 서버의 기본 보안 정책과 외부로의 연동을 위한 Domain 혹은 방화벽 정책또한 추가한다.
( 방화벽이 있는 시스템을 구성할 수 없는 대부분의 경우 아마 공유기 겠지만 공유기의 PAT(NAT) 설정으로도 충분한 구성이 된다. )

Commenti