VPC Endpoint만으로 EC2 패키지 관리가 가능할까? Linux와 Ubuntu에서 테스트해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Linux와 Ubuntu에서 VPC Endpoint만으로 EC2 패키지 관리가 가능한지 테스트해 봤습니다.
환경 구성
환경은 Linux EC2 인스턴스와 Ubuntu EC2 인스턴스 한 대씩 준비합니다.
그리고 VPC Endpoint를 생성합니다.
VPC Endpoint는 다음 4개를 생성합니다.
- com.amazonaws.ap-northeast-1.s3 (Gateway형)
- com.amazonaws.ap-northeast-1.ssm (Interface형)
- com.amazonaws.ap-northeast-1.ssmmessages (Interface형)
- com.amazonaws.ap-northeast-1.ec2messages (Interface형)
SSM은 Private Subnet에 있는 EC2에 접속하기 위함이고, S3는 S3 참고해 패키지를 설치하기 위함입니다.
여기서 S3는 반드시 Gateway 형으로 생성해야 합니다.
테스트
먼저 Linux EC2에서 테스트를 진행합니다.
# yum 업데이트
sudo yum update -y
# 패키지 설치
sudo yum install -y htop
# 외부 인터넷
curl https://www.google.com
yum 업데이트와 패키지 설치는 정상적으로 작동하지만, 외부 인터넷 접속은 실패합니다.
다만, S3에 있는 Amazon Linux공식 repo는 설치가 가능합니다.
- sudo yum install htop
- sudo yum install git
- sudo yum install python3
이어서 Ubuntu도 테스트해 봅시다.
# apt 업데이트
sudo apt update
# 외부 인터넷
curl https://www.google.com
Ubuntu의 경우 apt 업데이트부터 에러가 발생할 것입니다.
테스트 결과
항목 | Linux | Ubuntu |
---|---|---|
Repository 위치 | AWS S3 | 외부 인터넷 |
VPC Endpoint 사용 | ✅ 가능 (S3 Gateway) | ❌ 불가능 |
NAT Gateway 필요 | ❌ 불필요 | ✅ 필수 |
Private Subnet 작동 | ✅ 가능 | ❌ 불가능 |
비용 | 저렴 (S3 Endpoint 무료) | 비쌈 (NAT Gateway 시간당 과금) |
리포지토리 접근 경로의 차이
Linux는 AWS에서 공식적으로 제공하는 S3 기반 리포지토리를 사용합니다.
이 리포지토리는 AWS 내부 리소스로 취급되며, S3 Gateway Endpoint를 구성하면 인터넷 없이도 접근이 가능합니다.
즉, NAT Gateway 없이도 Private Subnet 내 인스턴스에서 yum update가 정상적으로 작동합니다.
반면, Ubuntu의 기본 리포지토리는 Canonical이 운영하는 외부 인터넷 서버(archive.ubuntu.com 등) 에 위치하고 있습니다.
따라서 외부 통신이 차단된 Private Subnet에서는 직접 접근이 불가능하며, NAT Gateway나 프록시 서버를 반드시 거쳐야 합니다.
VPC Endpoint 활용 가능 여부
Linux는 S3 Gateway Endpoint와 완벽히 호환됩니다.
AWS의 공식 리포지토리가 내부적으로 S3를 사용하기 때문에, VPC Endpoint만 구성해도 AWS 내부망을 통해 패키지를 다운로드할 수 있습니다.
이를 통해 보안성을 높이고 외부망 의존성을 완전히 제거할 수 있습니다.
반면, Ubuntu의 APT 리포지토리는 AWS 내부 리소스가 아니므로 VPC Endpoint로 접근이 불가능합니다.
결과적으로 Ubuntu는 NAT Gateway를 통해서만 패키지 리포지토리에 접근할 수 있으며, Endpoint만으로는 해결이 어렵습니다.
비용 측면 비교
Linux는 NAT Gateway가 필요 없기 때문에 시간당 과금이 발생하지 않습니다.
S3 Gateway Endpoint 자체는 무료이며, 데이터 전송량에 대해서만 내부 트래픽 요금이 부과됩니다.
따라서 여러 인스턴스에서 자주 업데이트를 수행하는 환경에서도 비용 효율성이 매우 높습니다.
Ubuntu는 반대로 NAT Gateway를 반드시 거쳐야 하므로, 시간당 요금과 데이터 전송 요금이 모두 발생합니다.
또한 고가용성을 위해 NAT Gateway를 여러 AZ에 구성해야 하는 경우, 비용은 더욱 증가합니다.
Private Subnet 내 동작 여부
Linux는 S3 Endpoint만 구성하면 완전한 오프라인 네트워크 환경에서도 패키지 업데이트가 가능합니다.
이러한 특성은 외부 통신을 제한해야 하는 보안 환경에서 특히 유리합니다.
Ubuntu는 Private Subnet 내에서 직접 패키지를 받을 수 없기 때문에,
보안 정책상 인터넷을 허용할 수 없는 환경에서는 NAT Gateway나 내부 미러 서버를 별도로 구성해야 합니다.
종합 결론
테스트 결과, Linux는 AWS 환경에 최적화된 구조로, VPC Endpoint만으로도 패키지 관리가 가능한 반면, Ubuntu는 외부 리포지토리 의존성으로 인해 NAT Gateway가 필수적인 구조적 한계가 있음을 확인했습니다.
정리하자면, 보안성, 비용 절감, 내부망 독립성을 중요하게 생각한다면 → Linux가 적합합니다.
Ubuntu 환경이 꼭 필요한 경우에는 NAT Gateway 구성 또는 내부 리포지토리 미러링 전략을 함께 고려하는 것이 좋습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.