이전 포스트에서는 CentOS 7
Image로 띄운 EC2에서 yum proxy 구성하는 방법에 대해 알아보았습니다.
제가 실제로 하고 싶었던 건 Amazon Linux 2
/2023
Image로 띄운 EC2에서 yum proxy를 구성하는 방법이었는데요, 결론부터 말씀드리면 Amazon Linux Image는 Nexus Repository로 yum proxy 구성이 어렵습니다.
$ sudo yum repolist -v amzn2-core
...
pkgsack time: 1.473
Repo-id : amzn2-core/2/x86_64
Repo-name : Amazon Linux 2 core repository
Repo-status : enabled
Repo-revision: 1691166539
Repo-updated : Sat Aug 5 01:28:59 2023
Repo-pkgs : 31,987
Repo-size : 49 G
Repo-mirrors : https://amazonlinux-2-repos-ap-northeast-2.s3.dualstack.ap-northeast-2.amazonaws.com/2/core/latest/x86_64/mirror.list
Repo-baseurl : https://amazonlinux-2-repos-ap-northeast-2.s3.dualstack.ap-northeast-2.amazonaws.com/2/core/2.0/x86_64/a5ec9132547a4c714bde95146ca1d9d2baeaee54e0d3f34d50c4abd19cdceb14/
Repo-expire : 300 second(s) (last: Thu Aug 10 09:13:44 2023)
Filter : read-only:present
Repo-filename: /etc/yum.repos.d/amzn2-core.repo
repolist: 31,987
...
yum repolist -v amzn2-core
결과에서 확인할 수 있듯,
Amazon Linux는 fastmirror
(mirror.list) 방식을 이용하여 Repository의 baseurl 주소를 찾고 연결합니다.
baseurl은 https://amazonlinux-2-repos-ap-northeast-2.s3.dualstack.ap-northeast-2.amazonaws.com/2/core/2.0/x86_64/a5ec9132547a4c714bde95146ca1d9d2baeaee54e0d3f34d50c4abd19cdceb14/
인데, AWS Support에 문의한 결과 URL 후반부에 UID(a5ec9132547a4c714bde95146ca1d9d2baeaee54e0d3f34d50c4abd19cdceb14
)로 된 부분은 Repository Release Update가 되면 변경이 되는 형식으로 Repository가 관리되고 있다고 합니다.
또한 Amazon Linux Repository는 S3를 통해 Repository를 구현하고 있어 전통적인 Repository와는 구조에 차이가 있습니다.
Nexus Repository의 yum proxy는 fasemirror
방식을 지원하지 않고, Remote storage에 수동으로 확인한 Repo-baseurl의 URL을 입력하면 확인한 시점의 Repository release version으로만 동작되어 패키지 관리에 문제가 있습니다.
위 문제를 감수하고 해당 시점의 고정된 release version을 baseurl로 사용한다고 하더라도 아래와 같이 패키지 연결에 문제가 발생합니다. (아래 내용은 Nexus Repository OSS 3.58.1-02
에서 테스트한 내용입니다.)
$ sudo yum install kernel
...
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
kernel x86_64 4.14.320-243.544.amzn2 amzn2-core 21 M
Transaction Summary
========================================================================================
Install 1 Package
Total download size: 21 M
Installed size: 100 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
kernel-4.14.320-243.544.amzn2. FAILED
http://<nexus ip>/repository/al-proxy-repo/../../../../../blobstore/d6ef13080198ed75c5bc779a8e11b4228c95166ab0fd478f2b1ec9dfc7cebfdd/kernel-4.14.320-243.544.amzn2.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found ####<<<-----!!!
Trying other mirror.
Error downloading packages:
kernel-4.14.320-243.544.amzn2.x86_64: [Errno 256] No more mirrors to try.
위와 같이 Nexus에서 경로에 대한 정확한 주소를 proxy 하지 못하는 문제가 발생합니다.
결론적으로 Nexus에서 fastmirror
방식을 지원하지 않으므로 Amazon Linux에 대한 yum proxy 구성이 어렵습니다.
개인적으로 공부하며 작성한 글로, 내용에 오류가 있을 수 있습니다.