VPC
AWS VPC (Virtual Private Cloud)
VPC 란, 클라우드 환경에서의 "가상사설망" 이라고 생각할 수 있다.
공인 IP 를 사용해 내부망을 구성하게 되는데, VPC 내부에서 다시 서브넷으로 분리된다. 이 서브넷은 공개/비공개 서브넷으로 분류할 수 있다.
서브"넷" 이기 때문에 각자에게 IP 를 부여해야 한다. 원천 IP 는 하나이고 이것을 CIDR 라는 기준으로 서브넷 마스킹을 해서 프라이빗 IP 를 부여하게 된다. 예를 들면 134.25.35.17 이라는 공인 IP 를 가지고 있다고 하면, CIDR 이 134.25.35.0/24 일 경우 서브넷 A 는 134.25.35.3 이런 식으로 부여받는다.
CIDR 규칙
IPv4 클래스 주소를 클래스(Class A,B,C) 없이 표기하는 규칙이다.
마스킹 되지 않는 공인 IPv4 주소의 비트 수를 '/' 뒤에 붙인다.
ex) 134.25.35.0/24 (8*3 bit = 24)
VPC 는 내부에 가상 라우터를 가지고 있고, 가상 라우터는 라우팅 테이블을 확인해서 내부 서브넷의 통신을 처리한다. 라우팅 테이블은 기본적으로 1개가 존재하고, 커스텀 라우팅 테이블을 각 서브넷에 붙일 수 있다.
AWS 는 리전에서 자체적으로 1개의 Default VPC 를 기본 자원과 함께 설치한다. 사용자 VPC 는 리전별 최대 5개 까지 사용이 가능하다.
서브넷은 리전 별 가용영역 하나에 속해있다. 예를 들어 서울 리전의 경우 ap-northease-2(a~d) 중 하나에 서브넷이 속해 있어야 한다.
서브넷은 네트워크 ACL 을 통해 1차적으로 네트워크 트래픽 방화벽 역할을 수행하고, 인스턴스로 들어오는 트래픽은 보안 그룹(Security Group) 이 방화벽 역할을 수행한다. 네트워크 ACL 이나 보안 그룹이나, 인바운드(서버로 들어오는 방향) 및 아웃바운드(서버에서 인터넷으로 나가는 방향) 라는 트래픽 방향 정책을 설정할 수 있고, 각기 다르게 동작하므로 적절한 설정이 필요하다.
VPC 가 통신하는 네트워크 트래픽 Log 를 확인하려면 Amazon VPC Flow Logs 서비스로 확인할 수 있다.
VPC 에서 서브넷이 외부 인터넷과 통신하려면 반드시 인터넷 게이트웨이를 거쳐야 한다. 여기서 IP 를 변환해서 통신하려면 NAT 게이트웨이 라는 VPC 요소를 거쳐 인터넷 게이트웨이를 통해 인터넷과 통신할 수 있다.
VPC 내에 속한 서브넷이 외부 인터넷에 데이터를 전송하는 흐름
서브넷이 데이터(IP, 즉 L3 계층 이기 때문에 패킷을 의미)를 가상 라우터에 전달
가상 라우터는 라우팅 테이블을 확인하고 인터넷 게이트웨이에 데이터를 전달
인터넷 게이트웨이는 인터넷 구간과 통신
"프라이빗” 서브넷의 경우 가상 라우터에 데이터를 전달하여도 인터넷 게이트웨이로 전달하지 않는다.
VPC 설정 예시
VPC 가 사용하는 IP 가 10.0.0.0/16 일때 이 내부에 서브넷 마스크는 3 Octet (x.x.0.0~x.x.256.256) 부터 이므로 서브넷 IP 는 10.0.x.x/24 이상 이다.
0.0.0.0/0 으로 라우팅 테이블에 추가하면, 게이트웨이로 통신 한다는 뜻이다. (인터넷, NAT 공통, 타깃 설정)
10.0.0.0/16 으로 라우팅 테이블에 추가하면, VPC 로컬 통신이 가능하다는 뜻이다.
프라이빗 서브넷은 인터넷과 직접 통신을 할 수 없기 때문에, 통신 타겟을 인터넷 게이트웨이가 아닌, NAT 게이트웨이로 설정해야 한다.
Last updated