ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VPC 와 서브넷
    BackEnd/AWS 2022. 9. 9. 19:59

    [ 목차 ]

      1. VPC 란?

      VPC (Virtual Private Cloud)는 가설 사설망으로, 사용자 정의 IP 주소 범위, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 VPC라고 합니다.

      물리적으로 같은 네트워크에 있더라도 논리적으로 서로 다른 네트워크에 있는 것처럼 동작합니다.

      VPC 별로 네트워크 설정을 다르게 해 운영할 수 있고, 각각의 VPC 는 독립된 네트워크처럼 작동합니다,

      각 VPC는 하나의 리전에 종속됩니다. 각각의 VPC는 완전히 독립적이기때문에 만약 VPC간 통신을 원한다면 VPC 피어링 서비스를 고려해볼 수 있습니다.

       

      2. VPC 기능

      1. Reachability Analyzer 

      vpc 내 두 개의 리소스 간 네트워크 도달 가능성을 분석 및 디버깅할 수 있는 정적 구성 분석 도구입니다.

       

      2. VPC Flow 로그

      S3 또는 CloudWatch 로 전달되는 VPC 플로 로그를 모니터링해 네트워크 의존성 및 트래픽 패턴에 대한 운영 가시성을 얻고,

      추적해 데이터유출을 예방하고, 네트워크 연결성 및 구성 문제를 해결할 수 있습니다.

      네트워크 이슈가 있을 때 VPC 플로우 로드를 보면 연결 문제를 모니터링하고 해결할 때 도움이 된다.

      VPC flow log 는 S3이나 CloudWatch Logs 로 보내 저장할 수 있다.

       

      3. 트래픽 미러링

      VPC 트래픽 미러링은 EC2 인스턴스의 탄력적 네트워크 인터페이스에서 네트워크 트래픽을 복사하고 그 다음 트래픽을 심도있는 패킷 조사를 위해 대역 외 보안 및 모니터링 장치로 전송할 수 있게 허용합니다.

       

      4. 인그레스 라우팅

      인터넷 게이트웨이 또는 가상 프라이빗 게이트웨이로, 그리고 여기에서 지정 EC2 인스턴스의 탄력적 네트워크 인터페이스로 모든 인바운드 및 아웃바운드 트래픽의 흐름을 라우팅할 수 있습니다.

       

      5. 보안 그룹 규칙 

      ENI(Ethernet Networking Interface) 또는 EC2 인스턴스의 트래픽을 제어하는 방화벽이다.

      연결된 EC2 인스턴스에 대한 방화벽 역할을 하며 인스턴스 수준에서 인바운드 및 아웃바운드 트래픽을 모두 제어합니다. 

      인스턴스를 출시할 때 생성한 한 개 이상의 보안 그룹과 연관시킬 수 있습니다.

      허용규칙만 존재한다.
      Ip 주소나 다른 보안그룹으로 규칙을 정할 수 있다.

       

      6. Network Access Control List

      네트워크 ACL 은 VPC 용 선택적 보안 레이어로 

      하나 이상의 서브넷으로 출입하는 트래픽을 제어하는 방화벽 역할을 수행합니다.

      규칙은 IP 로 제어 가능 

      기본 VPC 에서 기본 NACL 을 갖고 있어 모든 트래픽을 허용한다.

       

      VPC 상에서의 보안 기술(Security Group and Network ACL)

      AWS의 VPC 상에서의 보안 기술로는 시큐리티 그룹과 네트워크 ACL(Access Control Lists)이 있다.

      EC2와 같은 인스턴스 레벨에서의 보안 기술이 시큐리티 그룹이고

      서브넷 레벨에서의 보안 기술이 네트워크 ACL이라고 생각하면 쉽다.

       

      보안 그룹 및 네트워크 액세스 제어 목록을 포함한 다중 보안 계층을 사용하여 각 서브넷에서 Amazon EC2 인스턴스의 액세스를 제어할 수 있습니다.


      3. Subnet 이란? 

      서브넷은 VPC를 잘개 쪼개는 과정입니다. VPC의 IP 주소 범위입니다.

      서브넷을 나누는 이유는 더 많은 네트워크망을 만들기 위해서입니다. 

      각각의 서브넷은 가용영역(Availability Zone)안에 존재하며 서브넷 안에 RDS, EC2와같은 리소스들을 위치시킬 수 있습니다.

       

      4. Subnet 의 종류와 구성

      VPC 구성 방법에 따라 서브넷은 퍼블릭, 프라이빗 또는 VPN 전용으로 간주됩니다.

      - 퍼블릭 서브넷: 인터넷 게이트웨이를 통해 퍼블릭 인터넷으로 라우팅됩니다. 웹서버를 위해 퍼블릭 서브넷을 사용할 수 있습니다.

      - 프라이빗 서브넷: 퍼블릭 인터넷에 연결할 수 없습니다. 퍼블릭 인터넷에 액세스하려면 NAT 장치가 필요합니다. 데이터베이스나 애플리케이션 서버 같은 백엔드 시스템을 배치할 수 있습니다.

      - VPN 전용 서브넷:  가상 프라이빗 게이트웨이를 통해 Site-to-Site VPN 연결로 라우팅됩니다. 서브넷 트래픽은 인터넷 게이트웨이를 통해 퍼블릭 인터넷에 연결할 수 없습니다. 

       

      서브넷을 만들 때 해당 서브넷에 대한 IPv4 CIDR 블록을 지정합니다. 이는 VPC CIDR 블록의 서브넷입니다. 각 서브넷은 단일 가용 영역 내에서만 존재해야 하며, 여러 영역으로 확장할 수 없습니다. 별도의 가용 영역에서 인스턴스를 시작함으로써 단일 영역에서 장애가 발생할 경우 애플리케이션을 보호할 수 있습니다.

      필요에 따라 컴퓨팅, 스토리지, 데이터베이스 및 기타 선택 서비스를 최종 사용자에게 더 가깝게 배치하는 AWS 인프라 배포인 로컬 영역에 서브넷을 추가할 수 있습니다. 로컬 영역을 사용하면 최종 사용자가 한 자릿수 밀리초 지연 시간이 필요한 애플리케이션을 실행할 수 있습니다. 

       

      서브넷을 만들 때 VPC 구성에 따라 다음과 같이 IP 주소를 지정합니다.

      * 서브넷은 VPC보다 더 작은 단위이기때문에 서브넷 마스크가 더 높게되고 IP 범위가 더 작은 값을 갖게 됩니다.

      • IPv4 전용: 서브넷에 IPv4 CIDR 블록은 있지만 IPv6 CIDR 블록은 없습니다. IPv4 전용 서브넷의 리소스는 IPv4를 통해 통신해야 합니다.
      • 듀얼 스택: 서브넷에 IPv4 CIDR 블록 및 IPv6 CIDR 블록이 둘 다 있습니다. VPC에는 IPv4 CIDR 블록 및 IPv6 CIDR 블록이 둘 다 있어야 합니다. 듀얼 스택 서브넷의 리소스는 IPv4 및 IPv6를 통해 통신할 수 있습니다.
      • IPv6 전용: 서브넷에 IPv6 CIDR 블록은 있지만 IPv4 CIDR 블록은 없습니다. VPC에 IPv6 CIDR 블록이 있어야 합니다. IPv6 전용 서브넷의 리소스는 IPv6를 통해 통신해야 합니다.
      *CIDR
      클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한 최신의 Ip주소 할당 방법입니다.
      IP Addr의 그룹을 관리하며 기존의 IP Address Class 보다 유연하게 동작할 수 있습니다.

      서브넷의 유형과 관계없이 서브넷의 내부 IPv4 주소 범위는 항상 프라이빗입니다. 즉 인터넷에 주소 블록을 알리지 않습니다. 

       

      이러한 VPC는 AWS에 의해 내부 관리의 목적으로 생성되는 기본 VPC와 사용자에 의해 생성되는 VPC로 나뉜다.

      보통 사용자에 의해 생성되는 VPC는 리전별 최대 5개까지 생성 가능하다.

       

      또한 서브넷의 IP 대역폭은 VPC의 IP 대역폭 범위에 속해 있어야 하며, AWS에서는 특수한 목적으로 IP 대역에서 일부 IP는 미리 예약되어 있는 주소가 있다. 

       

      [VPC내 Reserved IP 내용]

      IP 내용
      x.x.x.0 네트워크 주소
      x.x.x.1 AWS VPC 가상 라우터 주소
      x.x.x.2 AWS DNS 서버 주소
      x.x.x.3 향후 관리 목적을 위한 여분의 주소
      x.x.x.4 ~ x.x.x.254 사용자 IP대역
      x.x.x.255 네트워크 브로드케스트 주소

      5. 라우터란?

      네트워크 요청이 발생하면 데이터는 우선 라우터로 향하게됩니다.  동일 VPC안에 서브넷 간에는 라우터를 통해 찾아갑니다.

      하지만 그 이외 외부로 통하는 트래픽을 처리할 수 없습니다. 이 때 인터넷 게이트웨이를 사용합니다. 

       

      라우팅 테이블 

      서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 결정하는 데 사용되는 라우팅이라는 규칙 집합으로 구성되는 것이 라우팅 테이블입니다.

      VPC는 생산량이 제한된 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치를 제어합니다.

      VPC의 각 서브넷을 라우팅 테이블에 연결해서 서브넷에 대한 라우팅을 제어합니다.

      서브넷을 특정 라우팅 테이블과 명시적으로 연결할 수 있으며 여러 서브넷을 동일한 라우팅 테이블에 연결할 수 있습니다.

      (* 하지만 서브넷은 한 번에 하나의 라우팅 테이블에만 연결할 수 있습니다.)

      또한 라우팅 테이블을 (인터넷 게이트웨이 / 가상 프라이빗 게이트웨이)와 연결하여 VPC로 들어오는 인바운드 트래픽에 대한 라우팅 규칙을 정할 수 있습니다.

       

      6. 인터넷 게이트웨이란?

      Internet Gateway(이하 인터넷 게이트웨이) VPC 인터넷 구간 사이의 통로(인바운드/아웃바운드 연결 통로) 역할을 수행합니다. VPC 인터넷 게이트웨이는 1개를 설정할  있습니다.

      퍼블릭 서브넷의 라우팅 테이블에는 외부 인터넷 구간으로 나가는 타켓을  인터넷 게이트웨이로 지정해 주어야 합니다. 

      프라이빗 서브넷 구간도 NAT Gateway 를 통해 인터넷 망에 접속할  있습니다.

       

       

      7. 인터넷 게이트웨이 & NAT 게이트웨이 

      internet gateway 는 public subnet 에서 internet 으로 접근하게 해준다 
      Nat 은 private subnet 이 인터넷에 접속할 수 있게 해준다.
      Nat Gateway 는 AWS 에서 관리하기 때문에 프로비저닝과 스케일링을 자동으로 해준다.
      Nat Instance 는 스스로 해야한다.
      Nat 을 Public subnet 에 배포하고 private subnet 에서 Nat 으로 라우팅한다. 이것은 IGW 로 라우팅된다.


      8. VPC 와 Subnet 생성하기 실습

      VPC 를 생성하면 기본적으로 가상 라우터가 자동 생성된다.

      가상 라우터는 해당 VPC 내 통신이 가능한 로컬 네트워크에 대한 라우팅 경로만 잡혀있다.

      이 로컬 네트워크를 통해 VPC 내 서브넷들의 리소스 간 통신이 가능하다.

      이 라우팅 테이블에 리소스에서(대상) 인터넷 게이트웨이로(타킷) 나가는 경로를 추가하면 

      리소스는 인터넷으로 연결되어 외부와 직접적인 통신이 가능한 공공 네트워크이다. 

       

      이런 구조를 만드는 순서는 다음과 같다.

      1. VPC 생성 (IP범위 선택) (기본 라우팅 테이블 생성됨)

      2. 서브넷 생성 (VPC, AZ, IP범위 선택)

      * 서브넷은 한 개의 AZ 안에 속한다. 

      * 서브넷 IP 대역은 VPC IP 대역에 속해야한다.

      * 서브넷에 할당할 수 있는 IP 대역에서 미리 예약된 IP 주소가 있다.

      3. 인터넷 게이트웨이 생성 후 VPC 연결 

      4. 라우팅 테이블 생성 후 서브넷 연결 

      5. 라우팅 테이블에 인터넷 게이트웨이 경로 추가 

      6. 인스턴스 생성 (VPC, 서브넷 선택) 

       

      인터넷 게이트웨이는 VPC 당 하나만 연결 가능하다. 

      인터넷 게이트웨이에 연결된 서브넷을 퍼블릭 서브넷이라고 한다. 

       

      프라이빗 서브넷이라는 것은 인터넷 게이트웨이에 연결되지 않아 외부 인터넷 구간의 사용자와 통신이 불가한 서브넷을 말하지만, 

      private IP 를 public IP 로 변환해주는 NAT 게이트웨이와 연결한다면, 내부에서 외부로 나가는 한방향 통신은 가능해진다. 

       

      프라이빗 서브넷 VPC 를 구성하는 순서는 다음과 같다.

      1. VPC 내 서브넷 생성 (기본 라우터가 할당됨)

      2. NAT 게이트웨이 생성 (서브넷 설정)

      * NAT게이트웨이는 퍼블릿 서브넷에 위치하도록 설정해야한다.

      3.  라우팅 테이블 생성과 서브넷 연결

      4. 라우팅 테이블에 NAT 게이트웨이 경로 추가 

      6. 인스턴스 생성 (VPC, 서브넷 선택) 

       

      * NAT 에 인터넷 게이트웨이 연결을 해주는 부분이 안보이는데, 알아서 찾아가는 모양이다. 

       

      https://tech.cloud.nongshim.co.kr/2018/10/16/4-네트워크-구성하기vpc-subnet-route-table-internet-gateway/


      VPC 는 Regional Resource 라서 지역단위로 만들어진다.
      서브넷은 VPC 네트워크 분할을 하는 것이고, AZ 수준에서 정의된다.

      지역에 하나의 VPC 가 있고 VPC 안에 하나의 public subnet 을 갖는 것이 기본 구조 이다.

      * 정리 
      AWS에서 VPC를 만들면 아래 자원들이 자동으로 생성되거나, 직접 만들어야한다.
      
      서브넷 : VPC가 만들어 지고 직접 만들어야 한다.
      라우트 테이블: VPC가 만들어 지면 자동으로 만들어진다. 
      이 라우트 테이블을 기반으로 VPC 내부의 자원들(서브넷 등)이 서로 연결될 수 있다.
      인터넷게이트웨이: 직접 만들어야 한다.
      DHCP 옵션셋 : 자동으로 만들어 진다.
      네트워크 ACL/시큐리티 그룹 : 자동으로 만들어 진다.
      
      VPC 라우팅 테이블에 인터넷게이트웨이를 추가하면 ssh를 통해 EC2에 접근 가능해진다.

       

       

       

      https://dev.classmethod.jp/articles/for-beginner-vpc-explanation/

       

      초보자도 이해할 수 있는 VPC | DevelopersIO

      소개 안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 VPC의 대한 설명을 할려고 합니다. VPC는 AWS의 네트워크 서비스 입니다. 네트워크 이야기가 나와서 어려운 부분있을거라 생각

      dev.classmethod.jp

       

      https://sharplee7.tistory.com/110?category=1058133 

       

      AWS VPC 만들기

      이 포스팅에서는 이전에 알아보았던 VPC(Virtual Private Network)를 직접 AWS상에서 만들어 보도록 하겠다. VPC 만들기 VPC를 만드는 장소는 서울리전(ap-northeast-2)을 사용하기로 한다. 가지고 있는 aws 계정

      sharplee7.tistory.com

       

      https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/how-it-works.html

       

      Amazon VPC 작동 방식 - Amazon Virtual Private Cloud

      이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

      docs.aws.amazon.com

      https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098

       

      [AWS] 가장쉽게 VPC 개념잡기

      가장쉽게 VPC 알아보기

      medium.com

      출처: https://sharplee7.tistory.com/109?category=1058133 [Deok's Modern Architecture Stories:티스토리]

      반응형

      'BackEnd > AWS' 카테고리의 다른 글

      RDS  (0) 2022.09.17
      ASG Auto Scaling Group  (0) 2022.09.16
      ELB  (0) 2022.09.15
      EBS, EC2 저장소 , EFS  (0) 2022.09.12
      AWS IAM , EC2 기초  (0) 2022.09.11
    Designed by Tistory.