[cloud] AWS 강의 VPC, Subnet, Routing Table, Gateway
간만에 AWS를 좀 만져보려고 켰는데, 이놈의 AWS 인터페이스는 항상 눈돌아갈것 같이 복잡하고 더럽다.
IAM 계정 생성이나 EC2 인스턴스 생성 같은 기능들은 많이 포스팅을 하기 때문에 필자는 이런 부분들을 일단은 넘어가보도록 하겠다.
대신 네트워크와 보안 설정 부분을 집고 넘어가보려고 한다.
1. VPC(Virtual Private Cloud)
뭐 용어는 굉장이 거창한데, 별거없다 정말로. 클라우드 환경 내에 '가상 사설망' 인프라를 구성하는 기능이다. 좀 더 쉽게 설명해보자면 다음과 같다.
여러분들 홈 네트워크에서 IP를 보면 어떤 대역을 사용하고 있는가? 보통 일반적인 경우에 172.16.0.0/12 또는 192.168.0.0/16 대역을 사용하고 있을 것이다. 자 좀더 스코프를 좁혀서 설명해보겠다.
KT 공유기를 쓰는 집은 공유기 IP가 172.30.1.254, 게이트웨이 IP 172.30.1.1, 각 NIC들은 IP 대역 172.30.1.0/24 를 사용하고 있을 것이다.
SK 공유기를 사용하는 집은 공유기 IP가 192.168.45.1, 게이트웨이 IP는 잘 모르겠다, 각 NIC들은 IP 대역 172.45.1.0/24 대역을 사용하고 있을 것이다.
그리고 IPtime 공유기를 사용하는 집은 공유기 IP가 192.168.0.1, 게이트웨이 IP는 잘 모르겠다, 각 NIC들은 IP 대역 192.168.0.0/24 대역을 사용중일 것이다.
자 세계적으로 다음 세개 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)
공유기를 사용하는 내부망 환경 안에서 컴퓨터&핸드폰&TV 등등 다양한 장치들은 이런 사설 IP들을 부여받고, 공유기라는 네트워크 장비를 사용해서 외부와 통신을 한다.
VPC란 이런 네워워크 인프라(IP대역) 을 사용자 입맛에 맛게 설정할 수 있도록 도와주는 기능이다. 아래 사진을 보자.
필자는 10.10.0.0/16_VPC 라는 규칙을 하나 새로 작성했다. 해당 VPC는 필자가 좋아하는 IP 대역인 10.10.0.0/16 대역에 대해 IPv4 CIDR 을 설정했다.
이제 이 VPC 규칙 아래에 생성된 네트워크는 이 범위를 벗어날 수 없다.
2. Subnet
서브넷도 사실 뭐 별거없다. 말 그대로 서브넷, 서브 네트워크다. VPC에서 전체 네트워크 대역을 제한했다면, Subnet에서는 세부 IP 대역을 제한하고 분배하는 역할을 한다. 다음 예시를 보자
VPC에서 10.10.0.0/16 대역을 사용한다고 다시말하자면 10.10.0.0 ~ 10.10.255.255 대역 사이의 IP를 우리 마음대로 컨트롤 할 수 있다.
Subnet은 그 아래대역의 IP 를 다시 나누어 주는 기능이다.
1층에 있는 사람들은 10.10.10.0 ~ 10.10.10.255 IP 대역을 사용하게 하고싶고,
2층에 있는 사람들은 10.10.20.0 ~ 10.10.20.255 IP 대역을 사용하게 만들고 싶다.
이럴 때 Subnet으로 대역을 쪼개주는 것이다. 아래 그림처럼 말이다.
3. Routing Table
라우팅은 테이블은 네트워크 규칙을 정리한다. 예를 들자면
1층_Subnet에 묶인 NIC들을 외부와 통신이 되도록 만들고 싶다.
2층_Subnet에 묶인 NIC들도 외부와 통신이 되도록 만들고 싶다.
VPC와 연결해주고, 게이트웨이에 대한 라우팅 경로도 설정해준다.
4. Gateway
Gateway는 VPC와 외부망을 연결해주는 관문이다.
Gateway - VPC - Subnet - NIC 와 같은 구조로 연결이 되었고, Routing Table을 이용해 Subnet과 VPC 간의 규칙(흐름)을 정의해 주었다.
이런 연결 흐름을 볼 수 있다.
5. 인스턴스 생성
이렇게 설정이 끝났으면 인스턴스를 생성할때 VPC와 Subnet을 지정해주기만 하면 된다!