참고 자료
https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098
개념 정리
VPN(Virtual Private Network)
- 가설사설망
- 논리적으로 네트워크망을 분리
- 이미 물리적으로 구성된 네트워크 환경에서 보안 등의 이유로 활용됨
VPC(Virtual Private Cloud)
개념
- EC2 인스턴스들의 논리적 네트워크 그룹
- 다르게 표현하면, EC2에 VPN을 적용한 것
구축 과정
- VPC는 사설망(private network) 표준인 RFC1918 스펙을 만족하는 IP 주소 공간을 이용해야 한다.
- RFC1918 IP 주소 범위
- 24비트 블록: 10.0.0.0 - 10.255.255.255
- 20비트 블록: 172.16.0.0 ~ 172.31.255.255
- 16비트 블록: 192.168.0.0 ~ 192.168.255.255
서브넷(Subnet)
- VPC 내의 논리적 네트워크 그룹
- 더 많이 분리된 네트워크망을 만들기 위해 사용함
- VPC 의 IP 주소 공간의 안에서 IP 주소 공간을 할당 받음
- ex: VPC IP - 172.31.0.0/16, 서브넷A IP - 172.31.0.0/20, 서브넷A IP - 172.31.16.0/20
라우터와 라우팅 테이블
- 서브넷에서 네트워크 요청이 발생하면 우선 라우터로 향한다.
- 라우터엔 IP에 대해 어디로 요청을 보낼지 라우팅 테이블이 존재한다.
- 라우팅 테이블에서 VPC IP 주소 범위는 VPC 안에서 요청을 보내도록 맵핑되어 있다.
- 인터넷과 연결하기 위해, 라우팅 테이블에서 0.0.0.0/0 에 대해선 인터넷 게이트웨이로 요청을 보내도록 맵핑할 수 있다.
- 퍼블릿 서브넷: 인터넷과 연결된 서브넷
- 브라이빗 서브넷: 인터넷과 연결되지 않은 서브넷
인터넷 게이트 웨이
- VPC와 인터넷을 연결하는 게이트 웨이
- 외부 인터넷 통신이 필요한 경우, 라우팅 테이블에 0.0.0.0/0 -> IGW 로 맵핑을 추가하여 이용할 수 있다.
네트워크 ACL과 보안 그룹
-
네트워크 ACL과 보안 그룹은 인바운드, 아웃바운드 트래픽에 대해서 보안 정책을 설정
-
보안 그룹
- 기본 설정은 모두 차단
- 서브넷, 인스턴스에 적용 가능
- 보안 그룹이 더 높은 우선 순위를 가짐
-
네트워크 ACL
-
기본 설정은 모두 허용
-
서브넷에만 적용
NAT 게이트웨이
-
Natwork Address Translation, 즉 네트워크 주소 변환 서비스
-
프라이빗 서브넷이 인터넷과 통신하기 위한 아웃바운드 인스턴스
- 프라이빗 서브넷이 인바운드는 허용하지 않을지라도, 인스턴스의 펌웨어 같은 이유로 인터넷 아웃바운드 트래픽은 필요할 때가 있음
-
프라이빗 서브넷에서 외부로 아웃바운드 요청을 보내는 경우, 인터넷 게이트웨이로 해당 요청을 라우팅함
-
이를 네트워크 주소 변환이라고 하는 이유는 프라이빗 IP로는 외부 통신을 할 수 없으므로 이를 퍼블릭 IP로 변환하는 기능을 수행하기 때문. 변환 후 퍼블릭 IP로 IGW로 요청을 보낸다.