본문 바로가기

전공공부

AWS 네트워크 핵심 구성 요소 정리

AWS에서 인프라를 설계할 때 가장 먼저 이해해야 하는 것이 바로 네트워크 구조이다.
이 글에서는 AWS 네트워크의 핵심 개념을 인프라 → 주소 → 라우팅 → 보안 흐름으로 정리하였다.

1. 인프라 개념 : Region, AZ

Region

  •  AWS 서비스가 호스팅되는 전 세계의 물리적 지리 영역이다.
  • ex. 서울(ap-northeast-2), 도쿄(ap-northeast-1)
  • 특징
    • 각 리전은 완전히 독립되어 있기 때문에, 장애가 발생해도 다른 리전에 영향이 없다.
    • 리전 간 통신엔 비용이 발생하고, 지연이 높아지기 때문에 서비스는 보통 한 리전 내에서 설계하게된다.

AZ(Availability Zone)

  • 하나의 리전 내에서 물리적으로 격리된 데이터 센터 그룹이다.
  • 특징
    • 서로 다른 AZ는 물리적으로 거리가 존재해 전력망, 네트워크가 분리되어있다. 
    • 하지만 같은 리전 내에 배치되어 있기 때문에 AZ간 통신 속도가 빠르다
    • 따라서 EC2를 여러 AZ에 배치하여 고가용성을 확보할 수 있고, 장애 발생 시 자동으로 복구가 가능하다. 

2. 가상 네트워크 설계 : VPC, Subnet

VPC(Virtual Private Cloud)

  • AWS에서 제공하는 사용자 전용 가상 네트워크이다.
  • 특징
    • 논리적으로 격리되어 있어 사용자가 정의한 가상 네트워크에서 리소스를 실행할 수 있다.
    • 사용자가 IP 대역(CIDR), Subnet, Routing, 보안정책 등을 직접 설정할 수 있다.
    • 리전 단위로 할당되며 리전 간 경계를 넘을 수 없다.

CIDR

IP 주소를 할당하는 방식이다. VPC의 전체 크기와 서브넷의 범위를 결정할 때 사용한다.

  • 표기법: [네트워크 주소]/[Prefix 길이] 형태로 표기
    • ex. 10.0.0.0/16
    • Prefix(/16): 앞에서부터 몇 번째 비트까지가 네트워크 주소인지를 나타낸다. 나머지는 호스트에게 할당할 수 있는 비트이다.
  • 할당 가능한 주소 개수 : 2^(32 - Prefix)
    • 상세 예시 
      • VPC 전체: 10.0.0.0/16 (65,536개)
      • Subnet A: 10.0.1.0/24 (256개, 실제 가용 251개)
      • Subnet B: 10.0.2.0/24 (256개, 실제 가용 251개)
  • AWS 예약 주소
    •  AWS는 각 서브넷에서 5개의 IP 주소를 관리용으로 예약한다.
    • ex. 10.0.0.0/24 (총 256개) 할당 시, 실제 사용 가능 개수는 251개.
    • .0(네트워크), .1(VPC 라우터), .2(DNS), .3(미래 예약), .255(브로드캐스트)
  • AWS의 경우, 주소를 할당할 때 RFC1918의 Private Address Space를 주로 사용한다.
    • 클래스 A(10.0.0.0/8) : 대규모 네트워크. 호스트 주소 할당을 넉넉하게 할 수 있어 AWS에서 주로 사용한다.
    • 클래스 B(172.16.0.0/12) : 중규모 네트워크.
    • 클래스 C(192.168.0.0/16) : 소규모 네트워크.

Subnet

  •  VPC의 IP 주소 범위를 더 작은 단위로 나눈 하위 네트워크. Subnet은 반드시 하나의 AZ에 속하게 된다.
  • Public Subnet
    • 인터넷 게이트웨이로 향하는 경로가 라우팅 테이블에 존재하여 외부와 직접 통신이 가능하다.
    • 0.0.0.0/0 -> IGW 라우트가 있어야한다.
  • Private Subnet
    • 인터넷 게이트웨이와 직접 연결되지 않아, 외부 인터넷에서 직접 접근할 수 없다. 내부 자원 보호를 위해 사용한다.
    • NAT Gateway를 통해 우회적으로 외부로 나가는 통신이 가능하다. 이 경우, 라우트 테이블이 0.0.0.0/0 -> NAT Gateway 라우트를 포함한다.

3. 외부 연결 및 라우팅: IGW, NAT Gateway, Route Table

IGW(Internet Gateway)

  • VPC의 자원과 인터넷 간의 통신을 가능하게 하는 구성 요소이다.
  • Public Subnet의 트래픽을 외부로 내보내거나 들여보내는 관문 역할을 수행한다.
  • 특징
    • VPC에 붙여서 사용한다.
    • Public Subnet의 트래픽을 인터넷으로 전달한다.
    • Route Table 설정을 통해 통신이 가능하다.

NAT Gateway

  • Private Subnet의 인스턴스가 외부 인터넷 서비스에 접근할 수 있도록 돕는 서비스이다.
  • 특징
    • 외부에서 내부로 들어오는 연결은 차단하고, 내부에서 외부로 나가는 연결만 허용한다.
    • Public Subnet에 위치한다.

Route Table

  • 서브넷이나 게이트웨이에서 나가는 네트워크 트래픽이 어디로 향해야 하는지 결정하는 경로 규칙을 저장한 테이블이다.
  • Longest Prefix Match(LPM)로 동작한다.
    • 가장 구체적인 정보, 즉 일치하는 prefix의 길이가 가장 긴 경로를 선택한다.
    • 예시를 통해 작동 방식을 살펴보자.
      대상 (Destination) 타겟 (Target) 설명
      10.0.5.1/32 eni-id 특정 서버(IP 한 개)로 가는 가장 구체적인 경로
      10.0.0.0/16 local 우리 VPC 내부의 모든 리소스와 통신
      0.0.0.0/0 igw-id 위 규칙에 없는 모든 외부 인터넷 트래픽
      • 목적지 1 : 10.0.5.1 (특정 IP)
        • /32 규칙과 /16 규칙 모두에 해당하지만, 더 구체적인 /32 경로를 선택한다.
      • 목적지 2 : 10.0.20.100 (VPC 내부)
        • /32 에 해당하지 않음. 
        • 10.0.0.0/16에 포함됨 → local으로 라우팅
      • 목적지 3 : 8.8.8.8 (구글 DNS)
        • 사설 IP 대역 규칙 어디에도 없으므로, 마지막 수단인 0.0.0.0/0을 따라 인터넷 게이트웨이(IGW)로 나간다.

4. 네트워크 보안 계층: NACL과 Security Group

항목 NACL Security Group
적용 대상 Subnet Instance
상태 Stateless Stateful
규칙 Allow + Deny Allow only
적용 방식 순서 있음 순서 없음

NACL(Network Access Control List)

  • 서브넷 단위로 적용되는 보안 계층이다.
  • 특징
    • Stateless 방식으로 작동하므로 인바운드 트래픽과 아웃바운드 트래픽 규칙을 각각 명시적으로 설정해야 한다.
    • 번호순으로 규칙이 수행된다.

Security Group(SG)

  •  인스턴스 단위로 적용되는 보안 계층이다.
  • 특징
    • Stateful 방식으로 작동하여 인바운드에서 허용된 트래픽은 아웃바운드 규칙과 상관없이 통과된다.
    • 기본적으로 Allow 규칙만 설정할 수 있으며 Deny 규칙은 작성할 수 없다.