VPC(Virtual Private Cloud)
지금 교육과정에서 배우고 있는게 라우터 서버를 만들고 내부망을 그 것과 연결해 외부와 분리된 네트워크 공간을 만들는 과정이다.
오늘 공부할 건 사용자만의 가상 네트워크 공간을 만들어주는 AWS의 서비스인 VPC이다.
내가 하고 있는게 온프레미스 상의 분리된 공간을 만드는 것이라면, VPC는 클라우드 환경에서 사용하는 것이다.
좀 있으면 VPC로 동일한 환경을 구축해볼텐데 그 전에 예습해보자
목차
VPC(Virtual Private Cloud) 란?
내 식대로 번역하면 가상 개인 클라우드 정도 될 거 같다.
VPC는 AWS에 기본 토대로 네트워크 경계선 역할을 해준다.(내 네트워크와 외부 네트워크의)
VPC라는 뼈대 아래에서 사용자는 외부와 소통할 퍼블릭 서브넷과 내부에서 사용할 프라이빗 서브넷을 구성해 사용하는것
사용자는 VPC 의 서브넷들을 Internet Gateway와 연결할지 아니면 NAT Gateway 혹은 연결하지 않을지 선택해 퍼블릭 프라이빗 서브넷으로 설정한다.
구성요소
Internet Gateway(IGW)
- VPC를 인터넷과 연결해주는 출입구
- 퍼블릭 서브넷이 사용
NAT Gateway / NAT Instanse
- 프라이빗 서브넷에서 외부로 나가는 출구
- 보안상 직접 인터넷을 못 쓰는 인스턴스가 나갈 때 사용
Route Table
- 네트워크 트래픽이 어디로 갈지 정의
- 서브넷마다 연결
- IGW/NAT 연결 여부도 여기서 설정
Security Group
- 인스턴스 단위 방화벽(Stateful)
- EC2 등에 인바운드/아웃바운드 포트 설정
Network ACL
- 서브넷 단위 방화벽(Stateless)
- 서브넷 전체에 트래픽 룰 적용, Security Group 보다 낮은 레벨
DHCP Option Set
- 자동 IP 할당 시 옵션 설정(DNS 등)
- EC2가 부팅 시 받는 DNS 등 기본값 변경 가능
VPC Peering
- 서로 다른 VPC 간 연결
- 계정/리전이 달라도 VPC끼리 통신 가능(같은 네트워크처럼)
EndPoints (Interface / Gateway)
- AWS 서비스에 VPC 내부에서 접근
- S3, DynarmoDB 등에 인터넷 없이 내부 통신 가능
VPC Flow Logs
- VPC 내 네트워크 로그 수집 기능
- 보안 감시, 트래픽 분석, 장애 원인 파악
이런 구성요소들을 활용해 클라우드 네트워크를 구성한다.
VPC 구성 흐름
- VPC 생성
- CIDR 블럭 설정
- 내 네트워크 범위를 지정하는 가장 기본 뼈대
- Subnet 생성
- 퍼블릭 서브넷
- 프라이빗 서브넷
- 각 가용서버에 분산해서 설정(리전에는 여러개의 AZ 고가용성을 위해)
- Internet Gateway 생성 및 연결
- 퍼블릭 서브넷에서 외부로 나가기 위한 출입구
- VPC에 부착
- NAT Gateway 생성
- 퍼블릭 서브넷에 생성
- Route Table 구성 및 연결
- 퍼블릭은 IGW에 연결
- 프라이빗은 NAT Gateway 혹은 없이
- 보안 설정
- Security Group: 인스턴스 단위 포트 오픈 (22 80 443)
- Network NCL: 서브넷 수준 인바운드/아웃바운드 허용/거부 룰 설정
- 인바운드: 들어오는 트래픽
- 아웃바운드: 나가는 트래픽
- 테스트용 EC2 인스턴스 배포
- 퍼블릭 서브넷 -> 웹 서버
- 프라이빗 서브넷 -> DB, 백엔드 서버
이런 구성 순서로 이뤄지고 이제 이 중간중간에 AWS의 수많은 서비스를 얹어서 만들어 나가는 것이 AWS의 기본인것 같다.
마무리
오늘은 VPC에 대해서 아주 큰틀에서 공부했다.
VM으로 라우터 서버를 만들고 내부망을 만들어보는 실습을 하는 중이라 VPC를 공부하면서 비슷한 부분을 많이 느꼈다.
vmnet0으로 공유기로부터 ip를 할당 받은 서버 = IGW를 통해 통신하는 퍼블릭 서브넷
라우터 서버를 통해 외부와 소통하는 DB 서버 = NAT Gateway를 통해 통신하는 프라이빗 서브넷
이런 식으로 매칭 시키니 이해하기 쉬웠다.
아직 온프레미스 환경에서의 실습이지만 클아우드 환경에서도 다를 건 없다고 생각한다. 실습을 통해 직접 구성해 보면서 클라우드 환경 예습을 해 실제 클라우드 구축 실습에 조금 더 잘 따라갈 수 있었으면 좋겠다.
아직 AWS에 세부 EC2, RDS, S3, Lambda 등 구체적인 서비스들을 알지 못하는 단계에서 AWS 클라우드 환경을 어떻게 구성하는지를 공부했다.
다음 학습으로는 이런 구체적 서비스가 어떤것인지를 공부해야겠다.