1. Artifact Registry 개요
차세대 Container Registry인 Artifact Registry는 조직이 컨테이너 이미지와 언어 패키지(예: Maven 및 npm)를 한곳에서 관리할 수 있게 해줍니다. Google Cloud의 도구 및 런타임과 완벽하게 통합되며 아티팩트 프로토콜을 기본적으로 지원합니다. 따라서 CI/CD 도구와 간단하게 통합하여 자동화된 파이프라인을 구축할 수 있습니다.
2. 구성 목적
폐쇄망에서 Linux 서버 내 패키지 설치를 위해서는 폐쇄망 내 Mirror 서버가 존재하거나, 외부와의 통신이 필요합니다. Mirror 서버를 구축하기 위해서는 서버 유지에 필요한 리소스가 추가로 필요하고, 관리 포인트가 발생합니다. GCP 서비스인 Artifact Registry를 Private Connection을 통해 외부로의 트래픽을 발생시키지 않고 안전하게 통신하여 보안을 더 강화하는데 있습니다.
3. 구성 방법
– Artifact Registry 생성
패키지 설치 파일을 보관할 Artifact Registry를 생성합니다.
- Artifact Registry 생성
$ gcloud artifacts repositories create [REGESTRY_NAME] \–repository-format=yum \
–location=asia-northeast3 \
–description=”yum repository”
– Package Manage Server 설정
패키지를 업로드 할 Server 내 설정입니다. Server 에서 일괄적으로 패키지를 다운로드 후
Artifact Registry로 업로드 하거나, GCS 내 업로드 된 패키지를 Artifact Registry로 업로드할 수도 있습니다. 아래는 Server를 통해 패키지를 다운로드 받은 후 Artifact Registry로 업로드 하는 방법으로 진행하였습니다.
- VM 의 Service Account에 Artifact Registry Upload 권한 부여
- Package Download
# Server 내 설치여부 관계 없이 설치 파일 다운로드
$ sudo yum reinstall --downloaddir=. --downloadonly [PACKAGE_NAME]
# 종속성을 포함한 패키지 다운로드
# yum-utils 패키지 설치 필요
$ repotrack [PACKAGE_NAME]
# 종속성이 있는 패키지 검색
$ yum deplist [PACKAGE_NAME] - Target Artifact Registry Config
$ gcloud config set artifacts/repository [REGISTRY_NAME]
$ gcloud config set artifacts/location asia-northeast3
$ gcloud artifacts yum upload yum-repo --source=[PACKAGE_NAME] - Upload Package
$ gcloud artifacts yum upload yum-repo --source=[PACKAGE_NAME] - Package List Check
$ gcloud artifacts packages list
$ gcloud artifacts versions list --package=PACKAGE_NAME
– Client 설정
해당 기능을 사용하기 위해서는 기본적으로 필요한 패키지가 설치 되어있어야 합니다.
- VM 의 Service Account에 Artifact Registry Access 권한 부여
- Initial Setting$ sudo yum makecache
$ sudo yum install yum-plugin-artifact-registry - Modify Repo file
$ sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[yum-repo]
name=Yum
repo baseurl=https://asia-northeast3-yum.pkg.dev/projects/PROJECT_NAME/REGISTRY_NAME
enabled=1
repo_gpgcheck=0
gpgcheck=0 EOF - Package download
$ sudo yum –enablerep=[REGISTRY_NAME] install [PACKAGE_NAME] - 동작 확인
4) 의 명령어를 수행하면 패키지가 설치되면서 참조하는 Repository를 확인할 수 있는데, 아래와 같이 앞에서 생성한 Repository를 참조하여 설치하게 됩니다.
