VPC는 AWS 클라우드 내에서 논리적으로 격리된 사용자 전용 가상 네트워크이다. 사용자가 정의한 가상 네트워크에서 AWS 리소스를 시작할 수 있게 해주는 서비스이다.
네트워크 정의
서브넷 구성
라우팅 테이블
인터넷 게이트웨이
NAT 게이트웨이/인스턴스
보안 그룹과 네트워크 ACL
VPC 피어링/VPN
엔드포인트
흐름 로그
VPC
서브넷
인터넷 게이트웨이
EC2 인스턴스
퍼블릭 서브넷의 웹 서버
프라이빗 IP: 10.0.1.100
퍼블릭 IP: 54.123.45.67
프라이빗 서브넷의 데이터베이스 서버
프라이빗 IP: 10.0.2.200
라우팅 테이블
퍼블릭 라우팅 테이블 (rtb-pub12345)
10.0.0.0/16 -> local
0.0.0.0/0 -> igw-1a2b3c4d
프라이빗 라우팅 테이블 (rtb-priv67890)
10.0.0.0/16 -> local
0.0.0.0/0 -> nat-1x2y3z (NAT 게이트웨이, 퍼블릭 서브넷에 위치)
1. 클라이언트에서 웹 서버 접근
클라이언트 IP: 203.0.113.10
목적지: http://54.123.45.67 (웹 서버 퍼블릭 IP)
클라이언트의 요청이 인터넷을 통해 VPC의 인터넷 게이트웨이(igw-1a2b3c4d)에 도달
인터넷 게이트웨이는 퍼블릭 IP(54.123.45.67)를 프라이빗 IP(10.0.1.100)로 변환
퍼블릭 라우팅 테이블(rtb-pub12345)을 참조하여 트래픽을 10.0.1.100으로 라우팅
웹 서버(EC2 인스턴스)가 요청을 받아 처리
2. 웹 서버에서 데이터베이스 서버 접근
출발지: 10.0.1.100 (웹 서버)
목적지: 10.0.2.200 (데이터베이스 서버)
웹 서버의 요청이 VPC 내부 네트워크로 전송
퍼블릭 라우팅 테이블(rtb-pub12345)의 로컬 라우트(10.0.0.0/16 -> local)에 따라 처리
VPC 내부 네트워크를 통해 데이터베이스 서버(10.0.2.200)로 직접 라우팅
3. 데이터베이스 서버의 인터넷 접근 (필요시)
출발지: 10.0.2.200 (데이터베이스 서버)
목적지: 인터넷 (예: 8.8.8.8)
데이터베이스 서버의 요청이 프라이빗 라우팅 테이블(rtb-priv67890) 참조
0.0.0.0/0 -> nat-1x2y3z 라우트에 따라 NAT 게이트웨이로 전송
NAT 게이트웨이가 자신의 퍼블릭 IP를 사용하여 인터넷으로 요청 전송
응답이 NAT 게이트웨이를 통해 다시 데이터베이스 서버로 전달
4. 웹 서버의 응답 과정 (아웃바운드 트래픽)
출발지: 10.0.1.100 (웹 서버 프라이빗 IP)
목적지: 203.0.113.10 (클라이언트 IP)
웹 서버의 응답이 VPC 내부 네트워크로 전송
퍼블릭 서브넷의 라우팅 테이블(rtb-pub12345) 참조
트래픽이 인터넷 게이트웨이(igw-1a2b3c4d)에 도달
인터넷 게이트웨이가 프라이빗 IP(10.0.1.100)를 퍼블릭 IP(54.123.45.67)로 변환
변환된 패킷이 인터넷을 통해 클라이언트(203.0.113.10)로 전송
클라이언트가 웹 서버의 퍼블릭 IP(54.123.45.67)에서 온 응답을 받음
CIDR은 IP 주소 할당 방법으로, 클래스 기반 주소 지정 방식의 한계를 극복하기 위해 도입되었다.
CIDR 표기법
IP 주소/프리픽스 길이
예: 192.168.1.0/24
프리픽스 길이
네트워크 부분의 비트 수를 나타낸다.
범위: 0-32 (IPv4의 경우)
CIDR 계산법
사용 가능한 IP 주소 수 계산
공식: 2^(32 - 프리픽스 길이) - 2
예: 192.168.1.0/24
32 - 24 = 8
2^8 - 2 (특수목적 IP) = 254개의 사용 가능한 IP 주소
네트워크 주소와 브로드캐스트 주소 찾기
네트워크 주소: CIDR 블록의 첫 번째 주소
브로드캐스트 주소: CIDR 블록의 마지막 주소
서브넷 마스크 계산
프리픽스 길이만큼 1을 채우고 나머지는 0으로 채움
예: /24 = 11111111.11111111.11111111.00000000 = 255.255.255.0
IP 범위 계산
시작 IP: 네트워크 주소 + 1
끝 IP: 브로드캐스트 주소 - 1
예시: 192.168.1.0/24
사용 가능한 IP 주소 수: 2^(32-24) - 2 = 254
네트워크 주소: 192.168.1.0
브로드캐스트 주소: 192.168.1.255
서브넷 마스크: 255.255.255.0
IP 범위: 192.168.1.1 - 192.168.1.254
사설 IP (프라이빗 IP) 주소의 개념은 주로 공용 IP (퍼블릭 IP) 주소의 고갈 문제를 해결하기 위해 도입되었다.
IP 주소 고갈 문제
IPv4는 약 43억개의 고유 주소를 제공한다.
인터넷의 급속한 성장으로 이 주소들이 빠르게 소진되었다.
사설 IP의 도입
1994년 RFC 1918에서 사설 IP 주소 범위를 정의했다.
이를 통해 내부 네트워크에서 재사용 가능한 IP 주소 공간을 만들었다.
사설 IP 주소 범위
10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8)
172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12)
192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16)
NAT (Network Address Translation)
사설 IP를 사용하는 디바이스들이 인터넷과 통신할 수 있게 해주는 기술이다.
하나의 공용 IP로 여러 개의 사설 IP를 사용하는 디바이스들이 인터넷에 접속할 수 있게 한다.
장점
IP 주소 절약: 하나의 공용 IP로 여러 디바이스가 인터넷을 사용할 수 있다.
보안 강화: 내부 네트워크 구조를 외부에서 직접 볼 수 없다.
네트워크 설계 유연성: 조직 내부에서 IP 주소를 자유롭게 할당할 수 있다.
좋아요