[AWS] VPC, 서브넷

민정·2023년 7월 10일
0

AWS

목록 보기
5/11

📍 VPC (Amazon Virtual Private Cloud)

  • AWS의 데이터센터에 있는 전용 기기에서 서버나 네트워크 장비가 가진 기능을 에뮬레이션하는 소프트웨어를 작동시켜, 물리적인 기기를 이용하지 않고, 가상의 네트워크를 구축할 수 있다.
  • 각각의 VPC끼리는 독립적이므로 서로 영향을 미치지 않는다.

🛠️ VPC 생성시 필요한 내용

1. 이름 태그

  • VPC를 식별하는 이름
  • 자유롭게 지정하면 되고, 추후 수정도 가능하다.

2. IPv4 CIDR 블록

  • VPC에서 이용하는 프라이빗 네트워크의 IPv4 주소 범위
  • 값 : 10.0.0.0/16
  • 프라이빗 네트워크용 IP 주소 범위는 아래의 3가지이다.
    1. 24비트 블록 : 10.0.0.0 ~ 10.255.255.255
    2. 20비트 블록 : 172.16.0.0 ~ 172.31.255.255
    3. 16비트 블록 : 192.168.0.0 ~ 192.168.255.255

단, VPC로 지정할 수 있는 서브넷 마스크는 최대 16비트라는 제한이 있어 어떤 범위를 이용해도 달라지는 것은 없다.

3. IPv6 CIDR 블록

  • VPC에서 이용하는 프라이빗 네트워크의 IPv6 주소 범위
  • VPC에서 IPv6의 이용여부를 지정한다.
  • 보통은 없음을 선택한다.

4. 테넌시

  • VPC 리소스의 전용 하드웨어에서의 실행 여부
  • 기본값은 다른 AWS 계정과 하드웨어 리소스를 공유하도록 선택하는 것이다.
  • 신뢰성이 매우 중요한 시스템의 경우에는 전용으로 설정하는 것을 검토해보는 것이 좋다.
    • 전용으로 설정할 경우 비용이 추가된다.

IP 주소와 CIDR

  • IP 주소 : 네트워크상의 기기가 통신할 때 도착지가 되는 정보
  • CIDR(Classless inter-domain routing) : IP주소를 관리하는 범위를 결정하는 방법의 하나

기본 VPC와 Subnet

  • 기본적으로 계정을 생성하면 VPC 1개와 각 AZ별 public Subnet이 1개, IGW가 생성된다.

📍 서브넷과 가용영역

  • VPC안에는 1개 이상의 서브넷을 만들어야한다.

  • 서브넷: VPC의 IP주소 범위를 나누는 단위

  • 가용영역(AZ : availbility zone) : 각 리전안의 여러 독립된 위치


🤓 Q. 서브넷, 즉 VPC의 IP 주소 범위를 나누는 이유

1. 역할 분리

  • 예) 로드밸런서는 외부 공개가 목적, DB 서버는 VPC 내부 서버에서의 사용을 전제
  • 내/외부 공개 규칙을 각 리소스마다 개별적으로 할당하지 않고, 리소스가 포함된 그룹 전체에 대해서 할당하면 설정 누락을 피할 수 있다.

2. 기기 분리

  • 서로 다른 서브넷이더라도 물리적으로 같은 기기에 대한 서브넷 구성이라면, 해당 물리 기기에 고장이 발생했을 때, 해당 서브넷들에 리소스들을 모두 이용할 수 없게된다.
  • 가용영역이 다르면 독립된 기기임을 보장할 수 있다.
  • 따라서 가용영역이 다른 서브넷을 구성하면 여러 서브넷을 동시에 이용하지 못하는 가능성을 낮출 수 있다.

결론

  • 내, 외부 공개 범위 분리
  • 서로 다른 AZ에 서브넷을 생성해 물리적인 기기 분리

🛠️ IPv4 CIDR 설계 방법

  • 서브넷 생성 이후, 해당 서브넷이 이용하는 CIDR 블록 수정 불가능
  • CIDR 설계시에는 아래의 두가지를 고려해야한다.
    1. 생성할 서브넷의 수
    2. 서브넷 안에 생성할 리소스 수
  • IPv4 = 총 32개의 비트로 구성
  • VPC 서브넷 마스크 최대 16비트
  • 남은 것은 16비트 = 서브넷 비트 수 + 리소스 비트수

서브넷 수와 리소스 수는 반비례 관계다.

  • 서브넷 마스크 = VPC 비트 수 + 서브넷 비트 수

📍 인터넷 게이트웨이

  • VPC에서 생성된 네트워크인터넷 사이의 통신을 가능하게하는 것

    VPC <-> 인터넷


📍 NAT 게이트웨이 (Network Address Translation)

  • private 서브넷에 생성된 리소스는 인터넷으로 내보낼 수는 있으나, 인터넷에서 접근은 불가능해야한다.

  • NAT 게이트웨이는 public subnet에 생성한다.

  • VPC 내부에서 외부(인터넷)로 통신을 수행할 때, private IP만 포함한 정보를 public IP도 포함한 정보로 변환하는 시스템을 NAT라고 한다.

  • 즉, NAT 게이트 웨이가 private IP만 가지고 있는 private subnet에 있는 리소스들이 외부와 통신할 수 있도록 NAT gateway의 public IP로 수정해서 외부와 통신한다.

private Subnet의 private IP주소를 public subnet에 있는 NAT gateway의 public IP주소로 변환해 인터넷과 통신을 가능케 하는 것


📍 라우팅 테이블

서브넷 사이의 통신 경로 설정

  • 라우팅 테이블에는 송신 대상지(IP주소 or IP주소 범위)와 타겟을 지정한다.

  • 타겟 종류

    • Local : 동일 VPC안의 리소스에 접근
    • 인터넷 게이트웨이 : public subnet에 생성된 리소스가 인터넷 서버와 통신
    • NAT 게이트웨이 : private subnet에 생성된 리소스가 인터넷 서버와 통신
    • VPN 게이트웨이 : VPN을 통해 접속된 네트워크상의 서버와 통신
    • VPC 피어링 : 접속 허가한 다른 VPC의 리소스와 통신
  • 하나의 서브넷마다 하나의 라우팅 테이블이 연결되어있다.

  • 단, 하나의 라우팅 테이블을 여러 서브넷이 공유할 수 있다.


📍 보안그룹

외부로부터의 접근에 대한 제한 걸기

  • 특정 포트번호, IP 주소를 지정해서 인바운드, 아웃바운드 설정을 해준다.

0개의 댓글