Amazon Linux 1 또는 Amazon Linux 2를 실행하는 EC2 인스턴스에서 인터넷에 액세스하지 않고 yum을 업데이트하거나 패키지를 설치하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 11월 25일

Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 Amazon Linux 1 또는 Amazon Linux 2를 실행하고 있습니다. 인스턴스에 인터넷에 액세스할 수 없는 경우 yum을 업데이트하거나 패키지를 설치하려면 어떻게 해야 하나요?

간략한 설명

Amazon Linux 리포지토리는 Amazon S3(Amazon Simple Storage Service) 버킷에서 호스팅됩니다. 인터넷 연결 없이 인스턴스에 패키지를 업데이트하고 설치하려면 리포지토리 버킷에 대한 액세스를 허용하는 정책을 사용하여 S3 VPC 엔드포인트를 생성합니다. 그런 다음 VPC 엔드포인트를 인스턴스 서브넷의 라우팅 테이블과 연결합니다.

참고: EPEL과 같은 서드 파티 리포지토리를 활성화하려면 EC2 인스턴스에 다음 중 하나를 통해 인터넷에 액세스해야 합니다.

해결 방법

1.    Amazon EC2 콘솔을 열고 사용자의 인스턴스를 선택하세요.

2.    [설명(Description)] 탭에서 [VPC ID]와 [서브넷 ID(Subnet ID)]를 기록합니다.

3.    Amazon VPC 콘솔을 열고 [Subnets(서브넷)]을 선택한 다음 사용자의 서브넷 ID를 선택합니다.

4.    [Route Table(라우팅 테이블)] 탭을 선택한 다음 라우팅 테이블 ID를 기록합니다.

5.    [Endpoints(엔드포인트)]를 선택한 다음 [Create Endpoint(엔드포인트 생성)]을 선택합니다.

6.    다음 정보를 사용하여 엔드포인트를 생성합니다.

[Service name(서비스 이름)]에서 com.amazonaws.[region].s3를 선택하세요. 리소스가 있는 리전을 선택합니다. 예: com.amazonaws.us-east-1.s3. 리전 코드의 전체 목록은 사용 가능한 리전을 참조하세요.

[VPC]에서 사용자의 인스턴스에 대한 VPC ID를 선택합니다.

[Configure route tables(라우팅 테이블 구성)]에서 사용자의 인스턴스에 대한 [Route Table ID(라우팅 테이블 ID)]를 선택합니다.

7.    [Policy(정책)]에 대하여 [Full Access(전체 액세스)] 또는 [Custom(사용자 지정)]을 선택합니다.

[Full Access(전체 액세스)]를 선택하면 엔드포인트 정책이 Amazon S3에 대한 모든 액세스를 허용합니다.

[사용자 지정(Custom)]을 선택하는 경우 Amazon Linux 리포지토리 버킷에서 API 호출 s3:GetObject를 허용해야 합니다.

Amazon Linux 2

리포지토리는 arn:aws:s3:::amazonlinux.region.amazonaws.com 버킷에서 호스팅됩니다. 다음은 s3:GetObject API 호출을 허용하는 정책의 예입니다.

{
    "Statement": [
        {
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amazonlinux.us-east-1.amazonaws.com/*"
            ]
        }
    ]
}

Amazon Linux 1

S3 버킷 arn:aws:s3:::packages.region.amazonaws.comarn:aws:s3:::repo.region.amazonaws.com은 리포지토리를 호스팅합니다. 다음은 s3:GetObject API 호출 액세스를 허용하는 정책의 예입니다.

{
    "Statement": [
        {
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::packages.us-east-1.amazonaws.com/*",
                "arn:aws:s3:::repo.us-east-1.amazonaws.com/*"
            ]
        }
    ]
}

참고: 리소스 ARN의 리전을 인스턴스의 리전으로 바꿉니다. 자세한 내용은 Amazon S3에 대한 엔드포인트 정책 사용을 참조하세요.

8.    [Create endpoint(엔드포인트 생성)]를 선택합니다.

S3 VPC 종단점을 생성한 후 Amazon Linux 인스턴스에 패키지를 설치하고 업데이트할 수 있습니다.