얼마 전, 근무하던 중 선배 개발자분께 AWS 상에서 VPC 구축하는 작업에 대해
설명을 듣고 배울 기회가 있었다.
한 번 듣고 나중에 잊어버리기엔 굉장히 유익한 내용이었어서,
나중에 다시 보려고 작성하는 글!
해당 포스트에서는, VPC 구축을 배우고 나서 필자가 추가로 찾아 본 기본 개념들을 정리하고, VPC를 실제로 구축하는 내용은 다음 포스트에서 다루어 볼 예정!
VPN과 VPC란?
VPN ( Virtual Private Network )
- 실제 존재하는 것이 아닌, 가상의 사설망
- 특정 사이트의 개별망들을 터널링 및 보안을 통해, 암호화된 패킷이나 경로를 구성하여 전용 네트워크처럼 안전한 통신을 제공하는 네트워크 기술
- VPN이 암호화된 터널을 통해 트래픽을 보호하고,
사용자들은 사설망에 연결된 것처럼 효율적으로 데이터를 교환할 수 있다!
cf. 터널링이란?
- 송신자와 수신자 간의 데이터를 프로토콜로 캡슐화하여 전송하는 기술
- 터널링 프로토콜의 종류
- PPTP ( Point-to-Pooint Tunneling Protocol )
- L2F ( Layer 2 Forwarding )
- L2TP ( Layer 2 Tunneling Protocol )
- IPSec
VPC ( Virtual Private Cloud )
-
사용자가 정의하는 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경
-
VPS(Virtual Private Server)와 달리, 다수의 virtual machine을 다룰 수 있으며, 하나의 서버로 제한되지 않는다.
-
VPS와 달리, 사용 주체인 사용자가 스스로 서비스를 관리할 수 있다.
→ 원하는 대로 서버를 켜고 끌 수 있음!
→ hourly pricing model을 가능케 함.
-
대표적인 VPC 제공 주체
- Amazon Web Services Elastic Cloud ( EC2 )
- Google Cloud
- Digital Ocean
- RackSpace
AWS VPC → AWS 내에서, private ip를 사용하는 가상 사설망을 만들 수 있게 해 주는 서비스
AWS 가용 영역 && 서브넷
AWS 가용 영역 : AZ(Availability Zone)
- 각 리전 내에 물리적으로 격리된 위치
- 일반적으로 리전당 3개의 가용 영역이 있다. (us-east-1의 경우 5개)
- 리전이 동일해도, 다른 가용 영역에 AWS 서비스를 배치하였다면,
물리적으로는 복수의 데이터 센터를 활용하는 것!
cf. AWS 리전(Region)
- 나라별 단위로, 인프라를 지리적으로 나누어 배포한 것을 의미
- Network latency(네트워크 지연시간) 최소화를 위해, 사용자와 리전을 가깝게 할 것
서브넷
- IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크
- IP 주소 체계의 Network ID와 Host ID를 구분하는 서브넷 마스크를 활용하여 만든다.
→ 서브넷 마스크를 이용하여 원본 네트워크를 여러 네트워크로 분리하는 과정을
서브네팅(Subnetting)이라고 한다.
서브네팅 예시
10.0.0.0/16
→ 10.0.0.0/20
- 서브넷 마스크의 bit 수가 4 증가 (Subnetting)
- Network ID를 나타내는 부분이 16비트 → 20비트로 증가
- Host ID를 나타내는 부분이 16개 비트에서 12개 비트로 감소
- 서브넷당 할당 가능한 호스트 수 ==
2^12 - 2
cf) - 2가 필요한 이유
- 가장 첫 번째 주소는 Network Address로, 마지막 주소는 Broadcast로 쓰여
호스트에 할당이 불가능함!
NAT ( Network Address Translation )
- 다수의 사설 IP(private IP)를 하나의 공인 IP(public IP)로 변환하는 기술
- 주소 변환 정보에 대해 IP 주소와 Port 번호로 구성된 Forwarding Table을 보관하고 있으며, 이를 통해 주소 변환을 실행함.
![]()
예시에 따른 NAT 작동 순서
사설 IP인 192.168.1.2
를 사용하는 호스트가 68.1.31.1
에 접근하고자 하는 경우
- 라우터가 NAT를 활용여 해당 요청에 public IP
101.89.101.12
와 포트 번호 5123
을 할당한다.
- 해당 요청이
68.1.31.1
호스트에 도달한다.
- 호스트는 이 요청의 IP를
101.89.101.12:5123
이라 생각하고 응답한다.
- 해당 응답이 다시 라우터에 도달한다.
- 라우터는 포트 번호
5123
을 인식한다.
- 라우터는 해당 포트가
192.168.1.2
호스트에 할당된 것임을 인식하여 응답을 반환한다.
NAT 사용 이유
- IPv4 상의 공인 IP 주소 절약을 가능하게 한다.
- 외부에서 local host에 직접 접근할 수 없도록 보호한다.
참고 자료
[ VPN && VPC ]
[ Subnet && AWS AZ ]
[ NAT ]