내용으로 건너뛰기

RHEL을 실행하는 Amazon EC2 인스턴스에서 yum을 사용할 때 오류가 발생하는 이유는 무엇입니까?

5분 분량
0

Red Hat Enterprise Linux(RHEL)를 실행하는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 yum을 사용하고 싶은데 오류가 발생합니다.

간략한 설명


EC2 인스턴스에서 yum 명령을 실행한 후 오류가 발생할 수 있습니다. 어떤 오류가 발생했는지 확인하려면 yum 명령의 출력 메시지를 확인합니다. 그런 다음 오류 메시지에 가장 적합한 해결 방법을 사용하십시오.

해결 방법

연결 시간이 초과되었거나 패키지 다운로드 실패 오류

오류: "연결 시간이 XXXX밀리초 초과되었거나 패키지 다운로드에 실패했습니다."

이 오류를 해결하려면 다음 단계를 따르십시오.

  1. EC2 인스턴스에 연결된 보안 그룹이 아웃바운드 HTTP나 HTTPS 트래픽을 허용하는지 확인합니다.

  2. 인스턴스의 서브넷과 연결된 네트워크 액세스 제어 목록(네트워크 ACL)이 아웃바운드 HTTP 및 HTTPS 트래픽을 허용하는지 확인합니다. 네트워크 ACL 규칙의 다음 예를 참조하십시오.

    Inbound rules  Rule#    Type                    Protocol    Port Range    Source        Allow/Deny
    130      Custom TCP Rule         TCP (6)     1024-65535    0.0.0.0/0     ALLOW
    140      Custom TCP Rule         TCP (6)     1024-65535    ::/0          ALLOW
    *        ALL Traffic             ALL         ALL           0.0.0.0/0     DENY
    *        ALL Traffic             ALL         ALL           ::/0          DENY
    
    
    Outbound rules  
    Rule #    Type                   Protocol    Port Range    Destination  Allow/Deny
    100       HTTP (80)              TCP (6)     80            0.0.0.0/0    ALLOW
    101       HTTPS (443)            TCP (6)     443           0.0.0.0/0    ALLOW
    102       HTTP (80)              TCP (6)     80            ::/0         ALLOW
    103       HTTPS (443)            TCP (6)     443           ::/0         ALLOW
    *         ALL Traffic            ALL         ALL           ::/0         DENY
    *         ALL Traffic            ALL         ALL           0.0.0.0/0    DENY

    위의 예에서 아웃바운드 규칙 100과 규칙 101은 인바운드 규칙 130에 해당합니다. 아웃바운드 규칙 102와 규칙 103은 인바운드 규칙 140에 해당합니다. 포트 80과 포트 443에서 허용된 아웃바운드 트래픽(HTTP 및 HTTPS)은 임시 포트에서 허용된 인바운드 트래픽과 일치합니다.

    예제 네트워크 ACL은 102465535의 임시 포트 범위를 사용합니다. 사용하거나 통신하는 클라이언트 유형에 따라 네트워크 ACL의 범위가 결정됩니다. 가상 프라이빗 클라우드(VPC)의 퍼블릭 인스턴스로 트래픽을 유도할 수 있는 다양한 유형의 클라이언트를 처리하려면 임시 포트 102465535를 여십시오. 또한 범위 내의 악성 포트에서 발생하는 트래픽을 거부하는 규칙을 네트워크 ACL에 추가할 수도 있습니다. 광범위한 임시 포트를 여는 허용 규칙보다 먼저 거부 규칙을 테이블의 앞부분에 배치해야 합니다.

    자세한 내용은 임시 포트사용자 지정 네트워크 ACL을 참조하십시오.

  3. 인스턴스에 RHEL 리포지토리에 대한 액세스 권한이 있는지 확인합니다.

    인스턴스가 인터넷 게이트웨이가 있는 퍼블릭 서브넷에 있는 경우 인터넷 액세스를 위한 구성을 참조하십시오.

    인스턴스가 NAT 게이트웨이가 있는 프라이빗 서브넷에 있는 경우 NAT 게이트웨이를 참조하십시오.

    인스턴스가 NAT 인스턴스가 있는 프라이빗 서브넷에 있는 경우 NAT 인스턴스를 참조합니다.

    인스턴스가 Amazon Simple Storage Service(Amazon S3) VPC 엔드포인트가 있는 퍼블릭 또는 프라이빗 서브넷에 있는 경우, Red Hat 웹사이트에서 연결이 끊긴 시스템 또는 에어 갭 시스템(인터넷 연결이 없는 시스템)을 업데이트하려면 어떻게 해야 합니까?를 참조하십시오.

    인스턴스가 프록시가 있는 프라이빗 서브넷에 있는 경우 프록시를 사용하도록 yum을 구성하십시오. 다음 파라미터를 사용하여 /etc/yum.conf 파일을 수정합니다. 이 예에서 proxy-port, proxy-user-nameproxy-password를 프록시의 올바른 값으로 바꾸십시오.

    proxy=http://proxy-server-IP-address:proxy_port
    proxy_username="proxy-user-name"  
    proxy_password="proxy-password"
  4. 인스턴스가 리포지토리에 액세스할 수 있는지 확인하려면 다음 명령을 실행합니다.

    sudo yum check-update

    명령이 오류 없이 패키지 정보를 성공적으로 검색하면 인스턴스가 리포지토리에 액세스할 수 있는 것입니다.

    오류가 발생하면 /etc/yum.repos.d/ 디렉터리의 리포지토리 구성 파일이 제대로 구성되었는지 확인합니다. 그런 다음 인스턴스가 퍼블릭 서브넷에 있으며, 이 퍼블릭 서브넷이 아웃바운드 인터넷 트래픽을 허용하는 적절한 보안 그룹 규칙을 사용하는지 확인합니다.

CDS 로드 밸런서 연결 실패 오류

오류: "어떤 CDS 로드 밸런서에도 연결할 수 없습니다."

이 오류를 해결하려면 인스턴스와 동일한 RHEL 릴리스의 최신 버전을 사용하여 EC2 인스턴스를 시작합니다.

  1. 최신 RHUI 클라이언트 패키지를 다운로드하려면 새 인스턴스에 로그인한 후 다음 명령을 실행합니다.

    $ sudo yum install --downloadonly --downloaddir=/root/ rh-amazon-rhui-client.noarch
  2. 다운로드한 rpm 패키지를 인스턴스에 복사합니다. 그리고 다음 명령을 실행합니다.

    $ sudo yum remove -y rh-amazon-rhui-client  
    $ sudo rpm -ivh --nodeps /path/to/rpmfile/rh-amazon-rhui-client*

    참고: /path/to/rpmfile을 파일을 복사한 파일 경로로 바꿉니다.

  3. 패키지를 설치한 후 모든 종속 요소를 가져오려면 패키지를 다시 설치해야 합니다.

    $ sudo yum reinstall -y rh-amazon-rhui-client
  4. RHUI에서 필요한 패키지를 다운로드합니다.

    $ sudo yum clean all
    $ sudo yum repolist
    $ sudo yum list

"실패: Repodata/repomd.xml" 오류 또는 이와 유사한 "404 - 찾을 수 없음" 오류

오류: "실패: repodata/repomd.xml from rhel-7-server-rhui-rh-common-rpms: [Errno 256] 더 이상 시도할 미러가 없음 또는 https://rhui3.eu-west-1.aws.ce.redhat.com/pulp/repos/content/dist/rhel/rhui/server/7/7/x86_64/rh-common/os/repodata/repomd.xml : [Errno 14] HTTPS 오류 404 - 찾을 수 없음"

이 오류는 다음과 같은 이유로 발생합니다.

  • 손상된 yum 캐시
  • 네트워크 관련 문제로 인해 액세스할 수 없는 리포지토리 URL
  • 사용자 지정된 미디어 리포지토리 또는 기타 미디어 리포지토리
  • IP 기반 방화벽 구성을 사용하여 Red Hat의 콘텐츠 전송 네트워크(CDN)에 액세스할 때 오래된 허용 목록 사용

yum 캐시를 제거한 다음 다시 빌드하려면 다음 명령을 실행합니다.

# rm -rf /var/cache/yum/*
# yum clean all
# yum check-update
# yum repolist enabled

자세한 내용은 Red Hat 웹사이트에서 Red Hat Satellite 6 클라이언트에서 발견된 '[Errno 14] HTTPS 오류 404 - 찾을 수 없음' 오류 문제 해결을 참조하십시오.

이 시스템이 권한이 있는 서버를 사용하여 등록되지 않음 오류

오류: "이 시스템이 권한이 있는 서버를 사용하여 등록되지 않았습니다. subscription-manager를 사용하여 등록할 수 있습니다."

이 오류를 해결하려면 subscription-manager를 사용하여 시스템을 등록합니다. AWS Marketplace에서 인스턴스를 실행하면 이 인스턴스에는 Red Hat이 제공하는 메타데이터에 내장된 결제 제품이 포함됩니다. Red Hat이 AWS에서 사용하는 RHUI 리포지토리에 연결하면 Red Hat은 결제 제품을 사용하여 유효한 구독을 확인합니다.

인스턴스의 결제 제품을 확인하려면 다음 명령어를 실행합니다.

$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document -q 2>/dev/null | grep billingProducts

  "billingProducts" : [ "bp-6fa54006" ],

인스턴스에 필수 결제 코드가 있는 경우 subscription-manager의 메시지를 무시하십시오. 메시지를 보지 않으려면 /etc/yum/pluginconf.d/subscription-manager.conf에서 subscription-manager 플러그인을 enabled=0으로 설정하십시오. 다음 명령을 실행합니다.

sudo vi  /etc/yum/pluginconf.d/subscription-manager.conf
enabled=0

그런 다음 구성 파일을 저장하고 종료합니다.

참고: 인스턴스를 마이그레이션하거나 스냅샷에서 Amazon Machine Image(AMI)를 생성하는 경우 결제 제품을 사용할 수 없습니다. 결제 코드가 있는 기존 인스턴스의 CreateImage를 사용하는 경우 새 AMI가 이 정보를 상속합니다. AMI는 이제 RHUI 리포지토리와 통신할 수 있습니다.

AWS 공식업데이트됨 2년 전