인터넷 게이트웨이 및 라우팅 테이블
아웃바운드 인터넷 액세스를 활성화하도록 인터넷 게이트웨이를 연결하고 퍼블릭 서브넷의 라우팅 테이블을 구성합니다.
인터넷 게이트웨이 및 라우팅 테이블은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
Internet Gateway: VPC의 인터넷 연결 관문
Internet Gateway (IGW)는 VPC와 인터넷 간의 통신을 가능하게 하는 수평 확장형, 중복 구성, 고가용성 VPC 구성 요소입니다. 공용 IPv4 주소를 가진 인스턴스에 대해 Network Address Translation (NAT)을 수행합니다. 즉, 아웃바운드 트래픽에는 프라이빗 IP를 Elastic IP 또는 자동 할당된 공용 IP로 변환하고, 인바운드 트래픽에는 변환을 되돌립니다. VPC당 IGW는 하나입니다. VPC에 IGW를 연결해도 인스턴스에 인터넷 액세스가 자동으로 부여되지는 않으므로 route 테이블을 업데이트하고 인스턴스에 공용 IP가 있는지도 확인해야 합니다.
# Create and attach an internet gateway
aws ec2 create-internet-gateway \
--tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=prod-igw}]'
aws ec2 attach-internet-gateway \
--internet-gateway-id igw-12345678 \
--vpc-id vpc-12345678Route Tables: 트래픽 방향
route 테이블은 subnet 또는 gateway에서 발생한 네트워크 트래픽을 어디로 보낼지 결정하는 규칙(route)의 집합입니다. 모든 VPC에는 기본적으로 모든 subnet이 사용하는 기본 route 테이블이 있으며, subnet에 다른 route 테이블을 명시적으로 연결한 경우는 예외입니다. route에는 대상(CIDR 블록)과 대상 경로(local, internet gateway, NAT gateway, 피어링 연결 등)가 있습니다. 여러 route가 패킷의 대상과 일치하면 가장 구체적인 route(가장 긴 접두사 일치)가 선택됩니다.
# Create a route table for public subnets
aws ec2 create-route-table \
--vpc-id vpc-12345678 \
--tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=public-rt}]'Subnet을 공용으로 만들기
연결된 route 테이블에 Internet Gateway를 가리키는 0.0.0.0/0(모든 인터넷 트래픽) route가 있으면 subnet은 공용입니다. subnet을 공용으로 만드는 세 단계는 다음과 같습니다. (1) 0.0.0.0/0 → IGW route가 있는 사용자 지정 route 테이블을 생성합니다. (2) route 테이블을 subnet에 연결합니다. (3) subnet에서 공용 IPv4 자동 할당을 활성화하여 그 안에서 시작한 인스턴스가 자동으로 공용 IP를 받게 합니다. 세 단계를 모두 수행해야 정상적으로 작동하는 공용 subnet이 만들어집니다.
# Add internet route to the public route table
aws ec2 create-route \
--route-table-id rtb-12345678 \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-12345678
# Associate the route table with a public subnet
aws ec2 associate-route-table \
--route-table-id rtb-12345678 \
--subnet-id subnet-public-1a
# Enable auto-assign public IP for the subnet
aws ec2 modify-subnet-attribute \
--subnet-id subnet-public-1a \
--map-public-ip-on-launch로컬 Route
모든 route 테이블에는 VPC 내 모든 리소스 간 통신을 가능하게 하는 로컬 route(예: 10.0.0.0/16 → local)가 자동으로 포함됩니다. 이 route는 삭제하거나 수정할 수 없습니다. gateway를 거치지 않고도 VPC의 모든 subnet에 있는 인스턴스가 프라이빗 IP 주소로 서로 통신할 수 있도록 보장합니다. VPC의 CIDR 범위 내로 향하는 트래픽에서는 로컬 route가 항상 모든 사용자 지정 route보다 우선합니다.
# Describe the routes in a route table
aws ec2 describe-route-tables \
--route-table-ids rtb-12345678 \
--query 'RouteTables[0].Routes'
# Typical output shows:
# {DestinationCidrBlock: '10.0.0.0/16', GatewayId: 'local'}
# {DestinationCidrBlock: '0.0.0.0/0', GatewayId: 'igw-12345678'}Route 우선순위와 최장 접두사 일치
패킷이 route 테이블의 여러 route와 일치할 수 있는 경우 AWS는 가장 구체적인 접두사(가장 긴 일치 접두사)를 가진 route를 선택합니다. 예를 들어 10.0.0.0/8 → 피어링 및 10.1.0.0/16 → VPN route가 있다면 10.1.0.5를 대상으로 하는 패킷은 둘 다와 일치하지만 /16 route가 더 구체적이며(접두사가 더 김) 선택됩니다. route의 접두사 길이가 같으면 더 구체적인 gateway 유형이 우선합니다: local > VGW 전파됨 > 정적. 피어링, VPN 및 DX가 연결된 복잡한 네트워크를 설계할 때 이를 이해하는 것이 중요합니다.
IPv6와 인터넷 전용 Gateway
VPC는 IPv4와 함께 IPv6 CIDR 블록(Amazon 제공 /56)을 지원합니다. IPv6 인터넷 액세스의 경우 IGW가 IPv4와 IPv6를 모두 처리합니다. IPv6 전용 이그레스(인스턴스가 아웃바운드 IPv6 연결을 시작하도록 허용하되 인바운드는 차단)가 필요하면 Egress-Only Internet Gateway를 사용하십시오. IPv4 프라이빗 subnet의 NAT gateway와 기능적으로 유사하지만 IPv6 전용입니다. 인스턴스를 인바운드 IPv6 연결에 노출하지 않고 IPv6 아웃바운드 액세스를 활성화하려면 프라이빗 subnets에 ::/0 → eigw-xxxxxxxx route를 추가하십시오.
# Create an Egress-Only IGW for IPv6
aws ec2 create-egress-only-internet-gateway \
--vpc-id vpc-12345678
# Add IPv6 route in private subnet route table
aws ec2 create-route \
--route-table-id rtb-private \
--destination-ipv6-cidr-block '::/0' \
--egress-only-internet-gateway-id eigw-12345678Gateway Route Tables
Gateway route 테이블은 subnet이 아니라 Internet Gateway 또는 Virtual Private Gateway에 직접 연결되는 route 테이블입니다. 이 route 테이블은 인그레스 라우팅, 즉 인터넷에서 VPC로 들어오는 트래픽이 EC2 인스턴스에 도달하기 전에 검사하는 기능을 제공합니다. 모든 인바운드 트래픽을 확인해야 하는 인라인 보안 어플라이언스(IDS/IPS, 방화벽 가상 어플라이언스)에 사용됩니다. IGW route 테이블이 인바운드 트래픽을 Gateway Load Balancer 엔드포인트로 보내도록 구성하면, 엔드포인트가 트래픽을 보안 어플라이언스에 분산하고 검사 후 어플라이언스가 대상 EC2 인스턴스로 전달합니다.
VPN/DX의 Route 전파
VPN 또는 Direct Connect를 통해 온프레미스 네트워크를 연결하면 route 전파를 통해 온프레미스 route를 VPC route 테이블에 자동으로 전파할 수 있습니다. Virtual Private Gateway (VGW)의 route 테이블에서 전파를 활성화하면 온프레미스 라우터가 BGP를 통해 알리는 모든 route가 route 테이블에 자동으로 표시되므로 수동으로 route를 입력할 필요가 없습니다. 특히 온프레미스 subnets가 변경되는 동적 환경에서 유용합니다. 정적 VPN 연결의 경우 온프레미스 CIDR route를 수동으로 추가합니다.
# Enable route propagation from a Virtual Private Gateway
aws ec2 enable-vgw-route-propagation \
--route-table-id rtb-12345678 \
--gateway-id vgw-12345678여러 Route Tables 모범 사례
모범 사례는 각 계층마다 별도의 route 테이블을 만드는 것입니다. 공용 subnets용 테이블 하나(IGW route 포함), 프라이빗 앱 subnets용 테이블 하나(NAT gateway route 포함), 프라이빗 데이터 subnets용 테이블 하나(인터넷 route 없음, VPC 엔드포인트만 사용)를 만드십시오. 이렇게 하면 잘못 구성된 보안 그룹이 아웃바운드 트래픽을 허용하더라도 데이터 계층 인스턴스가 실수로 인터넷에 연결할 수 없습니다. route 테이블에 외부로 나가는 경로가 없기 때문입니다. route 테이블을 분리하면 계층별 네트워크 액세스 패턴을 감사하기도 쉬워집니다.
VPC Endpoint Routes
S3 또는 DynamoDB Gateway VPC Endpoint를 생성하면 AWS는 대상이 서비스의 관리형 접두사 목록이고 대상 경로가 VPC 엔드포인트인 route를 지정한 route 테이블에 자동으로 추가합니다. 이 route는 해당 subnets에서 S3 또는 DynamoDB로 향하는 트래픽이 인터넷 대신 AWS의 프라이빗 네트워크를 통과하도록 보장합니다. Gateway 엔드포인트는 무료이며 인스턴스가 많은 S3 트래픽을 생성하는 경우 NAT gateway 비용을 크게 줄일 수 있습니다. 운영 VPC에서는 프라이빗 subnet route 테이블에 항상 S3 및 DynamoDB gateway 엔드포인트를 추가하십시오.
# Create S3 gateway endpoint and add to route tables
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345678 \
--service-name com.amazonaws.us-east-1.s3 \
--route-table-ids rtb-private-app rtb-private-data트래픽 엔지니어링을 위한 Blackhole Routes
블랙홀 route는 대상 경로에 도달할 수 없는 route로, 트래픽을 의도적으로 폐기하는 데 사용됩니다. route의 대상 경로(예: VPN 연결 또는 Transit Gateway 연결)가 삭제되었지만 route는 남아 있을 때 AWS가 블랙홀 route를 생성합니다. VPC 내부에서 특정 IP 범위를 차단하기 위해 블랙홀 route를 의도적으로 생성할 수도 있습니다. 이는 보안 그룹 및 NACL과 구별되는 네트워크 수준의 트래픽 제어 메커니즘입니다. AWS에서는 route가 참조하는 엔드포인트 또는 gateway를 사용할 수 없게 되면 콘솔에서 블랙홀 route를 확인할 수 있습니다.
빠른 확인
이 단원에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 이해했는지 확인해 보십시오.
단원 요약
이 단원에서 학습한 내용은 다음과 같습니다. Internet Gateway는 VPC와 인터넷 간 통신을 가능하게 하며, VPC에 연결하고 subnet의 route 테이블에서 0.0.0.0/0 route로 참조해야 합니다, route 테이블은 최장 접두사 일치 우선순위가 적용되는 대상-대상 경로 쌍을 사용해 트래픽 방향을 제어합니다, 그리고 subnet 계층별로 route 테이블을 분리하면 아키텍처에 따라 트래픽 격리가 적용됩니다. 다음으로 프라이빗 subnet의 인터넷 액세스를 위한 NAT Gateways를 다루겠습니다.
자주 묻는 질문
“인터넷 게이트웨이 및 라우팅 테이블” 강의는 무료인가요?
네 — “인터넷 게이트웨이 및 라우팅 테이블” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“인터넷 게이트웨이 및 라우팅 테이블”에서 뭘 배우나요?
아웃바운드 인터넷 액세스를 활성화하도록 인터넷 게이트웨이를 연결하고 퍼블릭 서브넷의 라우팅 테이블을 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“인터넷 게이트웨이 및 라우팅 테이블” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- VPC 아키텍처 및 CIDR 블록
- 인터넷 게이트웨이 및 라우팅 테이블
- NAT 게이트웨이 및 프라이빗 서브넷
- 네트워크 ACL과 보안 그룹 비교