AWS 의 RHEL 이미지는 /etc/yum.repos.d/redhat-rhui.repo 에 mirrorlist=https://rhui.REGION.aws.ce.redhat.com/... 형태로 저장소가 들어 있고, REGION 은 부팅 때 인스턴스 메타데이터로 치환된다. 사설 DNS 만 쓰는 VPC 나 메타데이터 접근이 막힌 환경에서는 치환이나 이름 해석이 되지 않아 yum install 이 실패한다.
# 리전 치환
sed -i 's/rhui\.REGION\.aws\.ce\.redhat\.com/rhui.ap-northeast-2.aws.ce.redhat.com/g' /etc/yum.repos.d/redhat-rhui.repo
# 이름 해석이 안 될 때 (IP 는 변할 수 있으므로 dig 로 다시 확인)
echo "15.165.134.198 rhui.ap-northeast-2.aws.ce.redhat.com" >> /etc/hosts
yum clean all && yum repolist
repo 파일에 IP 를 직접 넣으면 sslverify=1 때문에 인증서 CN 불일치로 실패하므로 /etc/hosts 로 호스트명을 유지한다. EC2 의 기본 DNS 는 VPC 의 .2 주소(예: 10.0.0.2)이며, 사설 DNS 로 바꿨다면 외부 이름의 forwarder 가 있어야 한다.
#!/bin/bash
hosts=(host-a host-b)
for host in "${hosts[@]}"; do
echo "===== $host ====="
rsync -av -e "ssh -p 2022" "$1" "$host:$2"
echo
done
-e "ssh -p <port>" 로 지정하며, ~/.ssh/config 에 Port 2022 를 두면 옵션 없이도 된다.