01
클라우드 안에 내 네트워크 만들기: 가상 네트워크와 IP 대역
클라우드 데이터센터에는 수많은 고객의 서버가 함께 돌아갑니다. 그래도 내 서버끼리만 통하고 다른 고객과는 갈라져 있어야 합니다. 그래서 클라우드는 고객마다 논리적으로 분리된 네트워크를 만들어 줍니다. 이것을 가상 네트워크라고 합니다. 실제 케이블과 스위치는 공유하지만, 주소와 경로와 규칙은 고객마다 따로입니다.
가상 네트워크를 만들 때 가장 먼저 정하는 것이 사용할 IP 주소의 범위(대역)입니다. 보통 인터넷에서 쓰지 않기로 약속된 사설 대역 안에서 고릅니다. 사설 대역은 회사마다, 집집마다 겹쳐 써도 되는 주소라서 인터넷으로 바로 나가지는 못합니다(어떻게 나가는지는 3장에서 봅니다).
| 사설 대역 (RFC 1918) | 주소 수 | 흔한 쓰임 |
|---|---|---|
| 10.0.0.0/8 | 약 1,677만 개 | 클라우드 가상 네트워크, 큰 회사 사내망 |
| 172.16.0.0/12 | 약 105만 개 | 사내망, 컨테이너 기본 네트워크 |
| 192.168.0.0/16 | 65,536개 | 가정용 공유기, 작은 사무실 |
CIDR: 슬래시 뒤 숫자 읽기
IPv4 주소는 32비트입니다. 10.0.0.0/16은 "앞 16비트(10.0)는 고정하고 나머지 16비트를 이 네트워크가 쓴다"는 뜻입니다. 그래서 주소는 2^16 = 65,536개입니다. / 뒤 숫자가 클수록 고정하는 부분이 길어져 대역이 작아집니다. 이 표기를 CIDR이라고 합니다. 아래 그림에서 서브넷 크기를 바꿔 보세요.
- 서브넷 크기
- /24 · 주소 256개
- 들어가는 개수
- 256개
- 서버에 줄 수 있는 주소
- 251개 (예약 5개)
10.0.0.0/16 대역(땅)을 같은 크기의 서브넷(칸)으로 나눈다 · 연두 칸 = 첫 서브넷
/24는 앞 24비트가 네트워크, 나머지 8비트가 주소라는 뜻입니다. 서브넷 하나에 주소 2^8 = 256개. 서브넷마다 5개를 예약하니 서버에 줄 수 있는 주소는 251개입니다. / 뒤 숫자가 1 커질 때마다 칸은 절반으로 작아지고 개수는 두 배가 됩니다.
| 접두사 | 주소 수 | /16 안에 들어가는 개수 |
|---|---|---|
| /16 | 65,536 | 1 |
| /20 | 4,096 | 16 |
| /24 | 256 | 256 |
| /28 | 16 | 4,096 |
가상 네트워크의 대역은 다시 서브넷으로 나눕니다. 서브넷은 같은 성격의 서버를 모아 두는 구역입니다. 인터넷에 보일 웹 계층, 숨겨 둘 DB 계층처럼 역할별로 나누고, 서브넷마다 다른 경로(2장)와 방화벽(4장)을 걸 수 있습니다.
서브넷의 주소를 다 쓸 수는 없다
서브넷마다 클라우드가 미리 잡아 두는 주소가 있습니다. 서브넷의 첫 주소(네트워크 주소), 서브넷 밖으로 나가는 문인 게이트웨이, DNS 같은 것들입니다. 몇 개를 잡아 두는지는 클라우드 프로바이더마다 다릅니다. 그래서 /24 서브넷이라도 서버에 줄 수 있는 주소는 256개보다 조금 적습니다.
처음부터 넉넉하게, 겹치지 않게
대역은 만든 뒤 바꾸기 어렵습니다. 서버와 서비스가 늘 것을 생각해 넉넉하게 잡고, 사내망이나 다른 가상 네트워크와 겹치지 않게 나눠 둡니다. 사내망이 192.168.0.0/16을 쓰는데 클라우드도 같은 대역을 쓰면, 나중에 둘을 이으려 할 때 어느 쪽 192.168.1.10인지 가릴 수 없어 연결 자체가 안 됩니다(7장).
문제에 이런 표현이 나오면 → 이렇게 고른다
- “10.0.0.0/16 네트워크를 /24 서브넷으로 나누면 몇 개”256개
- “/28 서브넷에서 서버에 줄 수 있는 주소 수”16 − 그 프로바이더의 예약 주소 수
- “사내망과 나중에 연결할 계획이 있다”사내망과 겹치지 않는 대역으로 설계
- “인터넷에서 쓰지 않는 주소 범위”사설 대역 (10/8, 172.16/12, 192.168/16)
- “서브넷마다 다른 접근 규칙을 걸고 싶다”역할(계층)별로 서브넷 나누기
대역을 나눠 서브넷을 만들었습니다. 그런데 서브넷의 서버가 보낸 패킷은 어디로 갈지 어떻게 알까요?
02
서브넷과 라우팅: 퍼블릭과 프라이빗을 가르는 것
서버가 패킷을 보내면 서브넷에 연결된 라우트 테이블이 갈 길을 정합니다. 라우트 테이블은 "이 대역으로 가는 패킷은 저 문으로 보낸다"는 줄의 목록입니다. 가상 네트워크에는 "네트워크 안의 주소는 네트워크 안에서 전달한다"는 기본 경로가 처음부터 있어서, 서브넷끼리는 따로 설정하지 않아도 통신합니다.
목적지 다음 홉(보낼 곳) 10.0.0.0/16 네트워크 안 (로컬) 172.16.0.0/12 VPN 연결 → 사내망 0.0.0.0/0 인터넷 게이트웨이
라우트 테이블은 패킷의 목적지 주소가 들어맞는 줄을 찾아 그 줄의 다음 홉으로 보냅니다. 예를 들어 웹 서버가 같은 네트워크에 있는 DB 서버(10.0.2.15)로 패킷을 보낸다고 해 봅시다. 10.0.2.15는 10.0.0.0/16 안의 주소이니 첫 줄에 맞습니다. 그런데 0.0.0.0/0은 "모든 주소"라서 마지막 줄에도 맞습니다.
이렇게 여러 줄이 맞을 때는 가장 구체적인 줄, 즉 / 뒤 숫자가 큰 줄이 이깁니다(최장 접두사 일치). /16이 /0보다 구체적이니 이 패킷은 네트워크 안에서 전달됩니다. 반면 인터넷의 웹사이트(203.0.113.10)는 앞의 두 줄에 맞지 않고 0.0.0.0/0에만 맞아 인터넷 게이트웨이로 갑니다. 그래서 0.0.0.0/0을 다른 어떤 줄에도 맞지 않는 주소가 마지막에 가는 곳, 기본 경로라고 부릅니다. 아래 그림에서 목적지와 서브넷 종류를 바꿔 보세요.
- 출발
- 퍼블릭 서브넷의 서버
- 목적지
- 인터넷의 웹사이트 (203.0.113.10)
- 결과
- IGW
서버가 보낸 패킷이 표지판(라우팅 테이블)에서 길을 고른다 · 연두 줄 = 이긴 경로, 하늘 글씨 = 맞지만 진 경로
203.0.113.10에 맞는 경로는 0.0.0.0/0 하나뿐이라 IGW로 나갑니다. 이때 출발지 주소는 서버의 사설 IP 10.0.1.20가 아니라 공인 IP 198.51.100.20로 바뀌어 보입니다. 사설 IP는 인터넷에서 쓸 수 없기 때문입니다.
퍼블릭 서브넷과 프라이빗 서브넷
인터넷 쪽으로 가는 경로(0.0.0.0/0 → 인터넷)가 있는 서브넷을 퍼블릭 서브넷, 없는 서브넷을 프라이빗 서브넷이라고 부릅니다. 서브넷에 붙인 이름이 아니라 경로가 정합니다. 퍼블릭 서브넷이라도 서버가 인터넷과 직접 주고받으려면 서버에 공인 IP가 있어야 합니다. 사설 IP만 가진 서버는 퍼블릭 서브넷에 있어도 인터넷에서 찾아올 수 없습니다.
흔한 웹 서비스는 이렇게 나눕니다.
| 계층 | 두는 곳 | 이유 |
|---|---|---|
| 로드 밸런서 | 퍼블릭 서브넷 | 인터넷에서 요청을 받아야 한다 |
| 웹·앱 서버 | 프라이빗 서브넷 | 로드 밸런서를 통해서만 요청을 받는다 |
| 데이터베이스 | 프라이빗 서브넷 | 앱 서버 외에는 닿을 이유가 없다 |
문제에 이런 표현이 나오면 → 이렇게 고른다
- “서브넷의 서버가 인터넷에 직접 닿지 않게”프라이빗 서브넷 (인터넷 경로 없음)
- “같은 목적지에 맞는 경로가 두 개”더 구체적인 (접두사가 긴) 경로가 이긴다
- “같은 네트워크의 서브넷끼리 통신”기본 로컬 경로 — 따로 설정할 것 없음
- “DB를 인터넷에서 접근하지 못하게”프라이빗 서브넷에 둔다
- “퍼블릭 서브넷인데 서버가 인터넷에서 안 보인다”서버에 공인 IP가 있는지 확인
DB와 앱 서버를 프라이빗 서브넷에 숨겼습니다. 그런데 이 서버들도 보안 업데이트는 받아야 하고, 같은 클라우드의 저장소 서비스에도 접근해야 합니다. 인터넷 경로가 없는데 어떻게 나갈까요?
광고
03
프라이빗 서브넷에서 밖으로 나가기: NAT와 사설 엔드포인트
NAT(Network Address Translation, 주소 변환)는 프라이빗 서버의 대리인입니다. 서버가 인터넷으로 보낸 패킷의 출발지 주소를 NAT 자신의 공인 IP로 바꿔 내보내고, 응답이 오면 누가 보낸 요청이었는지 기억해 둔 대로 원래 서버에게 돌려줍니다.
- 상황
- 서버 → 인터넷 (업데이트 받기)
프라이빗 서브넷의 앱 서버가 밖과 주고받는 길 · 연두 = 나가는 패킷, 하늘 = 돌아오는 패킷
프라이빗 서브넷의 서버는 공인 IP가 없어 혼자서는 인터넷에 나갈 수 없습니다. NAT가 출발지 주소를 자기 공인 IP로 바꿔 내보내고, 돌아온 응답을 기억해 둔 서버에게 돌려줍니다. 영역 NAT 게이트웨이는 퍼블릭 서브넷에 만들고 Elastic IP를 붙입니다. 프라이빗 서브넷의 라우팅 테이블에 0.0.0.0/0 → NAT 게이트웨이 경로를 넣습니다.
핵심은 방향입니다. NAT는 안에서 시작한 연결만 대신해 줍니다. 밖에서 먼저 들어오려는 연결은 누구에게 보낼지 모르니 받지 않습니다. 그래서 "서버가 업데이트는 받아야 하지만 인터넷에서 접속되면 안 된다"는 문제의 답이 NAT입니다. 반대로 인터넷에서 서버로 요청을 받으려면 로드 밸런서(5장)나 서버의 공인 IP가 필요합니다.
NAT는 대개 클라우드가 관리해 주는 서비스로 씁니다. 서버 한 대를 NAT로 직접 꾸미는 방법도 있지만, 그 서버가 죽으면 프라이빗 서브넷 전체가 밖으로 못 나가니 고가용성과 관리 부담을 따로 챙겨야 합니다. 관리형 NAT를 어느 범위(영역 하나, 리전 전체)에 두는지는 프로바이더마다 다릅니다.
인터넷을 거치지 않고 클라우드 서비스에 닿기: 사설 엔드포인트
저장소, 큐, 키 관리 같은 클라우드의 관리형 서비스는 보통 인터넷 쪽 공개 주소를 가집니다. 프라이빗 서버가 그냥 부르면 NAT를 지나 인터넷 쪽으로 나갔다가 들어옵니다. 사설 엔드포인트를 두면 그 길이 네트워크 안에서 끝납니다. 방식은 두 가지입니다.
| 방식 | 어떻게 | 특징 |
|---|---|---|
| 경로형 | 라우트 테이블에 "그 서비스 대역 → 엔드포인트" 경로를 넣는다 | 서비스의 공개 주소를 그대로 쓴다. 대상 서비스가 적고, 추가 요금이 없는 경우가 많다 |
| 인터페이스형 | 내 서브넷에 그 서비스용 사설 IP를 하나 꽂는다 | 사설 IP로 부른다. VPN·전용선으로 이어진 사내망에서도 쓸 수 있다. 시간·데이터 요금이 붙는다 |
문제에 이런 표현이 나오면 → 이렇게 고른다
- “프라이빗 서버가 패치를 받되 인터넷에서 접속은 막기”NAT
- “인터넷을 거치지 않고 저장소 서비스에 접근”사설 엔드포인트
- “같은 클라우드 저장소로 대량 전송 중 NAT 비용이 크다”저장소용 사설 엔드포인트
- “사내망에서 클라우드 서비스를 사설 IP로 부르기”인터페이스형 엔드포인트
- “인터넷에서 프라이빗 서버로 요청을 받아야 한다”NAT가 아니라 로드 밸런서
이제 패킷이 갈 길은 정해졌습니다. 하지만 길이 있다고 아무나 지나가게 둘 수는 없습니다. 어떤 패킷을 들여보내고 막을지 정하는 문지기가 필요합니다.
Pro 전용
여기까지 무료로 읽을 수 있어요
나머지 5개 장은 Pro 구독자에게 열려 있어요. 장마다 3D 그림과 "문제에 이런 표현이 나오면" 정리가 이어지고, 마지막 장에서는 직접 풀어 보며 확인합니다.
- 04방화벽 두 겹 (상태 저장·비저장)
- 05로드 밸런서와 헬스 체크
- 06DNS와 엣지 (CDN·WAF)
- 07네트워크끼리 잇기 (피어링·VPN·전용선)
- 08연결이 안 될 때
PasslyExam
개념을 읽었다면, 이제 시험 문제로 확인할 차례
PasslyExam은 자격증 시험 범위에 맞춰 만든 오리지널 연습문제와 해설, 실전 모의고사를 제공합니다. 왜 그 보기가 정답이고 비슷한 보기는 왜 틀리는지까지 해설로 짚습니다. 가입하면 매일 무료로 연습문제를 풀 수 있습니다.
이 개념이 나오는 시험
- AIF-C01AWS 공인 AI 프랙티셔너
- SAA-C03AWS 공인 솔루션스 아키텍트 - 어소시에이트
- CLF-C02AWS 공인 클라우드 프랙티셔너
- SOA-C03AWS 공인 CloudOps 엔지니어 - 어소시에이트
- SAP-C02AWS 공인 솔루션스 아키텍트 - 프로페셔널
- AZ-900Microsoft Azure 기본 사항
- AZ-104Microsoft Azure 관리자
- ACEGoogle Cloud 어소시에이트 클라우드 엔지니어
- NCA-100네이버 클라우드 플랫폼 어소시에이트 자격증
- NCP-202네이버 클라우드 플랫폼 전문가 자격증 (네트워크/미디어, 데이터베이스/관리/분석)
- NCP-207네이버 클라우드 플랫폼 전문가 자격증 (트러블슈팅)
- NCP-200네이버 클라우드 플랫폼 전문가 자격증 (개요, 컴퓨팅/스토리지)