개념 설명

  1. VPN
  2. VPC
  3. VPC를 구축하는 과정
    • 서브넷
    • 라우팅 테이블
    • 인터넷 게이트웨이
    • 네트워크 ACL과 보안그룹
    • NAT 게이트웨이
  4. 마치며
  • AWS VPC에 대해서 알아보겠습니다.
  • 2019년에 VPC를 모든 사용자에게 강제적으로 적용하였기에 VPC를 아는 것은 정말 중요합니다.
  • VPC에 알아보기전에 VPN이라는 개념을 먼저 설명하도록 하겠습니다.

VPN(Virtual Private Network)

  • VPN은 여러 컴퓨터를 잇는 사설 네트워크를 만들때 일일이 전선으로 연결하기는 돈이
    많이 들고 물리적으로 보안에 취약하기 때문에 인터넷 네트워크암호화 기술을 이용하여
    통신 시스템을 구축하는 것을 말합니다.

  • 예를 들어 회사에서 내부인들만 쓸수 있도록 특수목적의 인트라넷을 구축할 때 해당 되는 컴퓨터만 전용선으로 연결해서 제3자가 함부로 접근하지 못하게 합니다.

  • 하지만 회선이 없는 지역이거나 규모가 커지게 되면 전용선 구축 비용이 엄청나지기 때문에 확장성이 뛰어난 인터넷을 인트라넷처럼 사용할 수 있게 만든것이 VPN(가상 사설망)입니다.

  • 이 개념을 Cloud에 적용한 것이 바로 VPC입니다.


VPC(Virtual Private Cloud)

  • VPC는 리전에 종속되며 AWS내에 격리된 네트워크를 만들어줍니다.

  • VPC는 이름과 IPv4 CIDR 블록필수적으로 가집니다.

  • 클라우드에서 생성하는 자원들은 기본적으로 특정 네트워크 위에서 생성되며 이에 접근하기
    위한 프라이빗 IP를 가집니다.

  • 이 리소스들은 특정한 VPC 위에서 만들어집니다. 따라서 VPC의 CIDR 범위 안에서 적절한
    IP를 할당 받게 됩니다.

  • 하나의 VPC의 최대 크기는 16이며 이 경우 2^(32-16)=65536개의 IP를 사용할 수 있습니다.

  • 인터넷이 필요한 경우 반드시 사설망 대역을 사용해야하며 가능한 사용하는것을 권장합니다.

  • VPC를 생성하는 것은 쉽지만 한번 만들고 나면 기존 CIDR를 변경하기 불가능하기 때문에
    제약 조건들을 잘 생각하고 만들어야합니다.

  • 사설망 대역은

    • 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
    • 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
    • 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)입니다.
  • 기본 VPC의 CIDR은 172.31.0.0/16입니다.

CIDR : IP의 범위를 지정하는 방식입니다.
CIDR 블록은 IP 주소와 슬래시(/) 뒤에 따라오는 넷마스크 숫자로 구성되어있습니다.
(/) 뒤의 숫자는 IP 범위를 나타냅니다.
2^(32-n)개를 나타내기에 /32면 앞에 IP 단 하나를 가리킵니다.
EX) 192.168.0.0/32의 경우 192.168.0.0을 나타냅니다.



VPC를 구축하는 과정



서브넷(Subnet)


* 서브넷 없이 VPC는 사용할 수 없습니다.

* 서브넷은 VPC가 지정한 IP범위를 작게 쪼개 사용할 수 있도록 합니다.

* IP를 사용할 수 있는 가용존의 크기를 고려해 적절한 크기의 서브넷들을 분산해서 사용합니다.

* 서브넷의 최대 크기는 VPC의 최대 크기와 같습니다.

* 일반적으로 2개 이상의 가용존을 만들어 사용합니다.

2개이상의 서브넷을 만드는 이유는 장애 대응과 관련이 있습니다.
하나의 가용존에 문제가 생기더라도 서비스에 장애가 발생하지 않게 서브넷을 최소 2개
이상 만드는 것을 권장합니다.




라우트 테이블(Route Table)

  • 라우트 테이블은 서브넷과 연결되어 있는 리소스입니다.

  • 서브넷에서 네트워크를 이용할 때는 이 라우트 테이블을 사용해서 목적지를 찾게 됩니다.

  • 라우트 테이블은 서브넷과 연결되어 있지만 VPC를 생성할 때 만들어지고 VPC에도 연결되어 있습니다.

  • 이 라우트 테이블은 VPC에 속한 서브넷을 만들때 기본 라우트 테이블로 사용됩니다.

  • VPC의 CIDR 블럭을 목적지로 하는 경우 내부 범위에서 찾습니다.

  • 인터넷을 연결하거나 다른 VPC와 통신하기 위해서는 라우트 테이블에 라우트 규칙을 추가로 정의 해야만 합니다.

    사설망 대역을 사용해야 되는 이유는 라우트 테이블의 기본 규칙이 VPC의 CIDR에 따라
    적용되기 때문입니다.
    따라서 사설망이 아닌 CIDR을 사용하면 인터넷과 연결하는 라우트 규칙을 정의하더라도
    통신할 수 없게 됩니다.




인터넷 게이트웨이(Internet Gateway)

  • VPC는 기본적으로 격리된 네트워크 환경입니다. 따라서 VPC에서 생성된 리소스들은 기본적으로 인터넷을 사용할 수가 없습니다.

  • 인터넷에 연결하기 위해 사용되는 것이 인터넷 게이트웨이입니다.

  • 라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷에 인터넷과 연결됩니다.

  • 서브넷과 인터넷 게이트웨이를 연결하는 것 만으로 인터넷을 사용할 수 없기에 인터넷을 사용하고자 하는 리소스는 퍼블릭 IP를 가지고 있어야합니다.

  • 인터넷과 연결되는 서브넷을 퍼블릭 서브넷, 연결되지 않는 서브넷을 프라이빗 서브넷으로 부릅니다.




네트워크 ACL(Network ACL) / 시큐리티 그룹(Security Group)

  • 네트워크 ACL은 주고 받는 트래픽을 제어하는 가상 방화벽입니다.

  • 하나의 네트워크 ACL은 다수의 서브넷에서 재사용할 수 있습니다.

  • 시큐리티 그룹은 인스턴스 앞단에서 트래픽을 제어하는 가상 방화벽인 반면, 네트워크 ACL은 서브넷 앞단에서 트래픽을 제어하는 역할을 합니다.

  • 네트워크 ACL의 규칙을 통과하더라도 시큐리티 그룹의 규칙을 통과하지 못하면 인스턴스와는 통신할 수 없습니다.

  • 이 두 가지 리소스를 통해 안전한 네트워크 환경을 구축할 수 있습니다.





NAT 게이트웨이

  • NAT 게이트웨이는 프라이빗 서브넷이 인터넷과 통신하기 위한 아웃바운드 인스턴스입니다.

  • 프라이빗 네트워크가 외부에서 요청되는 인바운드는 필요없더라도 인스턴스의 펌웨어나 혹은 주기적인 업데이트가 필요한 경우 NAT 게이트웨이를 사용합니다.

  • 퍼블릭 서브넷상에서 동작하는 NAT 게이트웨이는 프라이빗 서브넷에서 외부로 요청하는 아웃 바운드 트래픽을 받아 인터넷게이트와 연결합니다.






마치며

  • 공부하며 정리한 내용입니다. 틀린 부분이 있으면 말씀해주시면 감사하겠습니다.
  • AWS VPC를 공부하시는데 도움이 되셨으면 좋겠습니다.
profile
백엔드 개발자

0개의 댓글