가상 저장소 개요

이 문서에서는 가상 저장소에 대해 간략하게 설명합니다. 가상 저장소를 만드는 방법은 가상 저장소 만들기를 참조하세요.

Artifact Registry 할당량 및 한도가 가상 저장소에 적용됩니다.

가상 저장소 작동 방식

가상 저장소는 하나 이상의 업스트림 저장소에서 동일한 형식으로 아티팩트를 다운로드, 설치, 배포하기 위한 단일 액세스 포인트로 사용됩니다. 업스트림 저장소는 Artifact Registry 표준 또는 원격 저장소일 수 있습니다.

다른 저장소 모드는 다음과 같습니다.

  • 표준: 기본 저장소 모드입니다. 비공개 패키지와 같은 아티팩트를 표준 저장소에 직접 업로드하거나 게시합니다. 개별 표준 저장소에서 직접 다운로드할 수도 있지만 가상 저장소를 사용해서 저장소 그룹에 액세스하면 도구 구성이 간소화됩니다.
  • 원격(언어 패키지 저장소만): Maven Central 또는 PyPI와 같은 공개 저장소의 아티팩트에 대한 풀스루 캐시입니다. 외부 종속 항목을 더 세부적으로 제어할 수 있도록 공개 저장소에 대한 프록시로 작동합니다.

사용 사례 및 이점

간단한 클라이언트 구성

저장소에 대해 읽기 액세스만 필요한 태스크의 경우 여러 업스트림 저장소에 저장된 아티팩트에 액세스하기 위해 단일 Artifact Registry 저장소만 구성하면 됩니다.

예를 들면 다음과 같습니다.

  • Maven 패키지용 가상 저장소는 Artifact Registry 표준 저장소에서 비공개 자바 패키지를 지원하고, Maven Central에서 공개 패키지를 캐시하는 원격 저장소에서 공개 자바 패키지를 지원할 수 있습니다.
  • 가상 저장소는 여러 팀이 소유하는 다중 업스트림 표준 저장소에서 비공개 Python 패키지를 지원할 수 있습니다. 각 팀은 해당 업스트림 저장소에 대해 쓰기 액세스 권한이 있지만 가상 저장소를 사용하여 다른 팀에서 패키지를 다운로드합니다.
더 안전한 종속 항목 확인

요청된 아티팩트가 한 개를 초과하는 업스트림 저장소에 있을 때 Artifact Registry에서 선택하는 저장소를 더 세부적으로 제어하기 위해서는 업스트림 저장소에 우선순위를 부여할 수 있습니다.

Python pip와 같은 일부 도구는 클라이언트에 비공개 및 공개 저장소가 혼합하여 구성되었을 때 검색 순서를 제어할 수 있는 방법을 제공하지 않습니다. 이러한 유형의 구성은 잘못된 코드를 포함한 패키지의 새 버전을 공개 저장소에 업로드하여 클라이언트가 잘못된 버전을 선택하도록 속이는 종속 항목 혼동 공격에 취약합니다.

원격 저장소와 가상 저장소를 함께 사용해서 이러한 위험을 해결할 수 있습니다.

  1. 원격 저장소를 공개 저장소의 프록시로 만듭니다.
  2. 비공개 패키지의 표준 저장소를 만듭니다.
  3. 동일한 패키지 버전이 두 저장소에 모두 있으면 표준 저장소를 우선하도록 구성된 가상 저장소를 만듭니다.
  4. 클라이언트 논리가 저장소 선택에 포함되지 않도록 가상 저장소에서만 읽기를 수행하도록 패키지 관리자 및 기타 도구를 구성합니다.

다른 종속 항목 관리 권장사항에 대해 알아보려면 종속 항목 관리를 참조하세요.

가상 저장소의 업스트림 저장소 선택 방법

각 업스트림 저장소에는 구성된 우선순위가 있어야 합니다. 우선순위는 순위가 아닌 가중치 역할을 하는 정수입니다. 즉, 우선순위 값이 높은 저장소가 우선순위 값이 낮은 저장소보다 우선 적용됩니다.

여러 업스트림 저장소에 있는 아티팩트를 요청할 경우 Artifact Registry에 다음 우선순위 논리가 사용됩니다.

  • 가장 높은 값을 가진 저장소가 우선적으로 적용됩니다. 예를 들어 10 값은 1 값보다 우선순위가 높은 것으로 취급됩니다.
  • 여러 업스트림 저장소의 우선순위가 동일하면 모든 저장소에서 아티팩트를 지원할 수 있습니다.

클라이언트가 가상 저장소 및 추가 저장소를 검색하도록 직접 구성하면 클라이언트는 Artifact Registry 외부의 저장소에서 아티팩트를 다운로드할 수 있습니다.

예를 들어 PyPI 및 가상 저장소를 검색하도록 Python pip 도구를 구성할 경우 시작된 저장소에 관계없이 pip가 항상 최신 버전의 패키지를 선택하므로 PyPI에서 직접 패키지를 다운로드할 수 있습니다. pip가 가상 저장소만 검색하도록 구성된 경우 PyPI의 프록시로 작동하는 업스트림 원격 저장소를 포함하여 모든 업스트림 저장소의 우선순위를 제어할 수 있습니다.

지원되는 저장소 형식

다음 Artifact Registry 저장소 형식에 대해 가상 저장소를 만들 수 있습니다.

언어 패키지:

OS 패키지

Artifact Registry를 처음 사용하는 경우 빠른 시작을 사용해서 해당 형식으로 표준 저장소를 설정하는 방법을 알아볼 수 있습니다.

제한사항

Artifact Registry 할당량과 제한사항 외에도 가상 저장소에는 다음과 같은 제한사항이 적용됩니다.

  • 표준 Artifact Registry 업스트림 저장소는 가상 저장소와 동일한 리전 또는 멀티 리전에 있어야 하지만 다른 Google Cloud 프로젝트에 포함될 수 있습니다.
  • Maven 가상 저장소에서는 버전 정책을 스냅샷이나 출시 버전으로 설정할 수 없습니다.

  • Apt 및 Yum 업스트림은 Artifact Registry 표준 저장소여야 합니다.

  • Apt 및 Yum 표준 저장소는 패키지를 가져오거나 업로드하거나 삭제한 후 패키지 색인을 비동기식으로 업데이트합니다. 소규모 저장소의 경우 색인을 다시 생성하려면 몇 초가 걸릴 수 있습니다. 대규모 저장소의 경우 색인을 다시 생성하는 데 몇 분 이상 걸릴 수 있습니다. 색인 재생성이 완료되면 저장소 변경사항은 Apt 및 Yum 클라이언트에 표시됩니다.

다음 단계