인터넷 없이 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Amazon Linux 1 또는 Amazon Linux 2를 실행하고 있습니다. yum을 업데이트하거나 패키지를 설치하려면 어떻게 해야 하나요?
간략한 설명
Amazon Linux リポジトリは、Amazon Simple Storage Service (Amazon S3) バケットでホストされます。 인터넷 연결 없이 인스턴스의 패키지를 업데이트 및 설치하려면 S3 Amazon Virtual Private Cloud(VPC) 게이트웨이 엔드포인트를 생성합니다. 다음으로, S3 VPC 게이트웨이 엔드포인트에 리포지토리 버킷에 대한 액세스를 허용하는 정책을 포함합니다. 그런 다음 VPC 엔드포인트를 인스턴스 서브넷의 라우팅 테이블과 연결합니다.
참고: EPEL과 같은 서드 파티 리포지토리를 활성화하려면 EC2 인스턴스에 다음 중 하나를 통해 인터넷에 액세스해야 합니다.
解決方法
注意: このソリューションを使用するときは、次の点に注意してください。
- EC2 インスタンスにアタッチされたセキュリティグループで、アウトバウンド http トラフィックが許可されていることを確認します。
- S3 VPC エンドポイントにアタッチされたセキュリティグループで、EC2 インスタンスのサブネットからのインバウンド http トラフィックが許可されていることを確認します。
- EC2 インスタンスのサブネットに関連付けられているネットワーク ACL で、以下が許可されていることを確認します。
- ポート 80 (http) および 443 (HTTPS) でのリージョナル S3 サービスへの出力。
- リージョナル S3 サービスから一時的 TCP ポートへの入力。 エフェメラルポートは 1024-65535 です。
- リージョナル S3 サービスは、S3 サービスのパブリック IP CIDR です。 ネットワーク ACL はプレフィクスリストをサポートしません。 ネットワーク ACL に S3 CIDR を追加するには、S3 CIDR として 0.0.0.0/0 を使用します。 また、実際の S3 CIDR を ACL に追加することもできます。 ただし、S3 CIDR はいつでも変更できることに注意してください。
1. Amazon EC2 コンソールを開いてからインスタンスを選択します。
2. [Networking] タブで、VPC ID とサブネット ID を書き留めます。
3. Amazon VPC コンソールを開き、[Subnets] を選択し、[Subnet ID] を選択します。
4. [Route Table] タブを選択し、Route Table ID を書き留めます。
5. [Endpoints] を選択し、[Create Endpoint] を選択します。
6. 다음 정보를 사용하여 게이트웨이 엔드포인트를 생성합니다.
us-east-1에서 엔드포인트를 생성하는 경우 com.amazonaws.us-east-1.s3를 선택합니다. 다른 리전에서 엔드포인트를 만들려면 해당 리전 코드를 선택합니다. 리전 코드의 전체 목록은 사용 가능한 리전을 참조하세요.
VPC에서 사용자의 인스턴스에 대한 VPC ID를 선택합니다.
[Configure route tables] で、インスタンスの [Route Table ID] を選択します。
7. [Policy] で [Full Access] または [Custom] を選択します。
[Full Access] を選択した場合、エンドポイントポリシーで Amazon S3 へのフルアクセスを許可します。
[Custom] を選択した場合は、Amazon Linux リポジトリバケットで API 呼び出し s3:GetObject を許可する必要があります。
Amazon Linux 2
S3 버킷 arn:aws:s3:::amazonlinux.[region].amazonaws.com 및 arn:aws:s3:::amazonlinux-2-repos-[region]/*은 리포지토리를 호스팅합니다. 다음은 s3:GetObject API 호출을 허용하는 예시 정책입니다. 다음의 예시 정책에서는 us-east-1에 엔드포인트가 있습니다. 엔드포인트가 다른 리전에 있는 경우 **[region]**을 해당 AWS 리전으로 교체합니다.
{
"Statement": [
{
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::amazonlinux.us-east-1.amazonaws.com/*",
"arn:aws:s3:::amazonlinux-2-repos-us-east-1/*"
]
}
]
}
Amazon Linux 1
{
"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 インスタンスにパッケージをインストールして更新できます。
関連情報
Amazon Linux 1 または Amazon Linux 2 を実行している EC2 インスタンスで yum を使用すると、エラーが発生するのはなぜですか?