1. VPC
VPC 개념
AWS에서 제공하는 독립적인 가상의 네트워크 공간.
사용자가 클라우드 상에서 자신만의 네트워크를 구성, 관리할 수 있게 하는 가상 네트워크 환경.
IP 주소 범위 지정, 서브넷 생성, 라우팅 테이블과 네트워크 게이트웨이 설정 등 네트워크 구성이 자유롭게 가능.
VPC 필요성
VPC 등장하기 전에는 AWS 클라우드에서 인트선스들이 거미줄 처럼 연결된 형태로 존재.
인스턴스는 AWS에서 제공하는 가상 컴퓨터, 사용자가 애플리케이션을 배포하거나 데이터를 저장할 수 있는 하나의 서버
인스턴스를 추가하거나 변경할 때 마다 전체 인프라의 네트워크 설정을 봐야 함.
각 인스턴스간의 네트워크 격리가 없어 보안성이 낮고, 네트워크 복잡도가 높다.
네트워크 내에 IP 주소 네임스페이스를 정확히 관리, 격리된 환경에서 각 애플리케이션을 운영해야 함.
VPC를 알기 전에 알아두면 좋은 지식들
- 리전 : AWS의 전 세계에서 데이터 센터(IDC)의 물리적 위치
- 가용영역(AZ): 각 리전은 가용 영역으로 알려진 여러 개의 IDC 센터를 가짐.
- CIDR: IP ADDRESS 주소를 표현할때 사용하는 표준.
- IP 주소를 여러 네트워크 영역과 호스팅 영역으로 나눌때 사용
VPC의 구성요소 (요약)
- VPC: AWS에서 가장 큰 논리적 네트워크 단위, 다른 VPC와 분리되어 독립적인 네트워크 공간 제공.
- 서브넷: 거대한 네트워크 대역의 VPC 대역을 세분화. 특정 CIDR 블록 할당받음.
- 한개의 가용영역(AZ) 내에만 존재. 하나의 서브넷 여러 가용영역에 확장해서 생성 불가능
- 라우팅 테이블: 네트워크 트래픽이 목적지까지 도달하는 경로 제어하는 표. 라우팅 규칙 정의하여 트래픽 흐름 관리.
- 인터넷 게이트웨이(IG): VPC 내부 인스턴스가 외부 인터넷에 통신할 수 있도록 돕는 게이트 웨이
- 네트워크 ACL: 1개 이상의 서브넷 내부와 트래픽 제어하는 방화벅 역할. 선택적 보안 계층
- Security Group (보안 그룹): 인스턴스에 대한 인바운드 및 아웃바운드 트래픽 제어하는 가상 방화벽 역할.
- 인스턴스 시작할때 최대 5개의 보안 그룹에 할당 가능.
- 인스턴스 수준에서 작동. 각 인스턴스 서로 다른 보안 그룹으로 가능.
AWS 클라우드 내에는 하나의 리전이 존재.
VPC는 Region에 하나씩. 독립된 하나의 네트워크를 구성하기 위한 가장 큰 단위
VPC에서 사용하는 사설 IP 대역
10.0.0.0 - 10.255.255.255 (10/8 prefix)
176.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192,168/16 prefix)
VPC는 사용자가 사설 IP 주소 대역을 사용하여 가상 네트워크 구성할 수 있게 함
AWS VPC는 IPv4 CIDR 블록을 설정하는데 이 CIDR을 통해 사용자가 지정한 IP 주소 범위 내에서 IP 주소 할당
VPC CIDR 설정 규칙
- 한 리전 내에 생성되는 여러 VPC는 서로 IP 대역이 겹치지 않아야 한다.
- 예를 들어 172.31.0.0/16 대역을 사용 중이라면 새로 생성하는 vpc는 172.31이 아닌 다른 네트워크 범위 설정.
만약 IP 대역이 겹친다면 VPC 간의 통신에서 문제가 발생할 수 있으며 DNS IP 할당에 오류가 생길 수 있음.
AWS에서 허용하는 서브넷 마스크 범위
일반적인 사설 IP는 `10.0.0.0/8`,`172.16.0.0/12`,`192.168.0.0/16` 범위 포함
AWS에서는 VPC 생성 시 서브넷 마스크를 /16 ~ /28 까지만 설정 가능
최대 범위는 /16 (약 65,536개 IP)
최소 범위는 /28 (약 16개 IP)
VPC 설정 이후 IP 변경 불가 및 통신 제한
한번 생성된 VPC의 IP 대역은 변경 불가능.
각 VPC는 독립적인 네트워크로서 기본적으로 통신 불가.
두 VPC간의 통신을 위해선 VPC 피어링 사용하여 트래픽 라우팅 할 수 있도록 설정이 가능
VPC 피어링은 두 VPC 간의 네트워크 연결 가능하게 하여 각 VPC 내부의 리소스가 상호 연결된 상태에서 통신할 수 있게 함.
2. 서브넷(Subnet)
서브넷은 VPC의 IP 주소를 세분화한 물리적인 주소 범위.
VPC까 논리적인 범위라면 서브넷은 VPC안에서 실제로 리소스가 생성될 수 있는 네트워크 영역.
하나의 VPC에 N개의 서브넷 가능. 하나의 AZ에서만 생성 가능.
서브넷의 CIDR 범위도 /16 ~ /28 사용 가능.
AWS가 관리용으로 사용하는 IP (AWS의 예약 주소)
10.0.0.0 | 네트워크 주소 (Network ID) |
10.0.0.1 | AWS에서 VPC 라우터 용으로 예약 (Default Gateway) |
10.0.0.2 | DNS 서버 주소. (기본 VPC 네트워크 범위에 2 를 더한 주소) CIDR 블록이 여러 개라면 DNS 서버 IP 주소가 기본 CIDR 위치 |
10.0.0.3 | AWS에서 앞으로 사용하려고 예약한 주소 |
10.0.0.255 | 네트워크 브로드캐스트 주소 |
Public Subnet과 Private Subnet
- Public Subnet: Internet Gateway 를 통해서 외부와 통신이 가능 (VPC 외부/내부 통신)
- public subnet에 존재하는 인스턴스는 public IP/ Elastic IP 보유하여 인터넷에 연결되어 아웃바운드, 인바운드 트래픽을 주고 받을 수 있음.
- Private Subnet: 외부와 차단, 오직 다른 서브넷들 하고만 연결 가능 (VPC 내부 통신)
- 민감한 데이터 정보들을 저장해 보안 강화
인바운드: 외부 -> 인스턴스 트래픽
아웃바운드: 인스턴스 -> 외부 트래픽
3. 라우팅 테이블 (Routing Table)
- 네트워크 트래픽이 목적지까지 도달하는 경로 제어하는 표.
- AWS VPC에서 라우팅 테이블을 통해 네트워크 내 트래픽이 어떻게 흐르는 지 제어
- 각 서브넷 고유한 네트워크 영역 가짐.
- 한 서브넷에서 다른 서브넷으로 트래픽 보내기 위해선 라우팅 필요.
- 서브넷에서 요청 발생하면 해당 서브넷에 연결된 라우팅 테이블을 확인하여 목적지로 이동할 경로 찾음.
AWS의 라우팅 테이블
- AWS VPC에서 기본적으로 VPC 내부에서의 라우팅 규칙 자동으로 생성.
- VPC에 할당된 모든 서브넷에 있는 리소스는 별도 설정 없이도 자유롭게 통신이 가능.
- 외부 인테넛과 통신을 위해선 별도의 설정이 필요.
4. 인터넷 게이트웨이 (Internet Gateway)
VPC 내부에 있는 리소스가 외부 인터넷과 통신할 수 있도록 돕는 장치.
VPC는 기본적으로 격리된 네트워크 환경에서 존재하므로, 외부 인터넷과 연결을 위하여 인터넷 게이트웨이를 통해 라우팅하는 과정을 거쳐야함.
서브넷을 퍼블릿 서브넷으로 변경하려면 서브넷의 라우팅 테이블을 인터넷 게이트웨이로 등록하여 외부 인터넷과 연결 활성화.
- 퍼블릿 서브넷: 외부 인터넷으로 연결되는 경로(인터넷 게이트웨이)가 포함된 라우팅 테이블을 사용하는 서브넷
- 프라이빗 서브넷: 외부와의 연결이 필요하지 않은 서브넷. 인터넷 게이트웨이를 포함하지 않은 라우팅 테이블 사용
VPC에서 외부 인터넷과 통신하기 위한 조건
- 공인 IP 주소 보유
- 인터넷과 통신하련느 리소스가 공인 IP (Public IP or Elastic IP)를 가지고 있어야함.
- 공인 IP 가 있어야 외부에서 리소스 식별 및 접근 가능
- 라우팅 테이블에 인터넷 게이트웨이 추가
- 해당 리소스가 있는 서브넷 라우팅 테이블에 `0.0.0.0/0` 목적지로 가는 라우팅 규칙 추가하고, 인터넷 게이트웨이로 향하도록 설정.
- `0.0.0.0/0` 목적지 규칙은 기본적으로 모든 외부 인터넷 트래픽이 인터넷 게이트웨이로 나가도록 지정하는 역할
- Network ACL과 Secuirty Group 설정
- 네트워크 ACL(Network ACL): 서브넷 단위에서 트래픽을 제어하는 방화벽 역할.
- 인바운드 및 아웃바운드 규칙 설정해 외부 트래픽 허용/차단 가능
- 보안 그룹(Security Group): 인스턴스 단위에서 인바운드 및 아웃바운드 트래픽 제어하는 가상 방화벽 역할.
- 외부에서 인스턴스에 접속하려면 보안그룹에서 허용 규칙 설정해야함.
- 네트워크 ACL(Network ACL): 서브넷 단위에서 트래픽을 제어하는 방화벽 역할.
'백엔드 공부일지 > AWS 공부일지' 카테고리의 다른 글
[AWS] DynamoDB: DAX & Stream (4) | 2024.11.05 |
---|---|
[AWS] DynamoDB 기초부터 Index, Query, Scan 활용까지 (1) | 2024.11.04 |
[AWS] S3 사용 용례 & 암호화 (1) | 2024.10.06 |
[AWS] S3와 S3 스토리지 종류 (0) | 2024.10.06 |
[AWS] RDS 읽기 전용 복제본 & AZ 가용영역 (1) | 2024.09.29 |