내용 목차
본 장에서는 도메인의 개념과 구성 요소에 대해 설명한다.
도메인(Domain)은 관련 있는 서버들의 그룹으로 기본 관리 단위이다. 하나의 도메인은 비즈니스에 따라 여러 개의 서버와 클러스터로 구성된다.
각 도메인마다 서비스의 종류, 서버의 위치, 보안 정책들이 모두 다를 수 있다. 이에 따라 각 도메인은 하나의 설정 파일을 가지고, 여러 도메인 사이에 설정을 공유할 수 없다. 즉, 하나의 도메인 내에서만 보안 설정, 필요한 애플리케이션 및 리소스 등이 공유되는 점을 고려하여 도메인을 구성해야 한다.
도메인을 구성할 때 고려해야 하는 사항은 다음과 같다.
해당 도메인에 속한 서버들의 역할
비즈니스 관계가 높은 업무들을 하나의 도메인으로 구성한다.
해당 도메인에 속한 서버들의 물리적 위치
안정적인 서비스를 위해 같은 업무를 수행하는 서버의 물리적 위치를 적절하게 분배한다.
해당 도메인에 속한 서버들에게 가해지는 부하량
수행하는 업무의 부하량에 따라 적당량의 서버를 구성한다.
하나의 머신에는 하나의 JEUS(JEUS_HOME)가 필요하고, 하나의 JEUS(JEUS_HOME)에는 한 개 이상의 도메인이 존재할 수 있다. 또한 하나의 도메인은 한 개의 JEUS(JEUS_HOME) 내에 구성될 수도 있고, 여러 개의 머신 즉 여러 개의 JEUS(JEUS_HOME)에 걸쳐 구성될 수도 있다.
한 개의 머신에는 일반적으로 한 개의 JEUS를 설치하기 때문에 JEUS_HOME도 한 개이다. 그러나 하나의 머신에 여러 개의 JEUS를 설치하여 여러 개의 JEUS_HOME이 존재하는 것도 가능하다.
예를 들어 인사 관리 업무 도메인과 주문 관리 도메인을 각 업무의 특성에 따라 머신 3대에 구성할 수 있다. 인사 관리 업무의 경우에는 하나의 머신에서만 서비스하도록 Machine1에 Domain1를 구성하고, 주문 관리 업무의 경우에는 고객의 주문이 장비 결함 등으로 인해 중단되는 경우를 방지하기 위해 3대의 머신에 걸쳐 Domain2을 구성할 수 있다.
다음은 JEUS 도메인의 관계를 나타낸 그림이다.
클라우드 환경에서는 JEUS와 도메인의 관계는 다음 그림과 같다. 클라우드 환경에서는 컨테이너의 JEUS_HOME에 하나의 도메인이 유일하게 존재해야 한다.
도메인은 Domain Administration Server(DAS), Managed Server(MS), Cluster로 구성되어 있다.
Domain Administration Server(DAS)
도메인 내에는 Domain Administration Server(이하 DAS)라는 특별한 하나의 서버가 항상 존재한다. DAS는 도메인 내 서버들 간의 설정과 도메인 내의 모든 애플리케이션 및 리소스를 중앙에서 관리하고, 서버들을 제어 및 모니터링하는 관리 툴(WebAdmin, jeusadmin)과 통신한다.
또한 SSH를 통해 다른 머신에 JEUS를 설치할 수 있고, 그 머신들의 서버를 시작하거나 종료할 수 있다.
실제 서비스를 담당하는 Managed Server(이하 MS)가 도메인 내에는 1개 이상 존재한다. 같은 서비스를 하는 여러 MS를 하나의 클러스터로 구성하거나 서비스별 단독 MS로 도메인을 구성할 수 있다.
도메인 내에는 0개 이상의 클러스터들과 1개 이상의 클러스터에 포함되지 않는 서버들이 존재한다.
클러스터는 확장성과 안정성을 위해 동일한 서비스를 수행하는 서버들의 집합을 의미한다. 서버가 클러스터의 일원이 되면 같은 애플리케이션이 deploy되고 같은 리소스를 사용하게 된다. 클러스터에 대한 자세한 내용은 “제5장 JEUS 클러스터링”을 참고한다.
Machine1에는 DAS가 위치한다. DAS는 WebAdmin 및 jeusadmin과 통신하여 사용자의 명령을 받아 처리한다. 또한 SSH를 통해 Machine2와 Machine3에 JEUS를 설치할 수 있고, 그 머신 내의 서버를 시작 및 종료할 수 있다.
Machine2와 Machine3에는 각각 MS가 2개씩 존재한다. Managed Server2와 Managed Server4는 Cluster1이라는 하나의 클러스터를 구성하여 애플리케이션과 리소스를 공유하고 같은 서비스를 수행한다. Cluster1에 포함되지 않는 단독 서버인 Managed Server1과 Managed Server3은 각각 애플리케이션과 리소스를 갖는다.
가장 작은 도메인은 하나의 서버로 구성된 도메인으로 하나의 서버가 DAS와 MS 역할을 하게 된다. 이는 개발 단계에서의 가벼운 테스트를 위한 도메인으로만 사용하고, 운영 환경에서는 관리와 서비스를 분리하여 DAS는 MS를 관리하는 목적으로만 사용하기를 권장한다.
클라우드 환경에서 도메인은 클라우드 서버(Cloud Server) 하나로 구성된다. 클라우드 환경에서는 DAS-MS 서버 구조가 아닌 한 도메인에 하나의 클라우드 서버가 동작한다.
클라우드 서버는 DAS의 기능을 대부분 포함하지만 다른 서버를 제어하지는 않는다. 클라우드 서버 운영모드의 자세한 내용은 “JEUS Server 안내서”의 “1.1. 서버 운영모드”를 참고한다.
DAS는 모든 도메인에 반드시 하나씩 존재해야 하는 서버로 MS들을 중앙에서 관리 및 모니터링한다.
다음은 DAS의 주요 기능이다.
도메인 전체의 설정을 관리한다.
도메인 내의 모든 MS가 다른 머신에 존재하더라도 동일한 설정으로 구동할 수 있다.
DAS가 먼저 구동되어야 MS가 DAS로부터 설정을 받아 구동될 수 있다. MS가 구동될 때 DAS의 부재로 동기화되지 않은 설정은 DAS가 구동될 때 동기화된다.
변경된 설정 사항은 도메인 내의 모든 MS에 반영된다.
DAS는 변경된 설정을 검증하여 다른 서버들로 분배하여 도메인 내의 설정을 동기화한다. 그렇기 때문에 설정 변경은 반드시 DAS를 통해서 진행되어야 하고, DAS가 운영 중일 때만 가능하다.
DAS의 설정 관리에 대한 자세한 설명은 “제3장 도메인 설정변경”을 참고한다.
도메인 전체의 애플리케이션을 관리한다.
도메인 내의 모든 애플리케이션의 상태를 관리한다.
DAS에서는 도메인에 존재하는 모든 애플리케이션의 상태를 관리하고, 도메인에서 애플리케이션의 상태가 하나의 상태로 유지될 수 있도록 한다. MS의 애플리케이션 상태가 DAS에서 관리하고 있는 애플리케이션의 상태와 동일하게 유지될 수 있도록 한다.
도메인 내의 모든 애플리케이션의 파일을 관리한다.
DAS에서는 MS가 구동될 때와 MS에서 애플리케이션이 deploy되는 시점에 파일을 동기화한다. MS가 구동될 때 DAS의 부재로 애플리케이션 파일을 동기화하지 못했다면 DAS가 구동될 때 MS에서 deploy에 실패한 애플리케이션에 대해 다시 동기화한다.
도메인에 속한 서버나 클러스터에 애플리케이션을 deploy하는 작업을 관리한다.
도메인에서 애플리케이션을 서비스하기 위해서는 Install Application 명령어를 통해 서비스할 애플리케이션을 DAS에 설치하거나, DAS에서 알 수 있는 애플리케이션 저장소(repoeitory)에 위치해야 한다.
MS에서 애플리케이션을 서비스하기 위해서는 DAS에 서비스 대상을 주고 애플리케이션 deploy 명령어를 실행해야 한다. deploy 명령어뿐만 아니라 애플리케이션 조회나 제어에 관련된 모든 명령어는 DAS를 통해서 수행한다. 만약 DAS가 종료된 상태라면 도메인에서 서비스되는 애플리케이션에 대해 어떤 명령어도 실행할 수 없다.
MS가 클러스터에 속해 있다면 클러스터 타켓(Cluster Target)으로만 deploy될 수 있다. DAS에서는 클러스터에 서버가 추가된 경우 해당 서버에서도 이 애플리케이션을 서비스될 수 있도록 deploy의 성공을 보장한다.
DAS에서의 애플리케이션 관리에 대한 자세한 설명은 “JEUS Applications & Deployment 안내서”의 “1.1. 애플리케이션 관리”를 참고한다.
도메인 전체를 모니터링 및 제어할 수 있다.
WebAdmin과 jeusadmin을 통해 도메인 내의 모든 서버, 서비스, 애플리케이션 및 리소스를 한 번에 모니터링 및 제어할 수 있다.
MS에는 필요한 리소스가 위치하고, 애플리케이션들이 deploy된다.
MS는 DAS에 의해 다음과 같이 동작한다.
설정 및 애플리케이션 동기화
도메인의 전체 설정과 애플리케이션은 DAS가 관리하기 때문에 DAS로 연결하여 설정 정보와 해당 MS에 deploy되어야 할 애플리케이션을 전달받는다. 이때 성능을 위하여 DAS로 받아온 설정 정보와 애플리케이션은 read-only 상태로 로컬에 cache된다. DAS와 연결된 시점에 로컬의 Cache와 일치하지 않는 파일만을 받아와 Cache를 업데이트하여 DAS와 동기화한다. 즉, MS에 존재하는 설정이나 애플리케이션을 변경해도 반영되지 않고, DAS를 통해 변경되어야 모든 서버에 반영된다.
설정의 동기화
설정의 동기화는 MS가 구동될 때 MS가 DAS와 연결이 끊어졌다가 재연결된 경우 사용자가 툴을 통해서 명시적으로 도메인 설정을 변경했을 때 일어난다.
애플리케이션의 동기화
애플리케이션의 동기화는 파일뿐 아니라 애플리케이션의 상태도 함께 전달되기 때문에 DAS의 애플리케이션 상태가 MS에서도 유지된다. 애플리케이션의 동기화는 MS가 구동될 때 DAS와 연결이 끊어졌다가 재연결된 경우 일어난다. 애플리케이션 동기화와 관련된 자세한 내용은 “JEUS Applications & Deployment 안내서”의 “1.2.3. 애플리케이션 동기화”를 참고한다.
클러스터 구성
부하 분산과 장애 극복을 위해 여러 MS를 묶어 하나의 클러스터를 구성할 수 있다. 클러스터 내의 모든 서버에 같은 리소스와 애플리케이션이 위치하는 것을 권장한다. 클러스터에 대한 자세한 내용은 “제5장 JEUS 클러스터링”을 참고한다.
클라우드 서버(Cloud Server)는 클라우드 환경에서 사용하는 서버이다. 한 컨테이너에 하나의 도메인이 존재하고, 하나의 도메인에는 하나의 서버인 클라우드 서버가 존재한다. 클라우드 서버에 대한 자세한 내용은 “JEUS Server 안내서”의 “1.1. 서버 운영모드”를 참고한다.
클라우드 서버는 하나의 서버로 모든 동작을 보장해주기 때문에 DAS와 MS의 기능을 포함하고 있다.
도메인 설정 및 애플리케이션을 관리
도메인에 클라우드 서버가 하나만 존재하기 때문에 서버 하나에 대한 설정과 애플리케이션을 관리하고 동기화는 하지 않는다.
클러스터 구성
클라우드 서버 운영모드에서는 서버 클러스터링 기능을 지원하지 않는다. 특정 클라우드 서버간 그룹핑하는 경우는 세션 클러스터링은 지원한다. 클라우드 서버 그룹핑을 설정하는 자세한 방법은 “JEUS 설치 및 시작하기”의 “Appendix D. Cloud 환경설정”을 참고한다.
도메인을 운영하는 방법은 다음 중 한 가지로 설정할 수 있다. 모드 설정은 WebAdmin이나 jeusadmin을 통해 설정변경이 지원되지 않는다. 따라서 도메인 설정 파일(domain.xm)을 직접 수정해야 한다.
운영모드(Production mode)
실제 운영환경에 적합한 모드로, 웹 애플리케이션의 auto-reload나 hot-swap과 같은 기능은 제공하지 않는다. domain.xml의 production-mode 항목을 true로 설정한다.
개발모드(Development mode)
domain.xml의 production-mode 항목을 false로 설정하면 개발모드로 동작한다.
1. 애플리케이션 변경이 빈번하게 일어날 수 있는 개발단계에서는 개발모드로, 실 운영계에서는 운영모드로 설정해서 사용할 것을 권장한다.
2. 설정을 변경하고 난 뒤에는 도메인에 운영 중인 서버를 모두 내리고 재기동해 주어야 한다.
도메인을 구성할 때 다음과 같은 제약 사항이 존재한다.
하나의 도메인에 반드시 하나의 DAS가 존재해야 한다.
하나의 WebAdmin 및 jeusadmin은 자신이 연결한 DAS를 포함한 도메인 영역으로 한정된다. 다른 도메인을 관리하기 위해서는 다른 URL로 WebAdmin 및 jeusadmin에 접속해야 한다.
도메인 사이에는 설정 정보와 리소스를 공유할 수 없다.
도메인 내의 모든 서버는 같은 버전을 사용해야 한다.
도메인 내의 모든 서버와 클러스터의 이름은 각각 유일해야 한다.
설치한 하나의 JEUS 내에 모든 도메인 이름은 유일해야 한다.
클라우드 환경에서는 각 컨테이너에 도메인이 유일해야 한다.