본문 바로가기
AWS

[VPC] 개념정리

by yonikim 2022. 5. 6.
728x90

VPC (Virtual Private Cloud) 란?

  • 사용자만의 가상 사설 네트워크를 구성할 수 있게 해주는 AWS 서비스이다.
  • 서비스 이용에 추가 비용이 없다.
  • Security Group 에서 outboud 관련 제한 설정도 가능하다. (VPC 가 아닌 경우에는 inbound 만 설정 가능)
  • VPC 내부에 여러개의 subnet 을 구성할 수 있다.
  • AWS EC2 인스턴스에 사설 IP 를 직접 지정할 수 있다.

 

VPC 구성요소

  • Network Interfaces
    • 기본적으로 인스턴스마다 VPC 대역 내의 사설 IP 가 할당된 Network Interface 가 있다. 
    • 사용자가 ENI(Elastic Network Interface) 를 추가할 수도 있다.
    • 기본 사설 IP 외에 추가적인 사설 IP 를 가질 수 있다.
    • eth0 으로 이용하는 Network Interface 에는 자동 할당된 한 개의 공인 IP 를 이용할 수 있다.
    • 사설 IP 하나당 Elastic IP 를 가질 수 있다.
    • 하나 이상의 Security Group 을 가질 수 있다.
    • MAC 주소가 있다.
    • ENI 를 다른 인스턴스에 재할당할 수 있다. 이 때 ENI 에 할당된 설정들이 그대로 적용된다.
  • IP Addresses
    • VPC 내부에 있는 인스턴스에 사설 IP 와 공인 IP 를 할당할 수 있다.
    • Primary private IP 와 Public IP 가 NAT 를 통해서 매핑되어 있다.
    • 필요하다면 Secondary private IP 를 할당할 수도 있다.
    • Public IP 는 고정이 아니라서 변경될 수 있기 때문에 고정 Public IP 를 사용하기 위해선 Elastic IP 를 이용해야 한다.
  • Subnet
    • 하나의 VPC 안에 여러개의 subnet 이 존재 가능하다.
    • 하나의 subnet 은 하나의 zone 내부에만 구성 가능하다. 하나의 subnet 이 여러개의 zone 에 걸쳐서 구성될 수 없다.
    • Default subnet 은 public subnet 으로, 사설 subnet 으로도 변경 가능하다.
    • VPC 는 자동으로 메인 라우팅 테이블을 가지고 있고, 이 라우팅 테이블은 사용자가 변경 가능하며 추가할 수도 있다.
    • 각 subnet 은 라우팅을 조절하는 Route Table 에 연결되어 있어야 한다. 따로 명시하지 않으면 메인 라우팅 테이블과 연결된다.
    • 각 route 는 목적지 CIDR 과 target 을 명시해야 한다.
  • Route Table
    • 네트워크 트래픽을 라우트(route)하는 규칙들을 가지고 있다.
    • 각 subnet 마다 route table이 있으며, 여러 subnet 이 동일한 Route Table 을 가질 수 있다.
  • Internet Gateway
    • VPC 가 기본 생성되었을 때는 인터넷에 연결이 안되어 있다.
    • VPC에 Internet gateway 를 연결해 줘야지만 VPC 내부 인스턴스들에서 인터넷으로 접근할 수 있다.
  • NAT Instances
    • 사설 subnet 에 있는 인스턴스들은 인터넷에 접근할 수 없지만 사설 subnet 에서 접근할 수 있는 NAT(Network Address Translation)용 인스턴스를 Public subnet 에 만듦으로써 사설 subnet 에 있는  인스턴스들은 인터넷에 접근할 수 있다.
    • [접근 방법]
      사설 subnet 에 있는 인스턴스들에서 나가는 트래픽은 우선 Route Table 로 가게 되고, Route Table 은 그 트래픽들을 NAT 로 보낸다. 그러면 NAT 는 그 트래픽들을 Internet Gateway 로 보내서 외부 통신이 가능하게 된다. 인터넷에서 들어오는 트래픽은 NAT 인스턴스를 통해서 사설 subnet 으로 가게 된다.
      NAT 인스턴스는 EC2 인스턴스를 생성할 때는 community AMIs 에 있는 Amazon Linux 용 AMI 중에서 NAT 와 관련된 AMI 를 이용하여 생성하면 된다. NAT 인스턴스가 만들어지면 Management console 에서 우클릭해서 [Change Source/Dest. Check] 메뉴를 클릭하여 disabled 해줘야 한다. (EC2 인스턴스는 기본적으로 source, destination 을 확인하는데, 이걸 확인하지 않도록 해서 source 나 destination 이 자기 자신이 아닌 트래픽을 주고 받을 수 있게 해주는 것)
  •  DHCP options set
    • DHCP(Dynamic Host Configuration Protocol) 은 호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해주는 프로토콜을 말한다.
    • DHCP 메세지의 options 필드는 도메인 이름, DNS, netbios-node-type같은 파라미터들을 포함하고 있다.
  • Security Group 
    • EC2 인스턴스에 직접 연결돼서 인바운드, 아웃바운드 트래픽을 조절할 수 있는 방화벽이다.
    • allow 규칙만 설정 가능하다.
    • VPC 당 100개까지만 생성할수 있고, 하나의 Security Group 에는 50개까지의 룰만 설정 가능하다.
    • 인스턴스 하나에 5개까지 Security Group 을 설정할 수 있다.
    • Stateful 한 방화벽이다.
  • Network Access Control List (ACL)
    • 서브넷에 연결되어서 인바운드/아웃바운드 트래픽을 조절할 수 있는 방화벽이다.
    • allow, deny 규칙 모두 설정 가능하다.
    • Stateless 한 방화벽이다. 따라서 Ephemeral port 를 직접 열어줘야 한다.
    • 규칙에 대한 번호가 있어서 작은 번호부터 정해진 순서대로 규칙이 적용된다.
    • 최대 32766개의 규칙순서가 있고, AWS 기본 권장은 규칙번호를 정할때 100단위로 정하는 것이다.
  •  Virtual Private Gateway
    • AWS 에 있는 VPN 커넥션이다.
    • AWS VPC 와 외부 사용자가 이용하고 있는 내부 네트워크 간의 연결에 이용한다.
  • Customer Gateway
    • VPN 커넥션에 사용되는 사용자측 물리적 장비나 소프트웨어이다.
    • AWS VPC 와 외부 사용자가 이용하고 있는 내부 네트워크 간의 연결에 이용한다.
  • Dedicated Instances
    • 일반적인 EC2 인스턴스들은 다른 사용자와 하드웨어 자원을 공유하지만 VPC 안에서 dedicated 옵션을 이용하면 전용 하드웨어를 이용할 수 있다.
    • VPC 에 강제로 전체 설정할 수도 있고, 필요한 EC2 인스턴스에만 지정하게 할 수도 있다.
    • 몇몇 AWS 서비스에는 적용할수 없다. ex) RDS, EBS
  • VPC Peering
    • 2개의 VPC간에 사설 IP를 이용해서 통신가능하게하는 커넥션이다.
    • 같은 region 안에 있는 다른 AWS 계정에 속한 VPC 들을 같은 네트워크에 있는 것으로 인식하게 한다. 

 

VPC 를 구성하는 핵심 요소들

 

 

 

 

 

 

 

References

https://arisu1000.tistory.com/27744

 

 

728x90