핵심: 서버를 구역별로 나누고, 필요한 경로에만 통신을 허용한다. 구역 분리와 접근 규칙은 함께 설계해야 한다.
한눈에 보는 흐름

왜 배웠는가?
외부에서 접속할 서비스, 데이터를 저장할 서버, 보안 도구를 운영할 서버를 같은 방식으로 공개할 수는 없었다. 내부 서버의 업데이트와 관리자 접속까지 고려해야 했다.
핵심 개념
- VPC / Subnet: AWS의 가상 네트워크 / 그 안의 주소 구역.
- Route Table: 목적지에 따라 어디로 보낼지 정한 길 안내표.
- Public / Private Subnet: 인터넷 게이트웨이로 직접 나가는 경로가 있는 구역 / 그 직접 경로가 없는 구역. 실제 인터넷 연결에는 IP와 접근 규칙도 필요하다.
- NAT Gateway: 비공개 서버가 먼저 인터넷 통신을 시작할 때 쓰는 주소 변환 통로.
- Bastion / SSM: 관리자 접속을 위한 중간 서버 / AWS 관리 기능을 이용한 접속 방식.
규칙은 어디에 적용하는가?
구성요소 | 쉽게 이해하기 |
Security Group(SG) | 서버의 네트워크 인터페이스에 적용하는 허용 규칙. 연결의 응답을 기억한다. |
Network ACL(NACL) | Subnet 경계의 허용·거부 규칙. 양쪽 방향을 따로 고려한다. |
WAF | 웹 요청 내용을 살펴보는 규칙. |
이해를 만든 예시
Web 80, App 5000, DB 3306을 사용하는 학습 예시라면 사용자 → Web → App → DB에 필요한 연결을 정한다. 사용자가 DB에 직접 접속하거나 Web이 App을 건너뛰는 연결은 별도로 허용할 이유가 있는지 검토한다.
Private Subnet에 있다는 사실만으로 내부 접근이 모두 막히지는 않는다. 통신할 길이 있는가와 그 연결을 허용하는가를 함께 확인해야 한다.
프로젝트에서 이어진 질문
김태형의 VPC 연결 조사에서는 공격·서비스·CERT 영역을 별도 VPC로 나누는 설계가 등장했다. 여기서 SG를 허용하는 것만으로 다른 VPC까지 길이 생기지는 않는다는 문제를 다뤘다.
- Peering: 두 VPC를 직접 연결.
- PrivateLink: 필요한 서비스에 비공개로 접속하는 방식.
- Transit Gateway: 여러 네트워크를 연결하는 중심 허브.
세 방식의 비교를 통해 연결 대상과 서비스 범위에 따라 네트워크 연결 방식이 달라진다는 점을 학습했다.
배운 점
“Private니까 안전하다”에서 “누가 누구에게 어떤 포트로 갈 수 있는가”를 설명하는 수준으로 학습이 구체화됐다.
