이 문서에서는 원격 저장소에 대해 간략하게 설명합니다. 원격 저장소를 만드는 방법은 원격 저장소 만들기를 참조하세요.
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) 네트워크 업스트림 소스를 지원하지 않습니다.
다음 단계
- 원격 저장소 만들기
- 저장소 개요를 읽고 Artifact Registry 저장소에 대해 자세히 알아보기