3.3. 도메인 클러스터 모드 사용


도메인 모드는 서버의 구성을 중앙에서 관리하고 게시하는 방법입니다.

표준 모드에서 클러스터를 실행하면 클러스터 크기가 증가함에 따라 빠르게 증가할 수 있습니다. 구성을 변경해야 할 때마다 클러스터의 각 노드에서 수행합니다. 도메인 모드는 구성을 저장하고 게시할 중앙 위치를 제공하여 이 문제를 해결합니다. 설정하는 것은 매우 어려울 수 있지만 결국 가치가 있습니다. 이 기능은 Red Hat Single Sign-On이 파생한 JBoss EAP Application Server에 내장되어 있습니다.

참고

이 가이드에서는 도메인 모드의 기본 사항을 설명합니다. 클러스터에서 도메인 모드를 설정하는 방법에 대한 자세한 단계는 JBoss EAP 구성 가이드를 통해 가져와야 합니다.

다음은 도메인 모드에서 실행하는 몇 가지 기본 개념입니다.

도메인 컨트롤러
도메인 컨트롤러는 클러스터의 각 노드에 대한 일반 구성을 저장, 관리 및 게시하는 프로세스입니다. 이 프로세스는 클러스터의 노드를 구성하는 중심 지점입니다.
호스트 컨트롤러
호스트 컨트롤러는 특정 시스템에서 서버 인스턴스를 관리합니다. 하나 이상의 서버 인스턴스를 실행하도록 구성합니다. 도메인 컨트롤러는 각 시스템의 호스트 컨트롤러와 상호 작용하여 클러스터를 관리할 수도 있습니다. 실행 중인 프로세스 수를 줄이기 위해 도메인 컨트롤러는 실행되는 시스템에서 호스트 컨트롤러 역할을 합니다.
도메인 프로필
도메인 프로필은 서버가 부팅하기 위해 사용할 수 있는 이름 지정된 구성 집합입니다. 도메인 컨트롤러는 다른 서버에서 사용하는 여러 도메인 프로필을 정의할 수 있습니다.
서버 그룹
서버 그룹은 서버의 컬렉션입니다. 관리되고 하나로 구성됩니다. 서버 그룹과 해당 그룹의 모든 서비스에 도메인 프로필을 해당 구성으로 할당할 수 있습니다.

도메인 모드에서 도메인 컨트롤러가 마스터 노드에서 시작됩니다. 클러스터의 구성은 도메인 컨트롤러에 있습니다. 다음으로 호스트 컨트롤러가 클러스터의 각 시스템에서 시작됩니다. 각 호스트 컨트롤러 배포 구성은 해당 시스템에서 시작되는 Red Hat Single Sign-On 서버 인스턴스 수를 지정합니다. 호스트 컨트롤러가 부팅되면 구성된 만큼의 Red Hat Single Sign-On 서버 인스턴스가 시작됩니다. 이러한 서버 인스턴스는 도메인 컨트롤러에서 구성을 가져옵니다.

참고

Microsoft Azure와 같은 일부 환경에서는 도메인 모드를 적용할 수 없습니다. JBoss EAP 설명서를 참조하십시오.

3.3.1. 도메인 구성

이 가이드의 다른 여러 장에서는 데이터베이스, HTTP 네트워크 연결, 캐시 및 기타 인프라와 관련된 다양한 측면을 구성하는 방법을 안내합니다. 독립 실행형 모드는 standalone.xml 파일을 사용하여 이러한 항목을 구성하지만 도메인 모드는 …​/domain/configuration/domain.xml 구성 파일을 사용합니다. 여기에서 Red Hat Single Sign-On 서버의 도메인 프로필 및 서버 그룹이 정의됩니다.

domain.xml

domain file

주의

도메인 컨트롤러가 실행 중인 동안 이 파일을 변경한 경우 적용되지 않으며 서버에서 덮어쓸 수도 있습니다. 대신 명령줄 스크립팅 또는 JBoss EAP의 웹 콘솔을 사용합니다. 자세한 내용은 JBoss EAP 구성 가이드를 참조하십시오.

domain.xml 파일의 일부 측면을 살펴보겠습니다. auth-server-standaloneauth-server-clustered 프로필 XML 블록은 많은 구성 결정을 내립니다. 여기서는 네트워크 연결, 캐시 및 데이터베이스 연결과 같은 항목을 구성할 수 있습니다.

auth-server 프로필

    <profiles>
        <profile name="auth-server-standalone">
            ...
        </profile>
        <profile name="auth-server-clustered">
            ...
        </profile>
Copy to Clipboard

auth-server-standalone 프로필은 클러스터되지 않은 설정입니다. auth-server-clustered 프로필은 클러스터형 설정입니다.

아래로 스크롤하여 다양한 socket-binding-groups 이 정의된 것을 확인할 수 있습니다.

socket-binding-groups

    <socket-binding-groups>
        <socket-binding-group name="standard-sockets" default-interface="public">
           ...
        </socket-binding-group>
        <socket-binding-group name="ha-sockets" default-interface="public">
           ...
        </socket-binding-group>
        <!-- load-balancer-sockets should be removed in production systems and replaced with a better software or hardware based one -->
        <socket-binding-group name="load-balancer-sockets" default-interface="public">
           ...
        </socket-binding-group>
    </socket-binding-groups>
Copy to Clipboard

이 구성은 각 Red Hat Single Sign-On 서버 인스턴스에서 열린 다양한 커넥터의 기본 포트 매핑을 정의합니다. ${…​} 이 포함된 모든 값은 -D 스위치(예:)를 사용하여 명령줄에서 재정의할 수 있는 값입니다.

$ domain.sh -Djboss.http.port=80
Copy to Clipboard

Red Hat Single Sign-On의 서버 그룹 정의는 서버 그룹 XML 블록에 있습니다. 호스트 컨트롤러가 인스턴스를 부팅할 때 사용되는 도메인 프로필(기본값)과 Java VM의 기본 부팅 인수를 지정합니다. 또한 socket-binding-group 을 서버 그룹에 바인딩합니다.

서버 그룹

    <server-groups>
        <!-- load-balancer-group should be removed in production systems and replaced with a better software or hardware based one -->
        <server-group name="load-balancer-group" profile="load-balancer">
            <jvm name="default">
                <heap size="64m" max-size="512m"/>
            </jvm>
            <socket-binding-group ref="load-balancer-sockets"/>
        </server-group>
        <server-group name="auth-server-group" profile="auth-server-clustered">
            <jvm name="default">
                <heap size="64m" max-size="512m"/>
            </jvm>
            <socket-binding-group ref="ha-sockets"/>
        </server-group>
    </server-groups>
Copy to Clipboard

3.3.2. 호스트 컨트롤러 구성

Red Hat Single Sign-On에는 …​/domain/configuration/ 디렉터리에 있는 호스트 컨트롤러 구성 파일과 host-master.xmlhost-slave.xml 이 함께 제공됩니다. host-master.xml 은 도메인 컨트롤러, 로드 밸런서 및 하나의 Red Hat Single Sign-On 서버 인스턴스를 부팅하도록 구성됩니다. host-slave.xml 은 도메인 컨트롤러와 통신하고 하나의 Red Hat Single Sign-On 서버 인스턴스를 부팅하도록 구성됩니다.

참고

로드 밸런서는 필수 서비스가 아닙니다. 개발 시스템에서 드라이브 클러스터링을 쉽게 테스트할 수 있도록 합니다. 프로덕션에서 사용할 수 있는 동안 사용하려는 다른 하드웨어 또는 소프트웨어 기반 로드 밸런서가 있는 경우 프로덕션에서 사용할 수 있는 옵션이 있습니다.

호스트 컨트롤러 구성

host files

로드 밸런서 서버 인스턴스를 비활성화하려면 host-master.xml 을 편집하고 "load-balancer" 항목을 주석 처리하거나 제거합니다.

    <servers>
        <!-- remove or comment out next line -->
        <server name="load-balancer" group="loadbalancer-group"/>
        ...
    </servers>
Copy to Clipboard

이 파일에 대해 고려해야 할 또 다른 흥미로운 사항은 인증 서버 인스턴스 선언입니다. port-offset 설정이 있습니다. domain.xml socket-binding-group 또는 서버 그룹에 정의된 모든 네트워크 포트에는 port-offset 값이 추가됩니다. 이 샘플 도메인 설정의 경우 로드 밸런서 서버에서 여는 포트가 시작된 인증 서버 인스턴스와 충돌하지 않도록 이 작업을 수행합니다.

    <servers>
        ...
        <server name="server-one" group="auth-server-group" auto-start="true">
             <socket-bindings port-offset="150"/>
        </server>
    </servers>
Copy to Clipboard

3.3.3. 서버 인스턴스 작업 디렉터리

호스트 파일에 정의된 각 Red Hat Single Sign-On 서버 인스턴스는 …​/domain/servers/{SERVER NAME} 아래에 작업 디렉터리를 생성합니다. 추가 구성을 배치할 수 있으며, 서버 인스턴스에 필요하거나 생성하는 임시, 로그 또는 데이터 파일도 배치할 수 있습니다. 이러한 아키텍처의 구조는 다른 JBoss EAP 부팅 서버와 유사합니다.

작업 디렉터리

domain server dir

3.3.4. 도메인 클러스터 모드로 부팅

도메인 모드에서 서버를 실행하는 경우 운영 체제에 따라 서버를 부팅하기 위해 를 실행해야 하는 특정 스크립트가 있습니다. 이 스크립트는 서버 배포의 bin/ 디렉터리에 있습니다.

도메인 부팅 스크립트

domain boot files

서버를 부팅하려면 다음을 수행합니다.

Linux/Unix

$ .../bin/domain.sh --host-config=host-master.xml
Copy to Clipboard

Windows

> ...\bin\domain.bat --host-config=host-master.xml
Copy to Clipboard

부팅 스크립트를 실행할 때 --host-config 스위치를 통해 사용할 호스트 제어 구성 파일을 전달해야 합니다.

주의

Java SE 17을 사용하여 도메인 모드에서 Red Hat Single Sign-On을 실행하려면 번들 스크립트 enable-keycloak-se17-domain.cli 를 실행하여 설정을 수정해야 합니다.

Linux/Unix

$ ./bin/jboss-cli.sh --file=docs/examples/enable-keycloak-se17-domain.cli
Copy to Clipboard

Windows

> .\bin\jboss-cli.bat --file=docs\examples\enable-keycloak-se17-domain.cli
Copy to Clipboard

3.3.5. 샘플 클러스터 도메인 테스트

샘플 domain.xml 구성을 사용하여 드라이브 클러스터링을 테스트할 수 있습니다. 이 샘플 도메인은 하나의 머신에서 실행되고 부팅하기 위한 것입니다.

  • 도메인 컨트롤러
  • HTTP 로드 밸런서
  • Red Hat Single Sign-On 서버 인스턴스 2개

절차

  1. domain.sh 스크립트를 두 번 실행하여 별도의 호스트 컨트롤러를 두 번 시작합니다.

    첫 번째는 도메인 컨트롤러, HTTP 로드 밸런서 및 하나의 Red Hat Single Sign-On 인증 서버 인스턴스를 시작하는 마스터 호스트 컨트롤러입니다. 두 번째는 인증 서버 인스턴스만 시작하는 슬레이브 호스트 컨트롤러입니다.

  2. 도메인 컨트롤러와 안전하게 통신할 수 있도록 슬레이브 호스트 컨트롤러를 구성합니다. 다음 단계를 수행합니다.

    이러한 단계를 생략하면 슬레이브 호스트는 도메인 컨트롤러에서 중앙 집중식 구성을 가져올 수 없습니다.

    1. 서버 admin 사용자와 마스터와 슬레이브 간에 공유되는 시크릿을 만들어 보안 연결을 설정합니다.

      …​/bin/add-user.sh 스크립트를 실행합니다.

    2. 스크립트에서 추가할 사용자 유형에 대해 묻는 경우 Management User 를 선택합니다.

      이 옵션을 사용하면 …​/domain/configuration/host-slave.xml 파일에 잘라내어 붙여넣는 시크릿이 생성됩니다.

      앱 서버 관리자 추가

      $ add-user.sh
       What type of user do you wish to add?
        a) Management User (mgmt-users.properties)
        b) Application User (application-users.properties)
       (a): a
       Enter the details of the new user to add.
       Using realm 'ManagementRealm' as discovered from the existing property files.
       Username : admin
       Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
        - The password should not be one of the following restricted values {root, admin, administrator}
        - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
        - The password should be different from the username
       Password :
       Re-enter Password :
       What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
       About to add user 'admin' for realm 'ManagementRealm'
       Is this correct yes/no? yes
       Added user 'admin' to file '/.../standalone/configuration/mgmt-users.properties'
       Added user 'admin' to file '/.../domain/configuration/mgmt-users.properties'
       Added user 'admin' with groups to file '/.../standalone/configuration/mgmt-groups.properties'
       Added user 'admin' with groups to file '/.../domain/configuration/mgmt-groups.properties'
       Is this new user going to be used for one AS process to connect to another AS process?
       e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
       yes/no? yes
       To represent the user add the following to the server-identities definition <secret value="bWdtdDEyMyE=" />
      Copy to Clipboard

      참고

      add-user.sh 스크립트는 사용자를 Red Hat Single Sign-On 서버에 추가하는 것이 아니라 기본 JBoss Enterprise Application Platform에 추가합니다. 이 스크립트에서 사용되고 생성된 자격 증명은 데모 목적으로만 사용됩니다. 시스템에서 생성된 항목을 사용하십시오.

  3. 다음과 같이 시크릿 값을 …​/domain/configuration/host-slave.xml 파일에 잘라내어 붙여넣습니다.

         <management>
             <security-realms>
                 <security-realm name="ManagementRealm">
                     <server-identities>
                         <secret value="bWdtdDEyMyE="/>
                     </server-identities>
    Copy to Clipboard
  4. 생성된 사용자의 사용자 이름을 …​/domain/configuration/host-slave.xml 파일에 추가합니다.

         <remote security-realm="ManagementRealm" username="admin">
    Copy to Clipboard
  5. 부팅 스크립트를 두 번 실행하여 한 개발 시스템에서 두 개의 노드 클러스터를 시뮬레이션합니다.

    마스터 부팅

    $ domain.sh --host-config=host-master.xml
    Copy to Clipboard

    부팅 슬레이브

    $ domain.sh --host-config=host-slave.xml
    Copy to Clipboard

  6. 브라우저를 열고 http://localhost:8080/auth 로 이동하여 사용해 보십시오.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat