원격 저장소 개요

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

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

원격 저장소 작동 방식

원격 저장소는 다음 업스트림 소스의 아티팩트를 저장합니다.

  • 표준 Artifact Registry 저장소
  • Docker Hub, Maven Central, Python 패키지 색인(PyPI), Debian 또는 CentOS와 같은 외부 소스

원격 저장소는 업스트림 소스의 프록시 역할을 수행하므로 종속 항목을 보다 세밀하게 제어할 수 있습니다. 패키지 버전을 처음 요청하면 Artifact Registry가 원격 저장소에 패키지를 다운로드하고 캐시합니다. 다음에 동일한 패키지 버전을 요청하면 Artifact Registry에서 캐시된 사본을 제공합니다.

존재하지 않거나 지정한 버전이 없는 업스트림 소스에서 아티팩트를 요청하면 요청이 실패합니다.

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

  • 표준: 기본 저장소 모드입니다. 비공개 패키지와 같은 아티팩트를 표준 저장소에 직접 업로드하거나 게시합니다. 개별 표준 저장소에서 직접 다운로드할 수도 있지만 가상 저장소를 사용해서 저장소 그룹에 액세스하면 도구 구성이 간소화됩니다.
  • 가상: 원격 및 표준 저장소를 포함하여 여러 업스트림 저장소에 대한 단일 액세스 포인트 역할을 하는 저장소입니다.

업스트림 인증

Artifact Registry 원격 저장소는 지원되는 형식의 업스트림 소스에 대해 기본 인증을 지원합니다. 원격 저장소 업스트림 소스에 인증하는 방법에 대한 자세한 내용은 원격 저장소 업스트림에 대한 인증 구성을 참조하세요.

사용 사례 및 이점

아티팩트에 더 빠르고 안정적으로 액세스
공개 종속 항목의 캐시된 사본을 Artifact Registry에 저장하면 다른 Google Cloud 서비스에서 이미지를 검색할 때 지연 시간이 줄어듭니다. 중단 또는 기타 문제로 인해 외부 공개 저장소가 오프라인 상태인 경우에도 캐시된 아티팩트는 계속 사용할 수 있습니다.
더 안전한 종속 항목 확인

가상 저장소와 함께 원격 저장소를 사용하여 공개 종속 항목과 관련된 위험을 완화합니다. 일부 도구는 클라이언트에 비공개 저장소와 공개 저장소가 혼합되어 구성된 경우 검색 순서를 제어하는 방법을 제공하지 않습니다. 이러한 유형의 구성은 잘못된 코드를 포함한 패키지의 새 버전을 공개 저장소에 업로드하여 클라이언트가 잘못된 버전을 선택하도록 속이는 종속 항목 혼동 공격에 취약합니다.

클라이언트가 직접 여러 저장소를 검색하도록 클라이언트를 구성하는 대신 가상 저장소가 원격 저장소보다 비공개 저장소를 우선으로 지정하도록 구성하면 됩니다.

데이터 전송 비용 절감

원격 저장소를 사용하여 런타임과 동일한 리전 또는 멀티 리전 에서 아티팩트를 캐시하여 데이터 전송 비용을 줄입니다.

Artifact Registry가 VPC 서비스 제어 서비스 경계에 있는 경우 Artifact Registry는 기본적으로 경계 외부의 업스트림 소스에 대한 액세스를 거부합니다. 특정 위치의 원격 저장소가 경계 외부의 구성된 외부 소스에 액세스하도록 허용하려면 VPC 서비스 제어 구성 안내를 참조하세요.

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

패키지 색인 및 메타데이터 업데이트

패키지 색인 및 메타데이터와 같이 변경 가능한 파일은 기본 기간을 초과하는 경우 업스트림 소스에서 업데이트됩니다. 다음 표에는 특정 파일 형식의 기본값이 나와 있습니다.

형식 파일 형식 기본 업데이트 기간
Maven maven-metadata.xml 5분
archetype-catalog.xml 1시간
Npm 매니페스트 파일 5분
Python 색인 파일 1시간
Docker 태그 캐시 나열/가져오기 1시간
Apt/Yum(미리보기) 색인 파일 2분
패키지 파일 72시간

지원되는 형식

사전 설정 및 사용자 정의 원격 저장소에 사용할 수 있는 형식은 다음 섹션을 참조하세요.

사전 설정 업스트림 URL

다음 형식의 다양한 일반적인 업스트림 저장소가 편의를 위해 사전 설정 선택 항목으로 제공됩니다.

형식 패키지 유형 업스트림 URL 업스트림 사전 설정 이름
Docker 공개 또는 비공개 https://registry-1.docker.io DOCKER-HUB
Maven 공개 또는 비공개 https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm 공개 또는 비공개 https://registry.npmjs.org NPMJS
Python 공개 https://pypi.io PYPI
OS 패키지(미리보기) 공개 OS 패키지가 지원되는 업스트림 참조 OS 패키지가 지원되는 업스트림 참조

OS 패키지 사전 설정 업스트림

일반적인 사전 설정 업스트림 저장소 기본 URL 중 하나에서 선택하고 남은 URL을 특정 저장소에 대해 맞춤설정하여 OS 패키지 원격 저장소를 만들 수 있습니다. 다음 저장소 기반이 지원됩니다.

Apt

저장소 URL 프리픽스 저장소 기본 이름
Debian http://deb.debian.org DEBIAN
Ubuntu LTS 또는 Pro http://archive.ubuntu.com UBUNTU

Yum

저장소 URL 프리픽스 저장소 기본 이름
CentOS http://mirror.centos.org CENTOS
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
Rocky http://dl.rockylinux.org ROCKY
Fedora Extra Packages for Enterprise Linux(EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Artifact Registry 저장소 업스트림

다음 형식에 대한 업스트림으로 Artifact Registry 표준 형식 저장소를 사용하여 원격 저장소를 만들 수 있습니다.

  • Docker
  • npm
  • Maven
  • Python

커스텀 URL

다음 형식에 대해 사전 설정 업스트림 소스 중 하나를 사용하지 않고 원격 저장소의 URL을 직접 입력할 수 있습니다.

  • Docker
  • npm
  • Maven
  • Python

다음 테이블에는 일반적인 업스트림 URI 중 일부가 나열되어 있습니다.

형식 업스트림 URI 레지스트리 이름
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws AWS ECR 공개 갤러리
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus
npm https://registry.npmjs.org npm
npm https://npm.pkg.github.com GitHub Npm Registry
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://repo.maven.apache.org/maven2 Maven Central
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://pypi.io Python 패키지 색인(PyPI)
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

각 항목의 의미는 다음과 같습니다.

  • MY_NEXUS_IP는 Nexus 업스트림 인스턴스의 IP 주소이자 포트입니다.
  • MY_UPSTREAM_REPOSITORY는 업스트림 저장소의 이름이며, Nexus 예시에 사용됩니다.

제한사항

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

  • Maven 원격 저장소에서는 버전 정책을 스냅샷이나 출시 버전으로 설정할 수 없습니다.
  • 업스트림 소스는 인터넷에 액세스할 수 있어야 합니다. 원격 저장소는 공개 IP 주소가 없는 온프레미스 또는 Virtual Private Cloud(VPC) 네트워크 업스트림 소스를 지원하지 않습니다.

다음 단계