[aws] VPC

📝 1yangsh·2021년 3월 15일
0

aws fundamentals

목록 보기
5/8

Amazon Virtual Private Cloud (VPC)

AWS 전용 가상 네트워크

리전

  • AWS 서비스가 운영되는 지역
  • 복수개의 데이터 센터들의 집합
  • 가용영역(AZ)
    • 리전 내에 위치한 데이터 센터
    • 물리적으로 분리되어 있음
      • 고가용성을 보장하기 위해

VPC(Virtual Private Cloud)

  • AWS 계정 전용 가상 네트워크
  • 한 AWS 리전 안에서만 존재할 수 있고, 한 리전에 만든 VPC는 다른 리전에서는 보이지 않음
  • 연속적인 IP 주소 범위로 구성 ⇒ CIDR 블록으로 표시
    • 10.0.0.0/8 → 10.0.0.0 ~ 10.255.255.255
    • 172.16.0.0/12 → 172.16.0.0 ~ 172.31.255.255
    • 192.168.0.0/16 → 192.168.0.0 ~ 192.168.255.255

서브넷(subnet)

  • VPC 내 논리 컨테이너
  • EC2 인스턴스를 배치하는 장소 ⇒ 인스턴스는 서브넷 안에 위치
    • 서브넷에 인스턴스를 생성하면 다른 서브넷으로 이동할 수 없음
    • 인스턴스를 종료하고 다른 서브넷에 새 인스턴스를 생성
  • 인스턴스를 서로 격리하고, 인스턴스 간의 트래픽 흐름을 제어하고, 인스턴스를 기능별로 묶을 수 있음
  • 서브넷 CIDR 블록
    • VPC의 일부, VPC 내에서는 유일해야함
    • 모든 서브넷에서 처음 4개의 IP와 마지막 1개는 예약되어 있으므로 인스턴스에 할당할 수 없음
      • 예) 서브넷 CIDR가 172.16.100.0/24인 경우
        • 172.16.100.0 ~ 172.16.100.3와 172.16.100.255 는 할당 불가
  • 서브넷은 하나의 가용 영역(AZ) 내에서만 존재할 수 있음

ENI(Elastic Network Interface, 탄력적 네트워크 인터페이스)

  • 물리 서버의 NIC(Network Interface Controller)와 같은 기능을 수행
  • 모든 인스턴스에는 기본 ENI가 존재하며, 이 인터페이스는 하나의 서브넷에만 연결

IGW(Internet Gateway, 인터넷 게이트워이)

  • 퍼블릭 IP주소를 할당받은 인스턴스가 인터넷과 연결되어서 인터넷으로부터 요청을 수신할 수 있도록 해주는 서비스
  • 처음 VPC를 생성하더라도 IGW가 연결되지는 않음
    • ⇒ 직접 IGW를 생성하고 VPC와 연결해야 함
  • VPC는 하나의 IGW만 연결 가능

라우팅 테이블

  • VPC는 소프트웨어 함수로 IP 라우팅을 구현한 라우터를 제공
    • ⇒ 사용자는 라우팅 테이블만 관리
  • 라우팅 테이블은 하나 이상의 라우팅과 하나 이상의 서브넷 연결로 구성
  • VPC를 생성하면 기본 라우팅 테이블을 자동으로 만들고 해당 VPC의 모든 서브넷과 연결

라우팅

  • 라우팅 테이블과 연결된 서브넷 내 인스턴스에서 트래픽을 전달하는 방법을 결정

  • 라우팅 테이블에는 같은 VPC에 있는 인스턴스 간에 통신할 수 있게 하는 로컬라우팅이 필수적으로 포함

  • 기본 라우팅

    • 인스턴스가 인터넷에 엑세스하게 하려면 IGW를 가리키는 기본 라우팅을 생성해야 함
      • 대상(target) 주소 : 0.0.0.0/0 ⇐ 인터넷 상의 모든 호스트의 IP 주소
      • 대상 : igw-xxxx...
  • 퍼블릭 서브넷

    • IGW를 가리키는 기본 라우팅이 포함된 라우팅 테이블과 연관된 서브넷
  • 프라이빗 서브넷

    • 기본 라우팅이 포함되어 있지 않음
  • 라우팅을 결정할 때는 가장 근접하게 일치하는 항목을 기반으로 라우팅

    대상주소대상
    172.31.0.0/16LOCAL
    0.0.0.0/0igw-xxxx...
    • 198.51.100.50으로 패킷을 보내려고 하면, IGW로 패깃을 전달
    • 172.31.0.10으로 패킷을 보내려고 하면, 172.31.0.10으로 패킷을 전달

보안 그룹(security group)

  • 방화벽과 같은 기능을 제공

    • 상태 저장 방화벽 역할
    • 보안 그룹이 트래픽을 한 방향으로 전달되도록 허용할 때 반대 반향의 응답 트래픽을 지능적으로 허용
  • 인스턴스의 ENI 최소 하나 이상의 보안 그룹과 연결되어야 함

    • 보안 그룹과 ENI는 N:N 관계
    • 보안 그룹 생성 시 보안 그룹 이름, 설명, 포함될 VPC를 지정하고, 보안 그룹 생성 후에 인바운드, 아웃바운드 규칙을 지정해서 트래픽을 지어
  • NACL(Network Access Control List)

    • 보안 그룹과 유사
      • 원본(source)/대상(target) 주소 CIDR, 포드를 기반으로 트래픽을 허용하는 인바운드, 아웃바운드 규칙을 포함 ⇒ 방화벽 기능
      • VPC에는 삭제할 수 없는 기본 NACL이 존재
    • NACL은 ENI가 아닌 서브넷에 연결, 해당 서브넷과 송수신하는 트래픽을 제어
      • 서브넷 내의 인스턴스 간 트래픽을 제어할 때는 NACL을 사용할 수 없음 ⇒ 보안 그룹
    • NACL은 상태를 저장하지 않음 = NACL은 통과하는 연결 상태를 추적하지 않음
      • 모든 인바운드, 아웃바운드 트래픽의 허용 규칙을 별도로 작성해야 함
    • NACL 규칙은 규칙 번호의 내림차순으로 처리

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

profile
개발 경험 저장소

0개의 댓글