VPC는 클라우드상에서 제공하는 가상의 네트워크이다. AWS에서 서비스를 사용할 때는 반드시 VPC를 하나 사용해야 하며 VPC를 사용해서 보안성을 증가시킬 수 있다.
VPC를 사용하여 설정한 IP대역을 할당받아 사용할 수 있다. 기본적으로 default VPC가 주어지며 아마 172.31.0.0/16으로 설정돼있을 것이다.
VPC에 서브넷을 구성할 수 있다. VPC에서 IP영역을 나눠 작은 네트워크로 사용할 수 있다.
보통 서브넷은 기능이나 역할로 구분을 하는데 가장 많이 사용되는 서브넷 패턴은 세 가지 종류가 있다.
1. public 서브넷
2. private 서브넷
3. Intranet
Public 서브넷
public 서브넷은 말 그대로 public에 노출되어 있다는 뜻이다. public 서브넷의 특징은 Internet Gateway와 연결되어있어 외부와의 통신이 가능하다. public 서브넷의 라우팅 테이블을 보면 0.0.0.0/0에 IGW가 연결된 것을 볼 수 있다.
이렇게 구성되어있기 때문에 외부에서 VPC로, VPC에서 외부로 양방향 통신이 가능하다.
Private 서브넷
private 서브넷은 외부에 노출되어있지 않아 외부에서 접속할 수 없는 서브넷이다. 다만 필요한 경우 NAT을 사용하여 VPC내부에서 외부 인터넷을 사용할 수 있는 단방향 통신이 가능하다. private 서브넷의 라우팅 테이블을 보면 0.0.0.0/0에 NAT이 연결된 것을 볼 수 있다.
Bastion Host
private 서브넷은 외부에서 접근할 수 없기 때문에 보안적으로 우수하지만 서버를 관리하는 우리조차 들어갈 수 없어서 문제가 생긴다. 이 때 private 서브넷을 public 서브넷을 통해 접근해야한다. 해당 기능을 수행하는 서버를 Bastion Host라고 한다.(배스천 호스트, 바스티온 호스트라고 읽는다.) 오버워치에 나오는 바스티온과 철자, 의미가 같다.
Intranet
인트라넷은 외부와의 소통을 단절하고 내부끼리만 통신하는 망이다. 클라우드에 인트라넷을 구축하면 관리자조차 들어갈 수 없어서 사용하기 힘들지만 보안은 최고로 우수하다. 처음 세팅할 때만 IGW를 연결해서 public처럼 사용한 후 세팅이 완료되면 IGW를 끊어서 인트라넷으로 사용하면 된다. 그래서 인트라넷으로 서브넷을 사용하려면 0.0.0.0/0을 지우면 된다.
사용 예시
사용자와 소통하는 Frontend는 public에 배치하여 외부와의 통신이 가능하게 한다. 백엔드 서버는 외부와 통신할 필요가 없으므로 private에 배치하고 public에 있는 frontend의 요청만 받도록 한다. 또한 백엔드는 리소스 업데이트/다운로드가 필요할 수 있으므로 NAT와 통신한다.
'프로그래밍 > 개발' 카테고리의 다른 글
[개발] 주니어 개발자의 우당탕탕 MSA 전환기 - DB 편 (1) | 2023.09.04 |
---|---|
[개발] Redis를 사용한 데이터 캐싱으로 조회 API성능 향상시키기 (0) | 2023.07.29 |
[개발] AWS 아키텍처 구성하기 (4) | 2023.06.09 |
[개발] 스타크래프트 인공지능을 개발해보자! (2) | 2023.06.04 |
[개발] 메시지 큐 (0) | 2023.05.19 |