# Unity Licensing Server 관리

> Explore common administration tasks you can perform on the Unity Licensing Server.

Unity Licensing Server가 실행된 후 수행해야 할 일반적인 관리 작업은 다음과 같습니다.

## 서버 상태 확인##checking-the-status-of-your-server

Licensing Server v2.0부터는 [Licensing Server Dashboard](./server-admin-dash.md)를 사용하여 서버의 상태를 확인할 수 있습니다. 이 방법을 사용하려면, `admin`으로 대시보드에 로그인한 다음 **개요** 페이지에서 **서버 상태 보고서**를 확인합니다. **JSON 다운로드**를 선택하여 서버 상태 보고서를 파일로 열람할 수도 있습니다.

모든 버전의 Licensing Server에서 CLI를 사용하여 서버의 상태를 확인할 수도 있습니다. CLI를 사용하여 서버의 상태를 확인하려면 `status` 명령어를 실행합니다. 그러면 다음 상태 확인 결과가 표시됩니다.

| 상태 확인                       | 설명             |
| --------------------------- | -------------- |
| `HttpConfigHealthCheck`     | Kestrel 구성     |
| `ServerLicenseHealthCheck`  | 라이선스 및 위임 상태   |
| `LicensingHealthCheck`      | 라이선스 구성 및 서명 키 |
| `DatabaseHealthCheck`       | 데이터베이스 연결 상태   |
| `PluginInformationProvider` | 서버 플러그인        |

[확장 테스트 보고서](./server-setup-test.md#extended-test-report)에서도 이러한 상태 확인의 결과를 볼 수 있습니다.

다음 구문을 사용하여 `status` 커맨드를 실행합니다.

* **Linux**: `./Unity.Licensing.Server status`
* **Windows**: `.\Unity.Licensing.Server.exe status`

출력은 다음과 유사합니다.

```bash
Server Version: 2.0.0+e81737f
Healthy
HttpConfig: Healthy
HTTP config is healthy
  [OK] Kestrel: Found config section Kestrel
  [OK] Kestrel:Endpoints:HTTP:Url: Found valid config Kestrel:Endpoints:HTTP:Url: http://10.192.192.255:80
ServerLicense: Healthy
Server license and delegation are valid
  [OK] ServerLicense::Context::FirstPhysicalAddress: 48:2a:e3:87:3b:19
  [OK] ServerLicense::Context::Platform: Win32NT
  [OK] ServerLicense::Context::ProcessorCount: 12
  [OK] ServerLicense::Context::MachineName: LAPTOP-2Q28U8QB
  [OK] ServerLicense::ContextCount: Found 4 out of 4 context values
  [OK] ServerLicense::EntitlementGroup::test-licenseServer_3573567292644_1: ... has valid server entitlements
  [OK] ServerLicense::EntitlementGroupCount: Found 1 valid server license(s)
  [OK] ServerLicense::Delegation::test-licenseServer-delegation-20200925_145658.xml: Found valid server delegation: <absolute_path>
  [OK] ServerLicense::DelegationsCount: Found 1 valid server delegations
LicensingConfig: Healthy
Licensing configuration is healthy
  [OK] licensing:licenseSigningCertLoading: Successfully loaded license signing key
  [OK] SyntaxValidation: Configuration syntax is valid
  [WARNING] licensing:defaultToolset: The defaultToolset configuration is invalid or not set. Valid toolsets are: ...
  [OK] licensing: Found config section licensing
  [OK] LicenseAclConfigValidation: License access control list configuration is valid
Plugins: Healthy
Plugins
  [OK] PluginAssemblies: 0
  [OK] RegisteredPlugins: 0
Database: Healthy
Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] FloatingDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] HistoricalDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
```

## 서버 상태 모니터링##monitor-server-status

Licensing Server의 상태를 모니터링하는 방법에는 두 가지가 있습니다.

* **대시보드**: Licensing Server 2.0 버전부터는 [대시보드](./server-admin-dash.md)가 서버를 모니터링하는 기본 방법입니다. 관리자는 `admin` 자격 증명으로 로그인하여 **개요** 페이지에서 자세한 **서버 상태 보고서**를 볼 수 있습니다.
* **API**: 모든 Licensing Server 버전에서 API 액세스 방법을 선호하거나 필요로 하는 경우 `/v1/admin/status` API를 사용할 수도 있습니다. 이 엔드포인트를 사용하고 `admin` 그룹에서 API를 사용하려면 요청하는 IP 주소가 관리자 IP 허용 목록에 등록되어 있어야 합니다. 이 요구 사항은 스크립트 또는 자동화를 통해 `admin` API에 액세스하려는 컴퓨터의 IP 주소에도 적용되어야 합니다. 자세한 내용은 [고급 서버 구성](#advanced-server-configuration)의 `adminIpAllowlist` 키를 참조하십시오.

### Licensing Server 상태##server-statuses

Licensing Server에는 세 가지 상태가 있습니다.

* **Healthy**: 이 상태는 서버가 라이선스를 발급할 수 있고 모든 것이 올바르게 작동하고 있음을 나타냅니다.
* **Degraded**: 이 상태의 서버는 여전히 라이선스를 발급할 수 있지만 모니터링이 필요한 잠재적인 문제가 있음을 의미합니다. 이러한 문제는 아직 심각하지는 않지만 긴급한 문제가 될 수 있으므로 주의가 필요합니다. Degraded 상태를 유발하는 문제의 예로는 곧 만료되는 서버 라이선스를 들 수 있습니다.
* **Unhealthy**: 이 상태는 서버에서 라이선스를 발급할 수 없음을 나타냅니다. 근본적인 문제로 인해 기능을 복원하기 위한 즉각적인 조치가 필요합니다.

## 서버에서 라이선스 갱신##renew-licenses

구독 기간이 종료되어 구독을 갱신하기로 선택한 경우 Licensing Server에서 라이선스를 업데이트해야 합니다. 라이선스를 업데이트하려면 구독을 갱신한 후에 [라이선스 아카이브 파일 다운로드 및 임포트](./server-setup-lic.md) 절차를 반복하십시오.

Licensing Server가 1.10 이전 버전인 경우 이전 위임 파일도 수동으로 삭제해야 합니다. 자세한 내용은 [이 지원 문서](https://support.unity.com/hc/en-us/articles/5041642079636-What-s-the-License-Server-renewal-procedure-)를 참조하십시오.

> **Note:**
>
> 새 라이선스는 현재 구독 기간이 만료된 후에만 Unity ID를 통해 다운로드할 수 있습니다. 현재 구독 기간이 만료되면 서버에서 라이선스를 갱신하기 위한 1개월의 유예 기간이 주어집니다. 이 유예 기간이 끝나기 전에 라이선스를 갱신하지 않으면 라이선스 작동이 중지됩니다. 서비스 중단을 방지하려면 유예 기간 동안 라이선스를 다운로드하고 업데이트해야 합니다.

### 라이선스 갱신이 클라이언트 구성에 미치는 영향##impact-license-renewals

갱신된 구독에서 라이선스를 임포트할 때 [라이선스 업데이트가 클라이언트 구성에 미치는 영향](#impact-license-updates)과 동일한 규칙이 적용됩니다.

## 서버의 라이선스에 변경 사항 적용

Unity와 플로팅 라이선스(floating license) 구독에 대한 변경 사항(예: 시트 추가 또는 제거)을 협의한 경우 구독의 라이선스를 서버로 임포트하는 프로세스를 반복해야 합니다. [라이선스 아카이브 파일 다운로드 및 임포트](./server-setup-lic.md)의 프로세스를 따르십시오.

### 라이선스 업데이트가 클라이언트 구성에 미치는 영향##impact-license-updates

라이선스 업데이트는 기본 툴세트를 사용하는 클라이언트에 영향을 주지 않습니다.

툴세트를 지정하는 클라이언트의 경우:

* *1.10 이하 버전*의 서버에서는 툴세트 값이 서버 라이선스의 `EntitlementGroupId`와 일치해야 합니다. 즉, 서버 라이선스를 업데이트할 때 [클라이언트 구성](./client-config.md#supported-configuration-keys)에 따라 툴세트 값을 업데이트해야 합니다.

* *버전 1.11*부터는 라이선스 업데이트가 툴세트 선택에 영향을 미치지 않습니다. Licensing Server는 툴세트의 점진적 부분에 대한 수정을 허용합니다. 즉, 특정 툴세트로 [구성된 클라이언트](./client-config.md#supported-configuration-keys)에는 영향을 주지 않는다는 뜻입니다.

Licensing Server `import` 커맨드는 일반적으로 이전 툴세트와 유사하며 끝의 숫자가 증가한 새 툴세트를 보여 줍니다. 예를 들어, 첫 번째 업데이트 후 `LicenseServer_3573461705080_1` 툴세트는 `LicenseServer_3573461705080_2`가 됩니다.

## 고급 서버 구성##advanced-server-configuration

Unity Licensing Server의 설치가 성공적으로 완료되면 [라이선스 서버 데이터 루트 디렉토리](./server-paths.md)에서 `licensing-server-config.json` 파일을 찾을 수 있습니다.

`setup` 커맨드로 처리되지 않는 구성을 수정하려면 `licensing-server-config.json` 파일을 편집하면 됩니다. 다음 예에는 모든 구성 파라미터가 포함되어 있습니다.

```json
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "Kestrel": {
        "Endpoints": {
            "HTTPS": {
                "Url": "https://[* or IP address - see Warning below]:[Port]",
                "Certificate": {
                    "Path": "[Full path of HTTPS PFX certificate - see Warning below]",
                    "Password": "[Password for HTTPS PFX certificate]"
                }
            }
        }
    },
    "licensing": {
        "serverId": "[Server name, to be set by setup CLI command]",
        "licenseUsernameObfuscation": false,
        "floatingLeaseRenewIntervalInMinutes": "15",
        "floatingLicenseExpirationInMinutes": "480",
        "licenseSigningCertificatePassword": "[Encrypted password of license signing certificate]",
        "PluginsDirectory": "Plugins",
        "defaultToolset": "[default license entitlement group Id]",
        "allowBorrow": true,
        "diskSpaceWarningThresholdMegabytes": 50,
        "accessControlList": {
            "allToolsets": {
                "type": "deny",
                "bindings": {
                    "userName": ["john", "alice"],
                    "machineName": ["LAPTOP-A", "LAPTOP-B"]
                }
            }
        }
    },
    "adminIpAllowlist": "127.0.0.1;10.20.30.40;localhost",
    "serverDirectory": "[Full directory path for Licensing Server executable]",
    "serverVersion": "[Licensing Server version]"
}
```

> **Note:**
>
> `Url` 키의 값은 서버 이름이 아닌 별표(`*`) 또는 IP 주소여야 합니다. 예를 들면 `https://*:443`(지원 안됨) 및 `https://10.20.30.40:443`(지원 됨)이 있습니다.
>
> Windows의 `Path` 키에서는 큰따옴표가 포함된 문자열에 백슬래시를 사용할 때 모든 백슬래시에 대해 두 개의 백슬래시를 사용해야 합니다.

### 고급 설정 키##advanced-configuration-keys

다음 표에는 고급 구성 키의 종류와 사용 방법에 대한 설명이 나와 있습니다.

| **Key**                               | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `floatingLeaseRenewIntervalInMinutes` | 서버가 클라이언트에 대한 리스 기간을 지정합니다. 서버가 이 시간이 끝나기 전에 특정 리스에 대한 핑을 수신하지 않으면 해당 리스와 관련된 라이선스를 릴리스합니다.유효 범위는 5\~60분입니다.기본 설정은 15분입니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `floatingLicenseExpirationInMinutes`  | 발급된 클라이언트 라이선스의 만료 시점을 지정합니다.유효 범위는 60분에서 1440분입니다.기본 설정은 480분(8시간)입니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `licenseSigningCertificatePassword`   | PFX 형식을 따르는 서명 인증서의 암호화된 비밀번호입니다.[import 커맨드](./server-setup-lic.md)는 자동으로 이 값을 설정합니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `PluginsDirectory`                    | 서버가 플러그인을 읽는 디렉토리의 전체 경로입니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `defaultToolset`                      | 기본 제품 라이선스의 ID를 저장합니다.서버에서 여러 제품 라이선스를 사용할 수 있고 클라이언트가 특정 제품 라이선스를 요청하지 않는 경우 서버는 기본 라이선스를 할당합니다. 기본값이 설정되지 않은 경우 서버는 목록에서 사용 가능한 첫 번째 라이선스를 할당합니다.사용 가능한 모든 제품 ID를 찾으려면 [확장 테스트 보고서](./server-setup-test.md#extended-test-report)를 열고 `serverLicenses` 섹션에서 `licenseEntitlementGroupId` 필드를 찾습니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `allowBorrow`                         | 사용자가 오프라인환경에서 작업하기 위해 플로팅 라이선스(floating license)를 Licensing Server로부터 대여할 수 있는지 여부를 지정합니다.이 값을 부울 데이터 유형으로 지정합니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `diskSpaceWarningThresholdMegabytes`  | Licensing Server에서 사용 가능한 디스크 공간에 대한 경고 임계값을 지정합니다.**참고**: 이 키는 서버 버전 2.0부터 사용할 수 있습니다.이 값을 메가바이트 단위로 지정합니다.디스크 공간이 이 임계값 아래로 떨어지면 서버의 상태가 `Degraded`로 변경되고 관리 대시보드의 상태 표시기가 노란색으로 바뀝니다. 서버의 디스크 공간이 부족하면 클라이언트 컴퓨터에 라이선스를 대여할 수 없습니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `accessControlList`                   | 지정된 사용자 또는 컴퓨터 이름이 라이선스를 요청할 수 있는지 여부를 제어할 목록을 지정합니다.**참고**: 이 키는 서버 버전 2.0부터 사용할 수 있습니다. 다음 키를 지정합니다.● 제어할 툴세트 ID. 현재 유효한 값은 `allToolsets`뿐입니다.● `allow` 또는 `deny` 값이 있는 `type` 키. `allow`를 지정하면 지정된 사용자 또는 컴퓨터만 플로팅 라이선스에 액세스할 수 있습니다(화이트리스팅). `deny`를 지정하면 지정한 사용자를 제외한 모든 사용자 또는 컴퓨터가 라이선스에 액세스할 수 있습니다(블랙리스팅).● `userName` 문자열 배열이나 `machineName` 문자열 배열 또는 둘 다 포함된 `bindings` 키. `userName` 또는 `machineName`을 하나 이상 지정해야 합니다. 값이 두 배열에 모두 지정된 경우, 해당 값이 어느 한 배열과 일치하면 이에 해당하는 사용자에게 영향을 미칩니다. `userName`과 `machineName` 값은 대소문자를 구분하지 않습니다.**중요**: 다음과 같은 구성 실수를 피하십시오.● 다음 오류로 인해 서버가 `Degraded` 상태로 시작되고 모든 사용자 및 컴퓨터에 대한 액세스가 허용될 수 있습니다.   ○`allToolsets` 키를 생략하는 경우   ○빈 `allToolsets` 객체 키를 지정하는 경우   ○`allow` 키와 `deny` 키를 모두 지정하지 않는 경우● `bindings`를 지정하지 않고 `allow` 값을 지정하면 사용자나 컴퓨터가 라이선스를 요청할 수 없으므로 서버가 `Unhealthy` 상태로 시작됩니다.액세스 제어로 인해 실패한 라이선스 액세스 시도는 서버 로그(`Unity.Licensing.Server.log`)와 클라이언트 로그(`Unity.Licensing.Client.log`)에 기록됩니다. 로그 메시지에는 사용자의 `userName`, `machineName` 및 라이선스 액세스 시도가 실패한 이유가 포함됩니다. 샘플 로그 예시: `API Error 403 while processing request (...) License access denied (The user (userName: jsmith, machineName: P4DSFHTE) does not have license access because the userName is on the access control list's deny bindings.)` |
| `adminIpAllowlist`                    | 관리자 엔드포인트에 액세스할 수 있는 허용된 IP 주소를 세미콜론으로 구분된 문자열로 지정합니다.Licensing Server는 와일드카드 문자나 서브넷을 지원하지 않습니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

## 추가 리소스

* [Licensing Server Dashboard](./server-admin-dash.md)
* [Unity Floating Licensing 서버 문제 해결](./troubleshooting.md)
* [Unity Floating License Server Fundamentals](https://learn.unity.com/course/unity-floating-license-server-fundamentals)(Unity Learn 교육 과정)
