본문 바로가기
클라우드 서비스

[클라우드 서비스] Networking Service _ 20241203

by 황오독 2024. 12. 4.

* AWS VPC 사용

더보기

실습과정

#1. VPC 네트워크 구성

- VPC 생성

- 퍼블릭 서브넷 및 프라이빗 서브넷 생성

- 인터넷 게이트웨이 생성 및 연결

- 라우팅 테이블 구성 및 서브넷 연결

1. 리전 및 가용 영역

(1) 리전 및 가용 영역

가용 영역 (Availability Zone) 리전(Region)
- 데이터 센터는 수만개의 서버를 운영 중이고 모든 데이터 센터는 온라인으로 연결
- 각 가용 영역은 하나 이상의 데이터 센터로 구성되며 내결함성을 갖도록 설계됨
- 전용성을 통해 다른 가용 영역과 상호 연결
- 리전은 두 개 이상의 가용 영역으로 구성
- AWS는 전 세계에 다수의 리전과 가용 영역을 보유하고 있으며 계속 확장 중임
- 리전 간 데이터 복제를 활성화하고 제어가

 

* AWS는 현재 전세계 34개 리전, 108개의 가용 영역을 구축("24년 기준)

 

(2) 엣지 로케이션

 

- 최종 사용자에게 가까운 위치에서 더 짧은 지역 시간으로 콘텐츠를 전송하기 위해 600개 이상 엣지 로케이션(=Point of Presence)을 구축

- 글로벌 엣지 로케이션을 기반으로 CDN(Content Delivery Network), DNS(Domain Name System) 등의 서비스를 제공

- 리전(본사, 데이터 처리 및 저장) → 엣지 로케이션(가맹점, 콘텐츠 전송 및 속도 최적화)

 

(3) VPC

- Virtual Private Cloud

- 클라우드의 가상 프라이빗 네트워크 공간

- AWS 리소스를 사용자가 정의한 가상 네트워크 안에서 생성하여 활용할 수 있음

 

① Amazon VPC 특징

- 사용자가 자신의 요구에 맞게 클라우드 상에서 가상의 네트워크를 정의

- VPC는 클라우드 내 다른 가상 네트워크와 논리적으로 분리(격리)되어 있음

- 리소스에 사용할 IP 주소 범위를 지정할 수 있고 IPv4, IPv6 모두 지원

- 인바운드 및 아웃바운드 트래픽에 대한 액세스 정책 설정 지원

 

② VPC 생성

- VPC를 생성할 리전(Region)을 지정하고, 사용할 IP 주소 범위를 지정

- 지정한 리전에 속한 가용 영역(AZ)을 선택하여 원하는 개수의 서브넷을 구성

- 리전당/계정당 VPC는 최대 5개 생성 (AWS Support center 통해 증가 요청 가능)

 

④ VPC IP 주소 범위 지정

* CIDR (Classless Inter-Domain Routing)

- 클래스 없는 도메인 간 라우팅 기법으로 가장 일반적으로 활용되고 있는 IP 주소 할당 및 표기 방법임

- CIDR은 기존의 IP 주소 할당 방식이었던 네트워크 클래스를 대체한 방식

- CIDR은 IP Address 영역을 나눌 때 기존 방식보다 유연하게 사용자가 원하는 Network Address와 Host Address를 나눌 수 있음

 

* CIDR 표기

주소 범위 CIDR 표기법 개수
10.12.0.0/16 10.12.*.* 65,536개
192.168.12.0/24 192.168.12.* 256개
172.16.28.9/32 172.16.28.9 특정 IP
0.0.0.0/0   모든 IP

 

- CIDR의 netmask가 커질수록 할당 가능한 IP 주소의 개수는 줄어듦

- AWS VPC는 기본적으로 /28 (16개 IP주소)과 /16 (65,536개 IP주소) 사이에서 네트워크의 블록 크기를 지정할 수 있음

- VPC 생성 후 CIDR 변경 불가

- 호스트에 할당할 IP 주소가 부족하지 않도록 범위를 넉넉하게 지정하는 것이 바람직함.

 

⑤ 서브넷 생성

- 서브넷은 리소스 그룹을 격리할 수 있는 VPC IP 주소 범위의 하위 집합

- 서브넷 생성 시 VPC CIDR 블록의 하위 집합에 속하는 CIDR 블록을 지정

- 서브넷 단위로 네트워크 트래픽을 제어할 수 있음 (인터넷 접근성 제어)

- VPC 주소 범위 내에서 가용영역을 선택하여 생성

- 서브넷간 CIDR 블록은 중첩되면 안됨

- 서브넷 별로 5개의 예약된 IP 주소가 있음

  (10.0.0.0 => 네트워크 주소 / 10.0.0.1 => VPC 라우터용 / 10.0.0.2 => DNS 서버 용도 / 10.0.0.3 => AWS / 10.0.0.255 => 네트워크 브로드캐스트 주소)

- 기 설정된 서브넷 IP 범위는 변경이 불가 함

 

⑥ 라우팅 테이블

- 네트워크 트래픽이 향하는 방향을 결정하는 데 사용되는 경로 (규칙 세트)

- VPC 리소스 간에 트래픽을 전송하는데 필요

- VPC 생성 시 모든 서브넷의 라우팅을 제어하는 기본 라우팅 테이블이 생성됨 (수정/추가 가능, 삭제 불가)

- 서브넷은 기본 라우팅 테이블과 연결되어 있으며 사용자 지정 라우팅 테이블을 적용하고자 할 경우 직접 연결 필요

- 대개 사용자 정의 라우팅 테이블을 생성하여 활용

 

⑦ 인터넷 게이트 웨이

- VPC와 인터넷 간에 통신을 위한 리소스로 VPC 내부 리소스가 인터넷에 연결하거나 혹은 외부에서 서브넷의 리소스에 접근하고자 할 경우 활용

- 인터넷 게이트웨이는 IPv4 및 IPv6 트래픽을 지원

- 사용자가 콘솔상에서 인터넷 게이트웨이 생성 후 대상 VPC와 직접 연결해야 함

- HA 구성, 수평적 확장을 통해 네트워크 트래픽에 가용성 위험이나 대역폭 제약이 발생하지 않음

 

⑧ 프라이빗 서브넷과 퍼블릭 서브넷

프라이빗 서브넷 퍼블릭 서브넷
- 인터넷 게이트웨이로 향하는 경로가 없는 라우팅 테이블과 연결된 서브넷
- 퍼블릭 인터넷에서 직접 엑세스 할 수 없음
(프라이빗 서브넷에 배치된 인스턴스는 Private IP만을 가짐)
- 보안 측면에서 일반적으로 웹서버 용도를 제외한 대부분의 인스턴스는 프라이빗 서브넷에 배치하는 것이 바람직함
- 인터넷 게이트웨이로 향하는 경로가 있는 라우팅 테이블과 연결된 서브넷
- 퍼블릭 인터넷에 대한 인바운드 및 아웃바운드 액세스를 지원
- 퍼블릭 서브넷에 배치된 인스턴스는 Private와 함께 Public IP를 가져야 함

 

 

⑨ 탄력적 IP 주소

- Elastic IP

- 동적 클라우드 컴퓨팅을 위해 설계된 고정 퍼블릭 IPv4 주소

- 일반적으로 인터넷 연결이 필요한데 퍼블릭 IP가 변경되면 안되는 경우에 EIP를 발급하여 리소스에 할당

- 인스턴스, 네트워크 인터페이스, NAT gateway 등에 연결하여 활용할 수 있음

- EIP는 AWS 계정에 할당되며 리전당 5개로 제한

더보기

** 탄력적 IP 요금에 대한 이해

- 실행 중인 인스턴스에 연결된 EIP 한 개는 무료로 사용할 수 있음

- 탄력적 IP 주소의 효율적인 사용을 보장하기 위해 EIP가 실행 중인 인스턴스와 연결되어 있지 않거나, 중지된 인스턴스에 연결되어 있는 경우 소액의 시간당 요금이 부과됨

- 그러므로 사용하지 않는 EIP는 연결 해제 후 바로 릴리즈를 통해 제거해야 추가 비용이 발생하지 않음

 

⑩ 탄력적 네트워크 인터페이스

- Elastic Network Interface

- VPC에서 인스턴스에 연결할 수 있는 가상 네트워크 인터페이스

- VPC 내 인스턴스에는 VPC의 IP 주소 범위에서 Private IP 주소가 할당된 기본 네트워크 인터페이스가 있음 (분리 불가)

- ENI를 생성하여 특정 인스턴스에 추가로 연결할 수도 있고, 추후 연결된 인스턴스에서 분리한 후 다른 인스턴스에 연결도 가능

** ENI 활용 예시 : 관리 네트워크 생성

- 하나의 EC2 인스턴스가 퍼블릭과 프라이빗 서브넷 동시에 사용

- 고급 네트워크 설정 (다중IP와 고급 라우팅)

- EC2 인스턴스의 ENI 이동

=> ENI는 EC2 인스턴스가 네트워크와 연결되는 가상의 네트워크 카드 (기본적으로 EC2 인스턴스는 하나의 ENI)

 

⑪ NAT 게이트 웨이

- 네트워크 주소 변환 (Network Address Translation) 서비스

- 간단하게 Private IP를 Public IP로 변환

- Private IP만을 보유한 인스턴스들이 아웃바운드 트래픽을 인터넷 등 VPC 외부로 전송할 수 있도록 하기 위해 활용 (업데이트나 패치 작업시 인터넷 연결이 필요)

더보기

**서브넷 구성 시 고려사항

- 가용 영역 내 서브넷을 몇 개 만들어야 하는가?

 

- NAT Gateway는 리전 내 특정 가용영역에 한 개만 생성하면 되는가?

=> 보통 실무에서는 NAT 여러개 (장애 발생 대비)

 

- 웹 티어 인스턴스는 어떤 서브넷에 배치해야 하는가?

=> 일반적으로 Public, 만약 로드밸런스와 결합할 때는 private 서브넷에 배치할 수도 있음.

 

⑫ 방화벽(Firewall)

- 미리 정의된 보안 규칙에 기반하여 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템으로, 내부 네트워크와 외부와의 통신을 제어하고, 내부 네트워크의 안전을 유지하기 위한 필수 기술

- 정의된 규칙에 기반하여 수신 트래픽을 허용하거나 차단하는데 이러한 규칙은 대개 IP 주소, 포트, 프로토콜 등 기반으로 설정함

 

* AWS는 네트워크 통신 및 트래픽을 IP 주소, 프로토콜, 포트 기준으로 허용/차단하기 위해 네트워크 ACL, 보안 그룹과 같은 가상 방화벽 서비스를 제공

- 네트워크 ACL : 서브넷 들어오기 전 서브넷 경계에서 송신 및 수신되는 트래픽을 제어하기 위한 방화벽 역할을 수행

- 보안그룹 : 리소스로 전송되는 인바운드 및 아웃바운드 트래픽을 제어하는 방화벽 역할

 

⑬ 보안 그룹

- 인스턴스와 같은 리소스 레벨에서 트래픽을 제어하기 위한 가상의 방화벽

- 트래픽은 모든 IP 프로토콜, 서비스 포트, 원본/대상 IP 주소(개별IP 또는 CIDR 블록)에 의해 제한될 수 있음

- VPC를 생성할 경우 기본 보안 그룹이 함께 제공되지만 이는 기본 보안 그룹이 적용된 인스턴스간의 통신을 위한 용도임

- 기본 설정은 모든 인바운드 트래픽 차단(허용규칙x) & 아웃바운드 트래픽 허용 (모두)

- 보안 그룹은 저장(Stateful) 특성을 가져서 인바운드 요청 상태를 저장하고 반환 요청에 대한 아웃바운드 트래픽을 자동으로 허용

- 아웃바운드 설정하지 않아도 허용된 것에 대해 상태를 저장했기 때문에 그대로 나갈 수 있어 규칙 없어도 됨.

 

⑭ 네트워크 ACL

- 1개 이상 서브넷 내부와 외부 트래픽을 제어하기 위한 방화벽 역할을 하는 보안 계층

- 기본 설정은 모든 인바운드 및 아웃바운드 IPv4 트래픽 허용

- 비저장(Stateless) 특성을 가지므로, 허용되는 인바운드 트래픽에 대한 응답은 아웃바운드 트래픽에 대한 규칙을 따르고 그 반대의 경우도 마찬가지임

 

* 보안그룹과 네트워크 ACL 특징정리

보안그룹 네트워크 ACL
각 리소스별로 적용(1차 보안계층) 서브넷 기준 적용 (선택적 2차 보안 계층)
룰에 대한 허용 규칙만 지원 룰에 대한 허용 및 거부 규칙 지원
등록된 모든 규칙을 평가하여 트래픽 허용 등록된 규칙의 번호순으로 트래픽 허용 및 거부
아웃바운드 요청에 대한 응답 자동 허용 아웃바운드 요청에 대한 응답 규칙 정으 ㅣ필요

 

 

[VPC 네트워크 간 / AWS VPC와 온프레미스 네트워크 간 Private IP를 통해 통신이 가능하도록 상호 연결하기 위한 방법]

① VPC 피어링

- 비공개적으로 VPC 간에 트래픽을 라우팅 할 수 있도록 하기 위한 VPC 사이의 네트워킹 연결을 의미함

- 격리된 2개의 VPC 내 리소스 간에 Private IP를 이용한 통신이 필요할 때 활용

- 동일 리전 내 VPC 간, 다른 리전에 있는 VPC, 다른 계정의 VPC와도 피어링 연결을 할 수 있음

- 피어링 연결 대상 VPC 간에는 CIDR 중복이 없어야 함

 

② Site-to-Site VPN

- 인터넷망을 활용하여 VPC와 온프레미스 네트워크를 안전하게 연결하기 위한 방식

- 네트워크 간 인터넷망에 VPN 터널 (보안터널)을 생성하고 전송 데이터를 암호화하여 통신

- 인터넷 프로토콜 보안(IPsec) VPN 연결을 지원

- VPN 터널 당 최대 대역폭은 1.25Gbps임

- 빠른 연결 설정이 가능하고 많은 비용이 들지 않는 장점

- 가상 프라이빗 게이트웨이(VGW)는 VPN이나 Direct Connect 구성을 위해 활용하는 리소스로 2개의 엔트포인트로 구성되어 고가용성을 지원 (VPN 연결에 2개의 터널을 구성)

- VPC에 가상 프라이빗 게이트웨이 생성 및 연결, 사용자 지정 라우팅 테이블 생성, 보안 그룹 규칙 업데이트 과정을 통해 VPN 생성

 

③ Direct Connect

- 인터넷망을 거치지 않고 AWS 전용 네트워크(전용선)을 통해 VPC와 온프레미스 네트워크를 연결하는 방식

- 1또는 10Gbps(최대 100Gbps, 암호화X)의 전용 프라이빗 네트워크 연결을 제공

- 대용량의 데이터를 빠르게 전송할 수 있는 하이브리드 네트워크 환경

- 회사 보안 정책 또는 특정 규제로 인해 AWS 클라우드에 호스팅된 애플리케이션이 프라이빗 네트워크를 통해서만 액세스되도록 해야 할 경우에도 필요

- LG Uplus..KINX...