AWS 완전 정복 가이드 CH 00 / 12
00 사전·기초 단계

사전 지식

네트워크·보안 기초

사전·기초 과금 없음 읽기 전용

OSI 7 Layer · DNS · 캐싱 · 암호화/SSL · RDBMS vs NoSQL

이 챕터를 읽어야 하는 이유

AWS 콘솔에서 "보안 그룹에서 인바운드 규칙을 추가하세요", "서브넷이 퍼블릭인지 확인하세요", "TLS 1.2 이상을 사용하세요" 같은 말이 들릴 때 감이 안 잡히는 이유는 AWS를 몰라서가 아닙니다. AWS가 다루는 개념들의 토대인 네트워크 기초를 건너뛰었기 때문입니다.

이 챕터는 AWS를 시작하기 전에 반드시 알아야 할 개념들을 다룹니다. 읽기만 해도 되고, 실습은 없습니다. 개념이 잡히면 이후 챕터의 모든 설정이 "왜 이렇게 하는지"와 함께 이해됩니다.

💡
이 챕터를 마치면
"보안 그룹이 22번 포트를 막았다"는 말이 들립니다. "HTTPS는 TLS 핸드셰이크로 암호화된다"는 말이 이해됩니다. "서브넷이 퍼블릭이냐 프라이빗이냐"의 차이가 보입니다.

네트워크는 왜 7계층으로 나뉘는가

컴퓨터끼리 데이터를 주고받는 일은 복잡합니다. 케이블을 통해 전기 신호를 보내는 물리적 문제부터, IP 주소로 경로를 찾는 문제, 데이터를 빠짐없이 전달하는 문제, 애플리케이션이 데이터를 해석하는 문제까지 여러 층의 문제가 쌓여 있습니다.

OSI 모델은 이 복잡성을 7개의 층(Layer)으로 나눠 각 층이 자기 역할만 담당하게 만든 설계 원칙입니다.

OSI 7계층 모델 · AWS 서비스 매핑
7 Application HTTP · HTTPS · DNS · SMTP ALB, CloudFront
6 Presentation 암호화 · 압축 · SSL/TLS ACM 인증서
5 Session 세션 수립 · 유지 · 종료
4 Transport TCP · UDP · 포트 번호 보안 그룹 (포트)
3 Network IP · 라우터 · 경로 결정 VPC · 서브넷 · 라우팅
2 Data Link MAC 주소 · 스위치 ENI (MAC 주소)
1 Physical 케이블 · 전기 신호 Direct Connect

AWS에서 자주 나오는 계층

계층 AWS에서 나오는 상황
L7 ApplicationALB가 HTTP 헤더·경로를 보고 라우팅 결정
L6 PresentationACM 인증서로 TLS 암호화/복호화
L4 Transport보안 그룹 인바운드 규칙에서 포트 22, 80, 443 지정
L3 NetworkVPC 서브넷 CIDR, 라우팅 테이블, IP 지정
L2 Data LinkENI(탄력적 네트워크 인터페이스)의 MAC 주소

TCP와 UDP — 왜 둘 다 있는가

구분TCPUDP
연결 방식연결 수립 후 통신 (3-way handshake)연결 없이 바로 전송
신뢰성순서 보장, 재전송 있음순서 보장 없음, 재전송 없음
속도상대적으로 느림빠름
사용처HTTP, HTTPS, SSH, DB 연결DNS, 영상 스트리밍, 게임

꼭 외워야 할 포트 번호

포트프로토콜AWS에서의 용도
22SSHEC2 원격 접속
80HTTP웹 서버, ALB 리스너
443HTTPS웹 서버(암호화), ALB 리스너
3306MySQLRDS MySQL 접속
5432PostgreSQLRDS PostgreSQL 접속
8080HTTP (대체)Spring Boot 기본 포트
53DNSRoute 53

DNS — 이름을 IP로 바꾸는 전화번호부

브라우저에 www.example.com을 입력하면 실제로는 52.78.XXX.XXX 같은 IP 주소로 연결됩니다. 사람은 이름을 기억하지만 컴퓨터는 IP 주소로 통신하기 때문입니다. DNS(Domain Name System)는 이 변환을 담당합니다.

DNS 조회 흐름
🌐
브라우저
①→
🔍
DNS Resolver
통신사 DNS
②→
Route 53
권한 DNS
③ IP←
🖥
서버
EC2 / ALB

Route 53이 권한 DNS 역할을 담당합니다.

레코드 종류

타입역할예시
A도메인 → IPv4 주소api.example.com → 52.78.1.2
CNAME도메인 → 다른 도메인www → example.com
ALIAS도메인 → AWS 리소스 (AWS 전용)ALB, CloudFront 연결 시
NS이 도메인의 권한 DNS 서버호스팅 영역 생성 시 자동 발급
MX메일 서버 지정이메일 수신 경로

TTL — DNS 전파가 왜 느린가

TTL(Time To Live)은 DNS 응답을 캐시에 얼마나 보관할지 초 단위로 지정하는 값입니다. TTL이 3600이면 1시간 동안 캐시된 값을 씁니다. 도메인을 변경했는데 반영이 안 되는 이유가 이겁니다.

💡
도메인 이전 작업을 하기 전에 TTL을 300(5분)으로 낮춰두면 변경 반영이 빨라집니다.

캐싱 — 왜 빠르고 왜 오래된 데이터가 보이는가

캐싱은 자주 쓰는 데이터를 가까운 곳에 미리 복사해두는 기법입니다. 원본까지 매번 가지 않아도 되니 빠릅니다. 대신 원본이 바뀌어도 캐시가 남아 있으면 오래된 데이터가 보입니다.

서비스무엇을 캐싱하는가관련 개념
CloudFront정적 파일 (HTML·CSS·JS·이미지)TTL, Invalidation
ElastiCacheDB 조회 결과, 세션 데이터Redis, Memcached
ALB연결 상태 (Connection draining)Stickiness
Route 53DNS 응답TTL
⚠️
자주 겪는 문제
CloudFront에 파일을 새로 올렸는데 브라우저에 이전 파일이 계속 보인다면 캐시 때문입니다. CloudFront Invalidation을 실행하거나, 파일명에 버전을 붙이는 방식(app.v2.js)으로 해결합니다.

HTTPS가 동작하는 원리

HTTP는 주고받는 내용이 평문입니다. 중간에서 누군가 패킷을 가로채면 그대로 읽힙니다. HTTPS는 TLS(Transport Layer Security)로 암호화한 HTTP입니다.

TLS 핸드셰이크 — 연결이 맺어지는 순서

단계내용
1. Client Hello브라우저가 서버에 연결 요청. 지원하는 암호화 방식 목록을 보냅니다.
2. Server Hello + 인증서서버가 암호화 방식을 선택하고 SSL 인증서를 보냅니다. 인증서 안에 서버의 공개키가 있습니다.
3. 인증서 검증브라우저가 인증서를 CA(인증 기관)에 확인합니다. 주소창의 자물쇠가 이 단계입니다.
4. 세션 키 교환이후 통신에 쓸 대칭키를 서버 공개키로 암호화해 전송합니다.
5. 암호화 통신 시작공유된 대칭키로 데이터를 암호화·복호화합니다.
서비스역할
ACMTLS 인증서 발급 · 자동 갱신 (무료)
ALBTLS 종료 지점 — 브라우저↔ALB는 HTTPS, ALB↔EC2는 HTTP
CloudFrontTLS 종료 지점 — 엣지에서 암호화 처리
NLBTLS 패스스루 — 암호화 상태 그대로 EC2에 전달

RDS와 DynamoDB — 선택 기준

AWS에서 데이터베이스를 선택할 때 가장 먼저 마주치는 질문입니다. 정해진 답은 없고, 데이터의 성격과 서비스 요구사항에 따라 다릅니다.

특징RDBMS (RDS)NoSQL (DynamoDB)
스키마고정 — 컬럼을 미리 정의유연 — 항목마다 다른 필드
조인여러 테이블 연결 가능기본적으로 없음
트랜잭션ACID 보장제한적
확장 방식수직 확장 (서버 사양 업)수평 확장 (서버 여러 대)
적합한 경우주문·결제·회원 등 정형 데이터세션·로그·대용량 단순 조회

핵심 정리

이 챕터의 핵심 개념
OSI 7 Layer 네트워크를 7개 역할로 나눈 설계 원칙 · 보안 그룹(L4), VPC(L3), ALB(L7)
TCP/UDP TCP는 신뢰성, UDP는 속도 · 보안 그룹 프로토콜 지정 시 사용
DNS 도메인 이름을 IP로 변환 · Route 53이 권한 DNS 역할
TTL 캐시 보관 시간(초 단위) · DNS 전파 속도·CloudFront 캐시에 영향
TLS/HTTPS 공개키로 세션키 교환 후 암호화 통신 · ACM, ALB, CloudFront
RDBMS 표 형태·스키마 고정·조인 가능 · AWS: RDS
NoSQL 유연한 스키마·수평 확장 · AWS: DynamoDB, ElastiCache
다음 챕터로 넘어가기 전에
"보안 그룹에서 TCP 22번 포트를 내 IP만 허용"이라는 문장을 읽고 무슨 뜻인지 바로 이해된다면 이 챕터를 마친 겁니다.
OSI L4(TCP) · 포트(22) · 소스(내 IP) — 세 개념이 한 문장에 다 들어 있습니다.