이것저것

[SK shieldus Rookies 29기] 28일차 본문

SK Shieldus Rookies 29

[SK shieldus Rookies 29기] 28일차

atfield1988 2026. 1. 14. 10:38

어제에 이어서 달려보자고~

6. 가상 네트워크 서비스 Amazon VPC

6.1 VPC 개요

VPC란?

VPC (Virtual Private Cloud) = AWS 클라우드 위의 내 전용 네트워크 공간

온프레미스 네트워크와 유사하게:

  • VPC에 구획된 네트워크 범위 정의
  • 서브넷 생성으로 네트워크 분할
  • 라우팅 테이블로 통신 경로 설정
  • 보안 그룹과 NACL로 접근 제어

)

VPC의 필요성

EC2 인스턴스를 생성할 때, VPC가 자동으로 필요함 (네트워크 구성 필수)


6.2 VPC의 구조

계층별 구조

AWS Cloud (가장 큰 범위)
    ↓
Region (리전: 예: 서울)
    ↓
Availability Zone (가용영역: 예: ap-northeast-2a)
    ↓
VPC (Virtual Private Cloud)
    ↓
Subnet (서브넷: 더 작은 네트워크)
    ↓
EC2 Instance (인스턴스)

네트워크 구성 예시(CIDR 표기)

VPC 생성 (10.0.0.0/16) - 전체 65,536개 IP 가능

  • Public Subnet A (10.0.1.0/24) - 254개 IP, 인터넷 연결 가능
  • Public Subnet C (10.0.2.0/24) - 254개 IP, 인터넷 연결 가능
  • Private Subnet A (10.0.3.0/24) - 254개 IP, 인터넷 미연결
  • Private Subnet C (10.0.4.0/24) - 254개 IP, 인터넷 미연결


6.3 서브넷 (Subnet)

서브넷이란?

VPC를 더 작은 네트워크로 분할한 것

쉬운 예시:
VPC = 대한민국
Subnet = 서울, 대전, 대구, 부산....
VPC (10.0.0.0/16) 전체

  • Subnet 1 (10.0.1.0/24) = 서울
  • Subnet 2 (10.0.2.0/24) = 대전
  • Subnet 3 (10.0.3.0/24) = 대구

Public vs Private Subnet

항목 Public Subnet Private Subnet
인터넷 연결 ✅ 가능 ❌ 불가능
Internet Gateway 필요 불필요
용도 웹 서버, 로드밸런서 데이터베이스, 백엔드
접근성 외부에서 접근 가능 내부에서만 접근
보안성 낮음 (외부 노출) 높음 (격리됨)
)

CIDR 블록 표기

10.0.0.0/16
└─ /16 = 처음 16비트는 고정, 나머지 16비트는 변수, 2^16
└─ 가능한 IP: 10.0.0.0 ~ 10.0.255.255 (65,536개)

10.0.1.0/24
└─ /24 = 처음 24비트는 고정, 나머지 8비트는 변수, 2^8
└─ 가능한 IP: 10.0.1.0 ~ 10.0.1.255 (256개)

6.4 DHCP (Dynamic Host Configuration Protocol)

DHCP란?

IP 주소를 자동으로 할당해주는 서비스


6.5 인터넷 게이트웨이 (Internet Gateway)

인터넷 게이트웨이란?

VPC와 인터넷을 연결하는 관문

VPC (10.0.0.0/16)
    ↓ Internet Gateway
인터넷 (0.0.0.0/0)

기능

IP 주소 변환:
├─ VPC 내부: 172.16.5.11 (사설 IP)
├─ 인터넷: 104.20.xx.xx (공인 IP)
└─ IGW가 자동으로 변환

데이터 흐름:
1. EC2 (172.16.5.11)에서 인터넷 요청
2. IGW가 172.16.5.11을 104.20.xx.xx로 변환
3. 인터넷으로 패킷 전송
4. 응답받은 패킷을 다시 172.16.5.11로 변환

IGW 구성 요구사항

Public Subnet이 인터넷 통신하려면:

  1. IGW 생성 및 VPC에 연결

  2. 라우팅 테이블 설정

    • 0.0.0.0/0 → IGW 연결

  3. EC2에 Public IP 할당

    • Elastic IP (고정)
    • Public IP (동적, 인스턴스 중지 시 반납)

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

NAT 게이트웨이란?

Private Subnet의 EC2가 인터넷으로 나갈 수 있게 해주는 서비스

NAT 없이:
Private EC2 (172.16.5.11)
    ↓
❌ 인터넷으로 나갈 수 없음!

NAT 게이트웨이로:
Private EC2 (172.16.5.11)
    ↓
NAT GW (공인 IP 필요)
    ↓
✅ 인터넷으로 나갈 수 있음!

특징

단방향 통신:

  • EC2 → 인터넷: ✅ 가능 (아웃바운드)
  • 인터넷 → EC2: ❌ 불가능 (인바운드 차단)

위치: Public Subnet에 배치 (공인 IP 필요)

용도:

  • Private 데이터베이스가 인터넷 패치 받을 때
  • Private 서버가 외부 API 호출할 때
  • 보안을 유지하면서 외부 통신이 필요할 때

private이 Linux에서 naver에 접속을 하고 싶다고 하면 public의 NAT gateway에 전달함 public의 NAT gateway는 Internet gateway에 전달. 전달받았으면 다시 public의 NAT gateway에 전달.
한마디로 나 대신에 인터넷을 전달하는 역할임.
참 쉽죠잉~


6.7 라우팅 테이블 (Routing Table)

라우팅 테이블이란?

패킷을 어디로 보낼지 결정하는 이정표
네트워크 트래픽의 경로를 안내하는 역할

목적지 주소(CIDR 블록) → 다음 홉(Next Hop)

예:
10.0.0.0/16 → local (VPC 내부)
0.0.0.0/0 → igw-XXXXX (외부 인터넷으로 나가는 모든 트래픽)
10.2.0.0/16 → vpn-XXXXX (VPN 연결)

라우팅 동작


두 가지 정보 필요: 목적지 주소와 해당 목적지로 가기 위한 게이트웨이

EC2에서 패킷 전송:
└─ "10.0.2.0에게 데이터를 보내고 싶다"

라우팅 테이블 확인:
└─ 10.0.2.0은 10.0.0.0/16 범위에 속함
└─ → local 대상으로 전송 (VPC 내부 통신)

Subnet별 라우팅 테이블 설정

Public Subnet의 라우팅 테이블:

목적지 대상 설명
10.0.0.0/16 local VPC 내부 통신
0.0.0.0/0 igw-XX 인터넷 연결

Private Subnet의 라우팅 테이블:

목적지 대상 설명
10.0.0.0/16 local VPC 내부 통신
0.0.0.0/0 nat-XX NAT Gateway 경유 인터넷 접근

이제 맨 처음 이미지로 돌아가서 무슨 상황인지 리마인드해보자!


아직까진 easy하구만
사진은 캡처뜨기 귀찮아져서 옛날에 끄적여 놓은데서 몇 개 가져왔다.
그리고 실습을 진행했으면 싹 다 지우자.
왜냐고 물어본다면 실컷 만들다가 다음달에 한 300내라고 이메일 오면 그때 알게된다....(나도 알고 싶지 않았어ㅠㅠ)