TIL/용어

[TIL] Cloud 기초 개념 #1 - VPC, NAT, Routing Table, Server

아람2 2025. 7. 3. 16:46
반응형

VPC, Virtual Private Cloud 는 

클라우드 컴퓨팅 환경에서 사용자가 정의한 가상 네트워크이다 
기본적으로 외부 인터넷과 직접 통신할 수 없다 
 
VPC 를 구성하기 위해서는 반드시 RFC 1918 에서 정의한 Private IP 주소 범위 내에서 지정해야 한다
VPC 를 생성하면 사설 네트워크 대역이 만들어지고 
이 안에 클라우드 서버 (ex. VM) 를 생성하면 Private IP 를 할당받게 된다 
이 서버가 외부와 통신하려면 NAT, Network Address Translation 기능을 통해
Private IP ↔ Public IP 간 주소 매핑이 이루어져야 하며, 이를 통해 외부 인터넷과의 통신이 가능해진다 
 

🐣 NAT, Network Address Translation 

내부 네트워크의 Private IP Address 를 외부 네트워크의 Public IP Address 로 변환하는 기술
한정된 공인 IP 자원을 효율적으로 사용하고, 내부 네트워크의 보안을 강화하는 역할을 한다 🐣 
 

Routing Table 

클라우드 환경에서는 VPC 를 생성할 때 기본 Routing Table 이 자동으로 생성된다 
이 기본 설정된 Routing Table 은 VPC 내의 Packet 들이
Local Gateway 를 통해 서로 통신할 수 있도록 미리 설정된 규칙이 포함되어 있다 
즉, Local Route 는 VPC 내의 IP 대역 내 트래픽을 기본적으로 처리하도록 설정되어 있기 때문에
VPC 내 모든 Subnet 들은 별도의 Routing 규칙을 추가하지 않아도 서로 통신할 수 있다 
 
* Router : 네트워크 간 데이터를 전달하고, 목적지까지 최적의 경로를 지정하는 네트워크 장치 
* Routing Table : 목적지 네트워크로 가는 경로에 대한 정보가 담겨 있으며,
 각 항목은 특정 목적지로 가는 최적의 경로를 나타낸다 
* 다른 네트워크로 이동하려면 Routing Tale 에 해당 목적지로 가는 경로가 반드시 정의되어 있어야 한다 
 

Internet Gateway 

Local Network 와 Internet 사이의 통신을 가능하게 하는 장치이다 
Local Network 에서 발생한 데이터 요청을 Internet 으로 전달하고
Internet 에서의 응답을 다시 Private Network 로 Routing 한다 
보통 Internet Gateway 는 Router 와 함께 작동한다 
 

Server

네트워크 상에서 데이터를 저장하고 관리하며,
다른 컴퓨터나 기기가 요청하는 정보를 제공하는 컴퓨터 시스템이다 
클라우드 서버는 물리 서버를 가상화한 개념으로,
물리적 공간이나 전력 관리에 대한 제약 없이 
인터넷을 통해 언제 어디서나 생성하고 사용할 수 있는 가상 서버를 의미한다 
 

Security Groups, 보안 그룹

인스턴스의 송수신 트래픽을 제어하여 클라우드 서버를 보호할 목적으로 사용하는 가상의 클라우드 방화벽이다 
규칙으로 허용한 트래픽은 허용하고, 그 외의 트래픽은 모두 차단한다 

Key Pair, 키 페어

Public Key 와 Private Key 로 구성되며, 자격 증명 입증에 사용하는 보안 자격 증명을 위한 열쇠와 같은 개념이다 
보통 Public Key 는 Server 내에 저장되고, Private Key 는 사용자가 소유한다 
Private Key 를 소유하는 사람은 누구나 Key Pair 를 사용하여 Server 에 연결할 수 있으므로 
Private Key 는 반드시 안전한 위치에 보관해야 한다 

Cloud Server 생성 방법

1) VPC 와 Subnet 을 생성한다 
2) Cloud Server 를 생성하고 Key Pair 도 지정한다 
3) Security Groups 에 접속하고자 하는 Port 와 Remote (ex. SSH, TCP 22) 를 기재한 후, 허용 규칙을 추가한다 
4) Server 에 Public IP 를 연결한다 
5) SSH 접속 도구 (ex. PuTTY, MobaXterm) 와 Key Pair 를 이용하여 Server 에 접속한다 
 
 


 

🎨 정글 나만무에서 발표했던 그림마당 아키텍처 

1. VPC 구성 

Public/ Private Subnet 으로 나뉘며, 보안성과 네트워크 분리를 위해 활용된다 

2. Subnet 분리 

Private Subnet

Auto Scaling 이 적용된 EC2 인스턴스와 Spring, NestJS (Backend) 가 위치한다 
외부에서 직접 접근할 수 없으며, 내부 트래픽만 허용된다

Public Subnet

React (Frontend) 와 NGINX Reverse Proxy 가 위치한다 
외부 사용자는 Public IP 가 할당된 NGINX 를 통해 접근할 수 있다 

3. NAT 및 Routing Table

Private Subnet 에 위치한 서버가 Docker Hub 등 외부 리소스와 통신해야 할 경우,
NAT Gateway 또는 NAT 인스턴스를 통해 Public IP 와 통신한다  
Routing Table 은 Subnet 간의 트래픽 흐름 및 외부 인터넷과의 연결 경로를 정의한다 

4. Key Pair, Security Group

Security Group 을 통해 포트 (ex. TCP 22) 허용 여부를 설정한다 
EC2 인스턴스에는 Key Pair 를 통해 SSH 접근이 가능하다 

5. Jenkins 기반 CI/CD 파이프라인

개발자가 GitHub 에 코드를 Push 하면 
Jenkins 가 코드를 Pull 하여 빌드 및 테스트를 실행한다 
이후 Docker 이미지로 빌드한 후 Docker Hub 에 Push 한다 
EC2 인스턴스가 Docker Hub 에서 이미지를 Pull 받아 컨테이너를 실행한다 

🏃‍♂️ 사용자 흐름

1. 사용자는 Public Subnet 에 위치한 NGINX 에 접속한다 
2. NGINX 는 요청을 내부 서비스로 Routing 한다 (ex. React → NestJS → Spring)
3. 처리된 결과는 다시 사용자에게 응답된다 
 

🐣 NGINX 관련 참고 

NGINX 설치 및 설정은 아래 글에 정리해놨었다 
와 이게 벌써 반년 전이라니, 시간 엄청 빠르다  
https://helloahram.tistory.com/205

[NGINX] EC2 Amazon Linux 에 NGINX 설치하기

Private Spring Server, Nest Server 에 접근할 수 있는 NGINX 를 설치하기로 했다  우선 AWS 에 Public 으로 Instance 를 만들어준다 키 페어를 생성하고, 기존 VPC 에 Public Region, Public IP 자동 할당, 보안 그룹은

helloahram.tistory.com

 

반응형