Amazon Linux 1 또는 Amazon Linux 2를 실행하는 EC2 인스턴스에서 yum을 사용할 때 오류가 발생하는 이유는 무엇인가요?

최종 업데이트 날짜: 2020년 10월 17일

Amazon Linux 1 또는 Amazon Linux 2를 실행하는 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 yum을 사용할 때 오류가 발생하는 이유는 무엇인가요?

간략한 설명

yum 명령의 출력 메시지를 사용하여 발생한 오류를 확인합니다. 다음은 일반적인 오류 메시지입니다.

  • Connection timed out XXX milliseconds
  • HTTP Error 403 - Forbidden
  • Could not resolve host: xxxxxxxxx.$awsregion.$awsdomain
  • HTTP Error 407 - Proxy Authentication Required
  • Resolving timed out after 5000 milliseconds

해결 방법

Connection timed out XXXX milliseconds

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

2.    EC2 인스턴스의 서브넷과 연결된 네트워크 ACL이 NACL을 통한 아웃바운드 http/https 트래픽을 허용하는지 확인합니다.

다음 예제에서는 포트 80과 443에서 트래픽을 허용하는 사용자 지정 네트워크 ACL을 보여줍니다.

Inbound rules
Rule#    Type                    Protocol    Port Range    Source        Allow/Deny
100      Custom TCP Rule         TCP (6)     1024-65535    0.0.0.0/0     ALLOW
101      Custom TCP Rule         TCP (6)     1024-65535    ::/0          ALLOW
*        ALL Traffic             ALL         ALL           ::/0          DENY
*        ALL Traffic             ALL         ALL           0.0.0.0/0     DENY
Outbound rules
Rule #    Type                   Protocol    Port Range    Source       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

3.    다음 옵션 중 하나를 사용하여 EC2 인스턴스가 Amazon Linux 리포지토리에 액세스할 수 있는지 확인합니다.

proxy=http://proxy-server-IP-address:proxy_port
proxy_username=proxy-user-name
proxy_password=proxy-password

참고: proxy-port, proxy-user-name, proxy-password를 프록시에 대한 올바른 값으로 바꿉니다.

4.    위의 옵션 중 하나를 사용하여 인스턴스를 구성한 후 다음 telnet 명령을 실행하여 인스턴스가 리포지토리에 액세스할 수 있는지 확인합니다. 다음 명령에서 us-east-1을 사용자 인스턴스의 리전으로 바꿉니다.

Amazon Linux 1

telnet repo.us-east-1.amazonaws.com 80

Amazon Linux 2

telnet amazonlinux.us-east-1.amazonaws.com 80

HTTP Error 403 - Forbidden

1.    인스턴스의 VPC에서 S3 VPC 종단점을 사용하는 경우 연결된 정책이 다음 리소스에서 S3:GetObject API 호출을 허용하는지 확인합니다.

Amazon Linux 1:

"arn:aws:s3:::packages.region.amazonaws.com/*"

"arn:aws:s3:::repo.region.amazonaws.com/*"

Amazon Linux 2:

"arn:aws:s3:::amazonlinux.region.amazonaws.com/*"

참고: 위의 예에서 리전을 사용자 인스턴스의 리전으로 바꿉니다.

2.    프록시를 사용하여 Amazon Linux 리포지토리에 액세스하는 경우 프록시 구성의 허용 목록에 .amazonaws.com이 있는지 확인합니다.

Could not resolve host: xxxxxxxx.$awsregion.$awsdomain"

1.    다음 명령을 실행하여 /etc/yum/vars디렉토리가 사용자 정의 yum 변수를 정의하는지 확인합니다. 디렉토리에는 awsdomainawsregion변수가 포함되어야 합니다. 다음 예시 명령에서 us-east-1을 사용자 인스턴스의 리전으로 바꿉니다.

$ cat /etc/yum/vars/awsregion
us-east-1

$ cat /etc/yum/vars/awsdomain
amazonaws.com

2.    인스턴스의 DNS 확인을 확인합니다. 인스턴스는 Amazon Linux 리포지토리의 도메인 이름을 확인해야 합니다.

$ dig amazonlinux.us-east-1.amazonaws.com

$ dig repo.us-east-1.amazonaws.com

HTTP Error 407 - Proxy Authentication Required

이 문제는 yum에 프록시 서버에 대한 적절한 인증 자격 증명이 없기 때문에 프록시가 요청을 완료할 수 없는 경우에 발생합니다. 프록시를 사용하도록 yum을 구성하려면 다음 파라미터를 사용하여 /etc/yum.conf 파일을 수정합니다.

proxy=http://proxy-server-IP-address:proxy_port
proxy_username=proxy-user-name
proxy_password=proxy-password

Resolving timed out after 5000 milliseconds

다음 명령을 실행하여 /etc/resolv.conf 파일에 DNS 서버에 대한 올바른 IP가 있는지 확인합니다.

cat /etc/resolv.conf
nameserver YourDNSIP

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?