Version: 2019.3
언어: 한국어
캐시 서버
스크립팅으로 소스 에셋 수정

Unity 액셀러레이터

개요

Unity 액셀러레이터는 Unity 에디터 콘텐츠를 빠르게 공유하도록 지원하는 소프트웨어 에이전트입니다. 팀원들이 동일한 로컬 네트워크에서 작업할 때 액셀러레이터가 에셋 공유를 조정해주므로 프로젝트의 일부를 다시 빌드할 필요가 없습니다. Unity 팀즈 어드밴스드를 사용하는 경우 액셀러레이터는 소스 에셋도 공유합니다. 따라서 콜라보레이트 서비스에서 다운로드하는 시간이 대폭 감소합니다.

로컬 네트워크에 액셀러레이터를 설치하면 Unity 에디터(2019.3 버전 이상, 아래 Unity 에디터 요구 사항 참조)는 액셀러레이터와 커뮤니케이션하여 다른 팀 멤버들이 변경하거나 빌드한 에셋을 검색해서 가져옵니다. 액셀러레이터는 이러한 에셋의 임시 복사본을 네트워크에 보관하므로 에셋을 검색하거나 재빌드하는 데 시간과 대역폭을 낭비하지 않습니다.

콘텐츠

요구 사항

로컬 호스팅 요구 사항

팀원들이 자주 일하는 각 네트워크에 액셀러레이터를 설치하십시오. 액셀러레이터를 호스트할 수 있는 컴퓨터가 로컬 네트워크에서 실행되고 있어야 합니다. 호스트를 선택할 때 다음 요구 사항을 고려하십시오.

  • 로컬 호스트가 다음 운영체제 중 하나를 실행해야 합니다.
    • Linux 버전 2.6.23 이상(64비트)
      Linux의 경우 액셀러레이터를 루트 사용자로 설치해야 합니다.
    • Windows Server 2008R2 / Windows 7 이상(64비트)
    • Mac OS X 10.12 이상(64비트) *로컬 호스트에 대부분의 프로젝트 파일을 호스팅할 수 있는 충분한 로컬 스토리지 공간이 있어야 합니다. 운영체제를 호스트하는 드라이브와 별개로 솔리드 스테이트 드라이브를 사용하는 것이 좋습니다.
  • 로컬 호스트는 팀원들과 동일한 네트워크에 연결되어 있거나, 액셀러레이터의 IP 주소 및 포트(TCP)에 대한 액세스를 허용하는 적절한 방화벽 정책으로 로컬에서 라우팅이 가능해야 합니다.
  • Unity 조직 내 권한 구조에 관계없이 호스트 컴퓨터에 액세스할 수 있는 사람은 누구나 프로젝트 파일에 액세스할 수 있습니다. 따라서 Unity는 조직 소유자 또는 관리자 만 액셀러레이터에 액세스하고 상호작용할 수 있도록 해당 컴퓨터를 제한할 것을 권장합니다.

Unity 에디터 요구 사항

Unity 프로젝트는 2019.3 버전 이상의 Unity 엔진을 사용해야 합니다.

Unity 팀즈 어드밴스드에서 액셀러레이터 사용

액셀러레이터는 Unity 팀즈 어드밴스드에 다음의 추가 이점을 제공합니다.

일반 콜라보레이트 워크플로에서 사용자는 클라우드에 업로드하고 다운로드합니다. 가속화된 콜라보레이트 워크플로에서는 업로드가 클라우드와 액셀러레이터에 저장되지만, 사용자가 액셀러레이터에서 직접 다운로드할 수 있습니다.
일반 콜라보레이트 워크플로에서 사용자는 클라우드에 업로드하고 다운로드합니다. 가속화된 콜라보레이트 워크플로에서는 업로드가 클라우드와 액셀러레이터에 저장되지만, 사용자가 액셀러레이터에서 직접 다운로드할 수 있습니다.

설정

Unity 팀즈 어드밴스드가 있는 경우 조직의 소유자 또는 관리자 중 한 명이 다음 단계에 따라 개발자 대시보드에서 액셀러레이터를 생성할 수 있습니다.

  1. 대시보드의 Develop 탭에서 액셀러레이터를 생성할 프로젝트를 선택합니다.
  2. 프로젝트 뷰의 왼쪽 탐색 표시줄에서 Collaborate > Accelerator를 선택합니다.
  3. New Accelerator 버튼을 클릭합니다.
  4. New Accelerator 프롬프트에 Unity가 액셀러레이터 에이전트를 식별할 때 사용할 에이전트 이름을 입력합니다. 또는 포트 번호를 지정할 수도 있습니다(선택 사항).

    참고: 현재는 조직당 세 개의 액셀러레이터로 제한됩니다.

  5. Save를 클릭하여 설정을 확인합니다.
  6. 다음 화면에서 등록 토큰을 복사한 후 오른쪽 상단 모서리의 Download Accelerator 버튼을 클릭한 다음 적절한 운영체제를 선택합니다.

    개발자 대시보드에서 액셀러레이터 다운로드
  7. 다운로드한 설치 프로그램을 실행한 후 설치 마법사를 따릅니다. 복사한 등록 토큰을 사용하여 액셀러레이터를 Unity 콜라보레이트에 등록합니다. 이렇게 하면 액셀러레이터를 사용하여 콜라보레이트 성능을 강화할 수 있습니다.

소스 에셋 보안

Unity 팀즈 어드밴스드에서 사용할 경우 각 액셀러레이터는 자체 보안 인증서를 수신하여 조직에 액세스할 권한이 있음을 증명합니다. 액셀러레이터가 콘텐츠를 업로드하거나 다운로드하기 전에 요청을 하는 Unity 에디터가 SSL/TLS를 사용하여 액셀러레이터에 안전하게 접속하고 인증을 확인합니다. Unity 에디터가 액셀러레이터를 발견한 후 접속하면 일반 Unity 사용자 토큰을 전달하는 대신, Unity 아이덴티티 서비스에서 특수 토큰을 수신합니다. 이 토큰은 사용자 ID를 확인하고 조직 내 단일 프로젝트에 액세스합니다. 따라서 액셀러레이터를 사용하는 동안 다른 조직 및 프로젝트에 대한 액세스를 보호할 수 있습니다.

에셋 임포트 파이프라인에서 액셀러레이터 사용

에셋 임포트 파이프라인은 스크립트 통해 프로젝트 에셋에 액세스하도록 해주는 API를 제공하며, 액셀러레이터를 캐싱 메커니즘으로 사용합니다. 개발자 또는 개발팀원 중 한 명이 에셋을 임포트하면 에셋 임포트 파이프라인은 먼저 해당 에셋이 액셀러레이터 저장소의 임포트된 상태로 존재하는지 확인합니다. 존재하면 에셋 임포트 파이프라인은 임포트 단계를 건너 뛰고, 대신에 액셀러레이터에서 에셋을 다운로드합니다. 존재하지 않으면 에셋 임포트 파이프라인은 에셋을 임포트한 후 액셀러레이터에 업로드합니다.

에셋 임포트 파이프라인에서 액셀러레이터를 사용하면 대형 프로젝트의 초기 시작 시간을 크게 줄일 수 있습니다. 리소스를 많이 소모하는 임포트 대신에 이 조합을 사용하면 임포트된 결과만 다운로드하여 프로젝트에 대해 로컬로 저장할 수 있습니다. 동일한 로컬 네트워크의 사용자들은 다른 사용자의 임포트를 공유할 수 있으므로 여러 명이 리소스 소모가 큰 임포트 작업을 수행할 필요가 줄어듭니다.

설정

Unity 팀즈 어드밴스드가 없는 경우 Unity 액셀러레이터를 직접 다운로드하여 설치하고 설치 과정 동안 등록 토큰을 선택 해제할 수 있습니다.

“헤드리스” 컴퓨터에 액셀러레이터 설치

각 플랫폼에서 커맨드 라인을 통해 설치 프로그램을 실행할 수 있습니다. --help 인자를 사용하여 설치 프로그램을 실행하면 이용 가능한 다양한 옵션이 표시됩니다. 프롬프트 없이 전체 설치를 진행하려면 다음에 대한 값을 제공해야 합니다.

  • --storagedir는 파일과 설정을 저장할 액셀러레이터 디렉토리를 설정합니다.
  • --registration-token은 액셀러레이터가 생성된 후 개발자 대시보드에서 제공되는 토큰을 지정합니다. --have-registration-token false는 등록을 건너 뜁니다(예: Unity 팀즈 어드밴스드가 없는 경우). 중요: 이 두 방법 중 한 가지만 사용해야 합니다.
  • 아무것도 쿼리하지 않아야 하는 자동 설치에는 --mode unattended를 사용하십시오. 기본값 또는 제공된 다른 옵션 플래그의 값을 사용합니다.
  • Mac OS X에서는 디스크 이미지(DMG)를 마운트하고 설치 프로그램 앱의 디렉토리(Contents/MacOS/installbuilder.sh에 있음)에 위치한 바이너리를 실행해야 합니다.

에디터가 액셀러레이터를 사용하도록 설정

액셀러레이터를 설치하면 설정 마법사의 마지막 단계에 에디터에서 참조할 IP 주소와 포트가 다음의 포맷으로 표시됩니다.

[IP]:[Port]

에디터가 해당 액셀러레이터를 에셋 파이프라인 버전 2 캐시 서버로 사용하도록 하려면 다음 절차를 따르십시오.

  1. Unity 에디터에서 Edit > Preferences (Windows) 또는 Unity > Preferences(Mac OS X)를 선택합니다.
  2. 왼쪽 메뉴에서 Cache Server를 선택합니다.
  3. Asset pipeline v2를 활성화한 후 설정 마법사의 액셀러레이터 IP 주소를 Default IP address 필드에 입력합니다.
에디터가 에셋 임포트 파이프라인에 액셀러레이터를 사용하도록 설정
에디터가 에셋 임포트 파이프라인에 액셀러레이터를 사용하도록 설정

액셀러레이터 모니터링

개발자 대시보드(Unity 팀즈 어드밴스드 사용자 전용)

Unity 팀즈 어드밴스드 사용자는 개발자 대시보드에서 액셀러레이터 지표를 모니터링할 수 있습니다. 이 지표는 소스 에셋에만 적용되고, 생성된(임포트된) 에셋에는 적용되지 않습니다.

프로젝트의 액셀러레이터에 관한 요약을 보려면 프로젝트를 선택한 후 왼쪽 탐색 표시줄에서 Collaborate > Accelerators를 선택하십시오. 이 메뉴에서 다음 정보를 볼 수 있습니다.

프로퍼티 설명
이름 액셀러레이터를 생성할 때 지정한 이름입니다.
Avg. Efficiency 지난 24시간 동안 액셀러레이터의 평균 효율입니다.
Editors 액셀러레이터에 연결된 Unity 에디터 수입니다.
Latest Activity 액셀러레이터의 가장 최근 활동입니다.
Status 액셀러레이터는 다음 상태 중 하나일 수 있습니다.

- Available은 액셀러레이터가 설치되지 않았거나 콜라보레이트 서비스에 등록되지 않았음을 의미합니다.
- Ready는 액셀러레이터가 콜라보레이트 서비스에 등록되었지만, 연결된 Unity 에디터가 없다는 의미입니다.
- In use는 Unity 에디터가 연결되었거나, 최근에 액셀러레이터에 접속했다는 의미입니다.
- Idle은 Unity 에디터가 이전에 액셀러레이터를 사용했지만, 최근 활동은 없다는 의미입니다.
- Not Listening은 액셀러레이터를 설정된 포트에 연결할 수 없다는 의미입니다(대개 다른 서비스가 이미 사용 중이기 때문임).
- Disconnected는 액셀러레이터가 사용량 보고 또는 설정 변경 수신을 위해 서비스에 더 이상 연결되지 않음을 의미합니다.
Enabled Unity 에디터가 액셀러레이터를 발견하여 사용할 수 있음을 의미합니다. Unity 에디터는 실행 여부에 관계없이 비활성화된 액셀러레이터를 사용하지 않습니다.

액셀러레이터의 Details를 클릭하면 사용량에 대한 심층 정보가 표시됩니다. 이 데이터는 10분마다 업데이트됩니다.

효율

지난 24시간 동안 액셀러레이터의 평균 성능을 보여줍니다. 이 값의 범위는 0에서 100까지이며, 콜라보레이트 서비스에서 원격으로 제공되는 것이 아니라 액셀러레이터에서 로컬로 제공되는 콘텐츠 다운로드의 백분율을 측정합니다. 값이 0이면 액셀러레이터가 콘텐츠 다운로드를 적극적으로 지원하지 않음을 의미합니다. 값이 100이면 액셀러레이터가 모든 콘텐츠 다운로드를 제공하고 있음을 의미합니다.

바이트 제거

액셀러레이터는 주기적으로 새 에셋을 저장할 수 있도록 공간을 비웁니다. 이 경우 대시보드는 예전 에셋에 할당된 바이트 중에서 액셀러레이터가 로컬 스토리지에서 제거한 바이트 수를 보고합니다.

참고: 일반적으로 이 동작은 액셀러레이터를 정상적으로 유지하는 데 도움이 됩니다. 하지만 이 값이 액셀러레이터의 효율을 떨어뜨리는 것처럼 보일 경우 팀원들의 사용량을 충족하기 위해 스토리지 공간을 추가할 수 있습니다. 이상적으로는 액셀러레이터를 실행하는 파일 시스템이 가장 최근에 활성화된 프로젝트의 모든 파일을 수용할 만큼 여유 공간이 충분한 솔리드 스테이트 하드 드라이브를 사용하는 것이 좋습니다(필수 사항은 아님). 스토리지가 부족해지면 액셀러레이터의 전반적인 효율이 감소합니다.

바이트 제공

분산된 팀에는 콜라보레이트 서비스를 사용하는 원격 기여자뿐만 아니라 액셀러레이터를 사용하는 로컬 기여자가 있을 수 있습니다. 이 경우 액셀러레이터는 원격 퍼블리시 이벤트를 수신 대기하고 로컬 네트워크의 사용자들을 위해 영향을 받는 콘텐츠를 사전에 다운로드합니다.

액셀러레이터를 사용하면 로컬 네트워크에서 제공된 것이 아니라 원격 콜라보레이트 서비스에서 요청하고 다운로드한 전체 바이트 수에 대해 보고합니다. 로컬로 제공되는 바이트 수가 많을수록 네트워크 게이트웨이에 대한 부하가 줄어들어서 팀에 더 도움이 됩니다.

시간 절약

액셀러레이터는 콜라보레이트 서비스에서 다운로드하는 대신 로컬로 저장된 에셋을 제공할 때 대역폭을 추적하고, Unity 에디터가 에셋을 원격으로 다운로드하기 위해 대기했어야 할 시간(절약된 시간)을 보고합니다.

참고: 위에서 언급된 지표는 소스 에셋에만 적용되고, 생성된(임포트된) 에셋에는 적용되지 않습니다.

액셀러레이터 지표에 직접 액세스

Unity 팀즈 어드밴스드를 사용하지 않는 경우 각 액셀러레이터는 Prometheus 지표 보고서/metrics로 호스트하며, 이를 통해 로컬 네트워크에서 쿼리를 수행할 수 있습니다. 다음은 액세스할 수 있는 전체 지표 리스트입니다.

지표 설명
process_resident_memory_bytes 액셀러레이터에서 사용한 메모리 양입니다.
uta_agent_sys_cpu_percent 시스템에서 사용한 CPU 양입니다.
uta_agent_sys_mem_bytes_used 시스템에서 사용한 메모리 양입니다.
uta_agent_protobuf_connects Unity 에디터가 에셋 임포트 파이프라인용 서비스에 연결한 횟수입니다.
uta_agent_protobuf_bytes_in 에셋 임포트 파이프라인에서 수신한 바이트 수입니다.
uta_agent_protobuf_bytes_out 에셋 임포트 파이프라인에 전송한 바이트 수입니다.
uta_agent_protobuf_requests{code="0",method="get"} 에셋 임포트 파이프라인에 전송한 항목 수입니다.
uta_agent_protobuf_requests{code="1",method="get"} 에셋 임포트 파이프라인에 전송한 항목에서 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="get"} 에셋 임포트 파이프라인에 전송한 항목에서 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="3",method="get"} 캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 요청한 횟수입니다.
uta_agent_protobuf_requests{code="0",method="put"} 에셋 임포트 파이프라인에서 수신한 항목 수입니다.
uta_agent_protobuf_requests{code="1",method="put"} 에셋 임포트 파이프라인에서 수신한 항목에서 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="put"} 에셋 임포트 파이프라인에서 수신한 항목에서 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="0",method="delete"} 항목을 제거하기 위해 에셋 임포트 파이프라인에서 요청한 횟수입니다.
uta_agent_protobuf_requests{code="1",method="delete"} 에셋 임포트 파이프라인에서 항목 제거 중에 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="delete"} 에셋 임포트 파이프라인에서 항목 제거 요청 중에 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="3",method="delete"} 캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 항목 제거를 요청한 횟수입니다.

Unity 에디터 로그 디버깅

Unity 에디터 로그를 사용하면 디버깅 정보를 쉽게 확인할 수 있습니다. 콜라보레이트 이벤트의 로그를 보려면 환경 변수를 enableCollabEventLogs=true로 설정한 상태에서 Unity 에디터(또는 Unity Hub)를 실행하십시오. [collab-accelerator]로 표시된 로그는 액셀러레이터의 성능에 대한 인사이트를 제공합니다.

아래 블록은 에셋 임포트 파이프라인 v2를 사용하는 액셀러레이터의 예제 로그 출력을 보여줍니다. 콜라보레이트용이 아니므로 enableCollabEventLogs=true가 필요하지 않습니다.

2019-10-07T11:34:51-0700 Using Asset Import Pipeline V2.
  ...
  2019-08-08T09:04:03-0700 Start importing Assets/Scenes/tame-the-unicorn.png guid(07a0d449dcaef4d2ba104e9d9b350de6)
  2019-08-08T09:04:05-0700 Done importing asset: 'Assets/Scenes/tame-the-unicorn.png' (target hash: 'd5fddd470dd9beedcd7261b6455e436a') in 1.082988 seconds
  2019-08-08T09:04:05-0700 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(07a0d449dcaef4d2ba104e9d9b350de6) Importer(-1,)' Target hash='d5fddd470dd9beedcd7261b6455e436a'

액셀러레이터 서비스 중지 및 재시작

액셀러레이터는 각 플랫폼에서 백그라운드 프로세스로 실행됩니다.

Windows

설정 메뉴에서 “서비스”로 검색하거나 Run 다이얼로그(WIN + R)에서 “services.msc”을 실행하여 Services Panel을 열고, 결과 리스트에서 “Unity 액셀러레이터” 서비스를 찾으십시오. 왼쪽 패널에 Stop the service 또는 Restart the service 옵션이 표시됩니다.

Mac OS X

터미널에서 launchctl 커맨드를 실행하여 LaunchControl 유틸리티에서 “com.unity.accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 https://www.launchd.info/를 참조하십시오.

Linux

service 콘솔 유틸리티를 사용하여 “unity-accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 http://manpages.ubuntu.com/manpages/bionic/man8/service.8.html을 참조하십시오.

유지관리

액셀러레이터 서비스는 유지관리 기간 동안 자동으로 업데이트됩니다. 현재 유지관리 시간은 액셀러레이터를 실행하는 컴퓨터에 따라 01:00–02:00 AM(로컬 시간)으로 설정되었습니다. 유지관리는 액셀러레이터가 새 버전을 발견했을 때에만 진행됩니다.

액셀러레이터의 설치 및 제거 로그는 운영체제의 표준 임시 디렉토리에 unity-accelerator-*install.log로 저장됩니다. 액셀러레이터의 로그는 스토리지 디렉토리에 unity-accelerator.log로 저장됩니다.

문제 해결

액셀러레이터를 설치했지만 일부 Unity 에디터가 사용하지 못한다면 여러 가지 원인이 있을 수 있습니다. 다음 문제 해결 옵션을 사용하여 문제를 해결해 보십시오.

사용 중인 Unity 에디터 버전 확인

각 프로젝트 기여자는 액셀러레이터를 사용하기 위해 에디터 버전 2019.3 이상을 보유해야 합니다.

사용자가 액셀러레이터의 로컬 네트워크에 있는지 확인

액셀러레이터가 문제를 겪는 프로젝트 기여자와 동일한 근거리 통신망(LAN)에서 실행 중인지 확인하십시오. 액셀러레이터는 원격으로 작업하는 기여자에게는 영향을 주지 않습니다.

액셀러레이터의 연결 테스트

문제가 발생한 컴퓨터가 액셀러레이터에 접속할 수 있는지 확인하십시오. Unity 팀즈 어드밴스드를 사용하는 경우 다음 절차에 따라 브라우저에서 액셀러레이터 상태 페이지에 액세스할 수 있습니다.

  1. 개발자 대시보드에서 Collaborate > Accelerator를 선택합니다.
  2. 테스트할 액셀러레이터의 Details를 클릭합니다.
  3. 액셀러레이터의 IP 주소 옆에 있는 정보 아이콘을 클릭하여 상태 페이지 URL을 표시합니다.

Unity 팀즈 어드밴스드를 사용하지 않는 경우에는 액셀러레이터의 호스트 IP 주소를 다음 URL 경로에 입력하면 해당 상태 페이지가 표시됩니다.

[AcceleratorIP]:[AcceleratorPort]/api/agent-health

테스트가 실패하면 모든 호스트 및 네트워크 방화벽이 액셀러레이터의 수신 IP 주소 및 포트(TCP)에 대한 액세스를 허용하는지 확인하십시오. 네트워크 관리자와 협력하여 이 포트에 대한 액세스를 허용해야 할 수 있습니다.

액셀러레이터의 프로젝트 설정 확인

Unity 팀즈 어드밴스드를 사용한다면 액셀러레이터가 해당 프로젝트에 대해 설정되었는지 확인하십시오. 개발자 대시보드에서 프로젝트로 이동한 후 왼쪽 탐색 표시줄에서 Collaborate > Accelerator를 선택하십시오. 그러면 해당 프로젝트에 대한 액셀러레이터가 표시됩니다.

지원

Unity 팀즈에서 액셀러레이터를 사용하기 위한 도움이 필요하면 이메일로 문의하거나 개발자 대시보드에서 지원 요청서를 제출하십시오. Unity 팀즈 어드밴스드 프로젝트에 대한 요청서를 제출하려면 왼쪽 탐색 표시줄에서 Collaborate > Support를 선택하십시오.

에셋 임포트 파이프라인에서 액셀러레이터를 사용하기 위한 도움이 필요하면 액셀러레이터 포럼을 방문해 보십시오.

캐시 서버
스크립팅으로 소스 에셋 수정