VPC?

AWS 서비스 안에서 클라우드 내 프라이빗 공간을 제공함으로써, 클라우드를 퍼블릭과 프라이빗으로 분리할 수 있다.

 

 VPC가 없었을 땐, 클라우드 내의 리소스를 격리할 방법이 없었다. 해서 인스턴스들이 서로 연결됨과 동시에 인터넷과도 연결되어 시스템의 복잡도를 어마어마하게 높이고, 의존도 또한 늘려버렸다. 이 말은 즉, 시스템의 유지/관리에 돈과 시간이 많이 든다는 뜻이다.

 하지만 VPC는 각 인스턴스의 구획을 분리함으로써 확장성을 가질 수 있고, 클라우드 시스템 네트워크에 대한 통제를 할 수 있다.

 

VPC 설정

VPC 설정에는 크게 4단계가 있다.

  1. 먼저 프라이빗 네트워크 안에서 사용할 수 있는 프라이빗 ip주소 범위를 설정한다.
  2. 가져온 네트워크 범위를 서브넷으로 나눠 바운더리를 나눠준다.
  3. 인터넷으로 연결되어 통신할 수 있게끔 라우팅 설정하기
  4. 접속이 허용된 사람이 프라이빗 클라우드에 접속 할 수 있도록 설정하기

VPC의 라우팅 기법 CIDR(Classless inter-domain routing)

CIDR는 사이더라고 불리우며, 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한 국제 표준의 IP주소 할당 방법이다. ()

기존에는 클래스에 따라 정해진 Network Address와 Host Address를 사용해야 했다면, CIDR은 원하는 블록만큼 Network Address를 지정해 쓸 수 있다.

예시를 들자면, 

여기서 /16은 첫 16bit를 Network Address로 사용한다는 의미로, 총 2^16인 65,536개의 IP주소를 사용할 수 있는 네트워크 블록을 표시한다.

 

AWS에서는 RFC 1918에 명시된 ip주소를 사용할 것 권장한다. 해당 ip주소 대역을 한번 살펴보면 다음과 같다.

왜냐하면 이 RFC규약을 안지키고 ip주소 대역을 사용하면 퍼블릭 ip와 프라이빗 ip가 엉켜서 네트워크 통신에 혼선이 올 가능성이 있기 때문이다.

 

서브넷(Subnet)

서브넷은 서브네트워크(Subnetwork)의 줄임말로 IP 네트워크의 논리적인 하위 부분이다. 서브넷을 통해 하나의 네트워크를 여러 개로 나눌 수 있다. VPC를 사용하면 퍼블릭 서브넷, 프라이빗 서브넷, VPN only 서브넷 등, 필요에 따라 다양한 서브넷을 생성하면 된다.

  • 퍼블릭 서브넷 : 인터넷을 통해 연결 할 수 있는 서브넷
  • 프라이빗 서브넷 : 인터넷을 연결하지 않고, 보안을 유지하는 배타적인 서브넷
  • VPN only 서브넷 : 기업 데이터 센터와 VPC를 연결하는 서브넷

서브넷은 VPC의 CIDR 블록을 이용해 정의되며, 최소 크기의 서브넷은 4bit부분만 서브넷으로 사용하는 /28 이다. 이때 주의 할 점은 서브넷은 AZ당 최소 하나를 사용할 수 있고, 여러 개의 AZ에 연결되는 서브넷은 만들 수 없다.

VPC 서브넷 권고사항

두번째 /24 서브넷에서 가용주소의 갯수가 251개인 이유는 AWS가 확보한 서브넷 중 처음 네 개의 IP주소와 마지막 IP주소는 AWS측에서 네트워크 관리를 위해 사용하기 때문이다. 그래서 예를 들어, 10.0.0.0/24 체계의 CIDR 블록이 있는 서브넷에서 10.0.0.0, 10.0.0.1, 10.0.02, 10.0.0.3, 10.0.0.255 등 5개의 IP주소는 사용자가 사용하지 않고, AWS에서 사용한다.

 

라우팅 테이블(Routing Table)

트래픽의 전송 방향을 결정하는 라우트 규칙을 만들어 정리한 것 라우팅 테이블이라고 한다. 

즉, 라우팅 테이블은 하나의 지점에서 또 다른 지점으로 가기 위한 모든 정보를 제공하기 위한 테이블이다.

 

특정 VPC의 서브넷이 라우팅 테이블에 인터넷 게이트웨이(VPC와 인터넷 간 통신을 가능하게 하는 구성요소)를 포함하고 있다면, 해당 서브넷은 인터넷 액세스 권한 및 정보를 가지게 된다.

aws 라우팅 테이블 예시

각각의 서브넷은 항상 라우팅 테이블을 가지고 있어야 하며, 하나의 라우팅 테이블 규칙을 여러 개의 서브넷에 연결하는 것도 물론 가능하다. 서브넷을 생성하고 별도의 라우팅 테이블을 생성하지 않는다고 하더라도 AWS 클라우드가 자동으로 VPC의 메인 라우팅 테이블을 연결한다.

 

VPC 네트워크 보안

Network ACLs

서브넷 단위로 적용가능한 방화벽이다.

 다만 적용방식이 stateless(비연결) 즉, 상태를 보관하지 않는다. 그래서 인바운드로 80번 포트를 열어줬다면, 80번포트의 아웃바운드가 같이 허용되는 것이 아니라 관리자가 따로 설정해줘야만한다.

기본적으로 모든 트래픽을 block하도록 설정돼있기 때문에 연결을 하고싶다면 따로 설정해줘야한다.

AWS VPC NACL

보안 그룹

인스턴스에 대한 인바운드/아웃바운드 트래픽을 제어하는 가상 방화벽이다.

 NACL과 다른 점은 보안 그룹은 stateful(연결) 즉, 상태를 보관한다. 그래서 인바운드로 80번 포트를 열어줬다면, 기본 아웃바운드 설정이 미허용이더라도 80번 포트에서 통신을 했던 상태(state)를 기억하고 있기 때문에 따로 설정해주지 않더라도 데이터의 왕래가 가능하다.

 

VPC 간 연결: VPC peering

 인증, 로깅과 같은 기능의 공통 모듈을 만들어서 서비스 구축에 적용하고자 할 때, 이 리소스들을 외부와 격리시킨 네트워크에서 사용하도록 하고싶을 때 VPC peering기능을 사용해 데이터센터 - 데이터센터 간의 직통라인처럼 VPC간의 연결을 해서 훨씬 프라이빗한 통신을 가능하게 해준다.

 

 VPC 피어링을 통해서 VPC간의 연결을 하면, 각각 VPC가 가진 보안 그룹들을 서로 참조할 수 있어 보안성을 강화할 수 있다.

 여담으로 다른 계정이 가진 VPC와도 peering을 할 수 있다.

VPC peering 절차

VPC 피어링은 그냥 설정만 한다고 만들어지는 것이 아니다. 그래서 어떻게 만들어지는지 살펴보면

  1. 한쪽에서 피어링 요청을 시작한다.
  2. 피어링 요청을 받은 VPC가 요청을 수락하고, 수락한 응답을 요청한 쪽으로 보낸다.
  3. 양쪽에서 서로에게 통신할 수 있도록 설정하는 라우팅 테이블을 만들어준다.

이렇게 편해보이는 VPC 피어링에서 제약사항이 있다.

 위 이미지에서 볼 수 있듯이 A-C, A-D간 통신은 가능하지만, C-D경로의 통신은 불가능하다. 이것은 VPC의 프라이빗한 특성을 보호할 수 있는 특성이다.

 

서비스(회사) 네트워크와 VPC의 연결

비즈니스의 중요한 정보가 오고가는 통신환경에서 인터넷을 통해 VPC - 회사 간의 통신을 한다는 것은 보안적으로 굉장히 부담스러운 일이다. 그래서 VPC에서는 회사네트워크와 프라이빗하게 연결할 수 있는 방법을 제공하고 있다.

 

VPN(Virtual Private Network)

VPN연결 개요도

 먼저 VPN을 사용해서 프라이빗한 연결을 구현하기 위해서는 먼저 연결하고자하는 회사측의 VPN 장비가 필요하다.

이것을 AWS VPC에 있는 Gateway에 연결하면된다.

 아 혹시라도 회사의 VPN장비와 AWS VPN이 호환이 안되면 어떡하지? 라는 고민은 하지 않아도 좋다.

 VPC VPN연결을 설정할 때, 회사측의 VPN 장비가 어떤장비인지 AWS에게 알려주면, AWS측에서 맞춤 연결을 해주기 때문이다.

VPN과 AWS Direct Connect


참고 : https://www.youtube.com/watch?v=R1UWYQYTPKo 

aws 코리아 vpc 구축 기본사항 안내영상

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-VPC-%EA%B0%9C%EB%85%90-%EC%82%AC%EC%9A%A9-%EB%B3%B4%EC%95%88-%EC%84%A4%EC%A0%95-Security-Group-NACL#security_group_%EB%B3%B4%EC%95%88%EA%B7%B8%EB%A3%B9

 

[AWS] 📚 VPC 개념 & 사용 - 보안 설정 [Security Group / NACL]

VPC 방화벽 [Security Group / NACL] 이번엔 VPC의 트래픽을 통제하고 제어하는 서비스들을 살펴보자. 이 서비스들은 흔히 특정 IP를 밴 한다거나 외국에서는 접속을 못하게 한다거나 등 이러한 방화벽

inpa.tistory.com

 

+ Recent posts