단일 PostgreSQL 데이터베이스 및 Redis 노드를 공유하는 여러 RaaS 노드를 구성할 수 있습니다. 이 방법을 클러스터링이라고 하는 경우도 있습니다.

이 지침은 단일 노드 설치 시나리오를 사용하여 기본 RaaS 노드에 PostgreSQL 및 Redis 서비스를 설치하는 방법을 보여줍니다.

참고: 일부 고가용성 요구 사항에는 컨설팅 서비스가 필요할 수 있습니다.

준비 단계

여러 RaaS 노드를 설정하려면 모든 RaaS 노드가 다음을 충족해야 합니다.

  • 동일한 PostgreSQL 데이터베이스에 액세스
  • 동일한 키 공간 공유
  • 동일한 /etc/raas/pki/.raas.key/etc/raas/raas.secconf 파일 사용

여러 RaaS 노드를 구성하기 전에 단계에 따라 단일 노드 설치 시나리오를 사용하여 두 개의 독립형 RaaS 노드를 설치합니다. 이 시나리오가 끝나면 두 노드 모두 독립형 모드에서 SaltStack Config를 실행하게 됩니다. 즉, 각 노드에 PostgreSQL 및 Redis의 자체 로컬 버전이 있어야 합니다.

기본 RaaS 노드 구성

이 섹션에서는 첫 번째 RaaS 노드가 두 번째 RaaS 노드와 작동하도록 구성하는 방법을 설명합니다.

첫 번째 RaaS 노드를 구성하려면:

  1. 단계에 따라 단일 노드 설치 시나리오를 사용하여 두 개의 독립형 RaaS 노드를 설치합니다. 이 시나리오가 끝나면 두 노드 모두 독립형 모드에서 SaltStack Config를 실행하게 됩니다. 즉, 각 노드에 PostgreSQL 및 Redis의 자체 로컬 버전이 있어야 합니다.
  2. 첫 번째 RaaS 노드에서 다음 명령을 사용하여 RaaS, Redis 및 PostgreSQL 서비스를 중지합니다.
    systemctl stop raas
    systemctl stop redis
    systemctl stop postgresql-12
    참고:

    다른 버전을 실행하는 경우 PostgreSQL을 중지하는 명령이 다를 수 있습니다.

  3. 첫 번째 RaaS 노드에서 다른 RaaS 노드의 원격 연결을 허용하도록 postgresqlpg_hba.conf 파일을 업데이트합니다. 원격 연결을 허용하려면 해당 파일의 끝에 다음 항목을 추가하고 예제 IP 주소를 두 번째 RaaS 노드의 IP 주소로 대체합니다.
    # Allow connection from RaaS 2
    host all all 127.31.4.137/32 trust
  4. 모든 인터페이스에 바인딩을 허용하도록 /etc/redis.conf 파일을 업데이트합니다. 기본적으로 바인딩은 localhost로 설정됩니다. 파일에 다음을 추가합니다.
    #bind 127.0.0.1
  5. 다음 명령을 사용하여 서비스를 시작하고 상태를 확인합니다.
    systemctl start postgresql-12
    systemctl status postgresql-12
    systemctl start redis
    systemctl status redis
    systemctl start raas
    systemctl status raas
  6. 첫 번째 RaaS 노드의 URL을 사용하여 SaltStack Config 사용자 인터페이스에 액세스하여 SaltStack Config가 첫 번째 노드에서 올바르게 작동하고 있는지 확인합니다.

사용자 인터페이스에 액세스할 수 있는지 확인한 후 다음 섹션으로 진행합니다.

두 번째 RaaS 노드 구성

이 섹션에서는 두 번째 RaaS 노드가 기본 RaaS 노드와 작동하도록 구성하는 방법을 설명합니다.

두 번째 RaaS 노드를 구성하려면:

  1. 두 번째 RaaS 노드에서 다음 명령을 사용하여 RaaS, Redis 및 PostgreSQL 서비스를 중지합니다.
    systemctl stop raas
    systemctl stop redis
    systemctl stop postgresql-12
  2. 두 번째 RaaS 노드에서 /etc/raas/raas 파일을 업데이트하여 첫 번째 RaaS 노드의 원격 Redis 및 PostgreSQL 서비스에 연결합니다. customer_id 구성은 두 노드에서 동일해야 합니다. 다음은 구성 예시입니다.
    customer_id: 43cab1f4-de60-4ab1-85b5-1d883c5c5d09
    sql:
      dialect: postgresql
      host: 172.31.8.237
      port: 5432
      driver: psycopg2
      ssl: True
    
    redis:
      url: redis://172.31.8.237:6379
  3. /etc/raas/pki/.raas.key/etc/raas/secconf를 첫 번째 노드에서 두 번째 노드로 복사합니다. 이 예제와 같이 액세스 및 사용 권한을 유지합니다.
    # ls -l /etc/raas/raas.secconf
    -rw-------. 1 raas raas 313 Jan 2117:21 /etc/raas/raas.secconf
    # ls -l /etc/raas/pki/.raas.key
    -rwx------. 1 raas raas 77 Jan 2117:17 /etc/raas/pki/.raas.key
  4. 다음 명령을 사용하여 RaaS 서비스를 시작하고 상태를 확인합니다.
    systemctl start raas
    systemctl status raas
  5. 두 번째 RaaS 노드의 URL을 사용하여 SaltStack Config 사용자 인터페이스에 액세스하여 SaltStack Config가 두 번째 노드에서 올바르게 작동하고 있는지 확인합니다.

두 번째 노드에서 사용자 인터페이스에 액세스할 수 있는지 확인한 후 다음 섹션으로 진행합니다.

구성 테스트

새 시스템 아키텍처가 제대로 작동하는지 테스트하려면:

  1. 구성을 테스트하려면 새 개체(예: 새 대상)를 생성합니다. 사용자 인터페이스를 새로 고칠 때 두 노드 모두에 변화가 있는지 확인합니다.
  2. 두 번째 RaaS 노드에서 다음 명령을 사용하여 Redis 및 PostgreSQL 서비스를 사용하지 않도록 설정합니다.
    systemctl disable redis
    systemctl disable postgresql-12

이제 2개의 RaaS 노드 인스턴스가 실행 중입니다. 문제 해결은 지원 연락처를 참조하십시오.