다중 테넌트 격리
Ultimate Multisite: Multi-Tenancy 1.2.0 버전에서는 주권 테넌트를 위해 개별 서브사이트 데이터베이스 및 파일 시스템 격리를 지원합니다. 이를 통해 테넌트 데이터를 분리하면서도 네트워크 수준의 프로비저닝, 청구 및 관리는 유지할 수 있습니다.
격리 전략
데이터 분리가 더 강력하게 필요하거나, 전용 파일 시스템 저장 공간 또는 별도의 호스트 경계가 필요한 고객에게는 주권 격리를 사용하세요.
각 주권 테넌트는 다음을 갖추어야 합니다.
- 호스트에서 승인된 전용 테넌트 데이터베이스 또는 데이터베이스 접두사 전략.
- 전용 테넌트 파일 시스템 루트.
- 사이트를 해당 데이터베이스, 루트 경로, 호스트 이름 및 격리 모델과 매핑하는 테넌트 레지스트리 항목.
- 테넌트가 라이브로 간주되기 전에 마이그레이션 검증 결과.
데이터베이스 호스트 바인딩
버전 1.2.0에서는 주권 설치에 대한 기본 동일 머신 호스트 바인딩 동작을 변경합니다. localhost와 같은 동일 머신 값은 Bedrock, FrankenPHP 및 컨테이너화된 WordPress 설치가 MySQL이 실제로 보는 호스트 문자열에 대해 권한을 부여하고 검증할 수 있도록 정규화됩니다.
주권 테넌트를 구성할 때:
- 데이터베이스 호스트를 테넌트 런타임에서 요구하는 값으로 설정합니다.
- 호스트가 로컬 연결을 예상하는 경우, 로컬 소켓 설치 시
localhost를 사용합니다. - 데이터베이스 서버가 해당 호스트에 권한을 부여하는 경우에만
127.0.0.1또는 서비스 호스트 이름을 사용합니다. - 호스트 바인딩을 변경한 후 마이그레이션 검증을 실행합니다.
검증 결과 권한 부여 실패가 보고되면, 테넌트 DB 사용자 권한 부여와 구성된 호스트 바인딩을 비교하세요. user@localhost에 부여된 사용자는 [email protected] 또는 user@%와 다릅니다.
파일 시스템 루트
테넌트 루트는 재시작이나 배포 시 안정적이어야 합니다. 임시 마운트 경로를 피하세요. Bedrock 스타일 설치의 경우, 테넌트 루트가 프로젝트 루트뿐만 아니라 테넌트 부트스트랩이 예상하는 WordPress 웹 루트를 가리키는지 확인해야 합니다.
프로비저닝 순서
새로운 주권(sovereign) 테넌트를 생성할 때는 다음 순서를 따르세요.
- 테넌트 레지스트리 항목 생성.
- 테넌트 데이터베이스 및 데이터베이스 사용자 생성.
- 테넌트 스키마 부트스트랩 실행.
- 테넌트 사용자 프로비저닝.
- 테넌트 파일 시스템 경로 구성.
- 마이그레이션 검증 실행.
- 검증 통과 후 라우팅 또는 DNS 전환.
이 순서는 데이터베이스 쓰기 작업, 사용자 및 파일 시스템이 준비되기 전에 부분적으로 격리된 테넌트에 트래픽이 유입되는 것을 방지합니다.
주권 고객 관리 흐름
Ultimate Multisite v2.13.0에서는 주권 모드가 활성화된 경우 고객 관리 작업을 메인 사이트에서 처리합니다. 테넌트는 여전히 격리된 WordPress 설치로 실행될 수 있지만, 네트 워크 청구, 멤버십 또는 공유 계정 데이터에 의존하는 고객 대면 작업은 테넌트 런타임 내에서 작업을 완료하려고 시도하기보다 고객을 메인 사이트로 다시 보내야 합니다.
메인 사이트 흐름이 적용되는 항목은 다음과 같습니다.
- 결제 및 플랜 변경.
- 계정 개요 및 고객 프로필 작업.
- 청구 주소 업데이트 및 결제 관리 화면.
- 인보이스 및 결제 내역 보기.
- 사이트 추가 또는 삭제와 같은 사이트 관리 작업.
- 템플릿 전환.
- 도메인 매핑 및 기본 도메인 변경.
고객이 소유 테넌트(sovereign tenant)에서 다음 작업 중 하나를 시작하면, Ultimate Multisite는 해당 메인 사이트 URL을 생성하고 안전한 경우 원본 테넌트를 반환 대상으로 유지합니다. 이렇게 하면 고객은 네트워크 기록에 대해 관리 작업을 완료한 후, 소유 데이터베이스에 청구 또는 멤버십 상태가 중복되지 않도록 테넌트 컨텍스트로 돌아갈 수 있습니다.
운영자(operators)를 위한 실질적인 규칙은 다음과 같습니다. 소유 네트워크를 위해 청구, 계정, 결제(checkout), 인보이스, 템플릿 및 도메인 관리 페이지는 메인 사이트에 계속 활성화되어 있어야 합니다. 테넌트 대시보드에서 해당 페이지로 링크를 걸 수는 있지만, 메인 사이트는 해당 작업의 진실된 출처(source of truth)로 남아야 합니다.