24장. 운영 환경을 위한 VPC 디자인
이 장에서 말하고자 하는 것
지금까지 우리는 VPC, 서브넷, 라우팅, NAT Gateway, 보안 그룹, NACL을 각각 배웠다.
이제는 이 요소들을 단순히 이해하는 것을 넘어서
운영 환경에서 어떻게 설계해야 하는지
를 이해해야 한다.
운영 환경에서는
- 장애가 발생해도 서비스가 유지되어야 하고
- 보안이 유지되어야 하며
- 확장에도 대응할 수 있어야 한다
1. 운영 환경을 머리로 그려보기
사용자가 서비스를 이용하는 흐름을 생각해보자.
사용자 → 웹 서버 → 애플리케이션 서버 → 데이터베이스
이 구조는 단순하지만
운영 환경에서는 그대로 사용할 수 없다.
여기에는 몇 가지 문제가 있다.
2. 가용성 문제
서버가 하나만 있으면
서버 장애 → 서비스 중단
이 된다.
그래서 서버를 여러 개로 늘리고
서로 다른 위치에 배치한다.
AWS에서는 이를 위해
가용 영역(AZ)
을 제공한다.
운영 환경에서는
최소 2개 이상의 AZ를 사용한다
이렇게 하면
한 AZ 장애 → 다른 AZ가 서비스 유지
가 가능해진다.
3. 네트워크 구조 설계
운영 환경에서는 네트워크를 다음과 같이 나눈다.
퍼블릭 서브넷 → 외부와 통신
프라이빗 서브넷 → 내부 전용
그리고 이 구조를
각 AZ마다 동일하게 구성한다
즉
AZ-A → Public + Private
AZ-B → Public + Private
형태로 만든다.
이렇게 해야
어느 AZ가 장애가 나도 동일한 구조로 서비스 유지가 가능하다
4. 보안 설계
모든 서버를 외부에 열어두면 위험하다.
그래서 역할에 따라 접근을 제한한다.
웹 서버 → 외부 접근 허용
앱 서버 → 웹 서버만 접근 가능
DB → 앱 서버만 접근 가능
또한 인터넷 통신이 필요 없는 자원은
프라이빗 서브넷에 배치한다
이렇게 하면
외부에서 직접 접근할 수 없는 구조가 된다
5. NAT Gateway의 역할
프라이빗 서버는 외부에서 접근하면 안 되지만
외부로 나가는 통신은 필요하다.
그래서 사용하는 것이
NAT Gateway
이다.
이 구조는 다음과 같이 동작한다.
프라이빗 → 인터넷 가능
인터넷 → 프라이빗 불가
6. 트래픽 처리 구조
사용자가 특정 서버에 직접 접근하면
서버 장애나 과부하에 취약하다.
그래서 중간에
Load Balancer
를 둔다.
사용자 → Load Balancer → 여러 웹 서버
이 구조는
- 트래픽 분산
- 장애 자동 대응
을 가능하게 한다.
7. IP 대역 설계
운영 환경에서는 VPC를 만들 때
충분히 큰 IP 대역을 확보해야 한다
예:
10.0.0.0/16
이유는 다음과 같다.
- AZ 추가 가능성
- 서브넷 분리
- 서비스 확장
즉
처음부터 여유 있는 설계를 해야 한다
8. Custom VPC를 사용하는 이유
기본(Default) VPC를 사용할 수도 있지만
운영 환경에서는
Custom VPC를 사용하는 것이 일반적이다
이유는 다음과 같다.
- 원하는 구조로 설계 가능
- IP 대역 충돌 방지
- 확장 고려 가능
9. 전체 설계 관점 정리
운영 환경 설계는 다음 기준으로 이루어진다.
1. 최소 2개 이상의 AZ 사용 (가용성)
2. 퍼블릭 / 프라이빗 분리 (보안)
3. NAT Gateway 활용 (내부 통신)
4. Load Balancer 사용 (트래픽 분산)
5. 충분한 IP 대역 확보 (확장성)
6. Custom VPC 사용 (유연성)
10. 이 장의 핵심 정리
- 운영 환경에서는 가용성, 보안, 확장성을 함께 고려해야 한다.
- 최소 2개 이상의 AZ로 구조를 구성해야 한다.
- 퍼블릭과 프라이빗 서브넷을 나누고 동일한 구조를 반복한다.
- NAT Gateway와 Load Balancer를 통해 안정적인 구조를 만든다.
- VPC는 충분한 IP 대역으로 설계해야 한다.
- 운영 환경에서는 Custom VPC 사용이 일반적이다.