* 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...
'클라우드 서비스' 카테고리의 다른 글
[클라우드 서비스] Database Service _ 20241204 (2) | 2024.12.06 |
---|---|
[클라우드 서비스] Storage Service _ 20241204 (4) | 2024.12.06 |
[클라우드 서비스] Computing Service _ 20241203 (4) | 2024.12.05 |
[클라우드 서비스] Access Control _ 20241202 (0) | 2024.12.04 |
[클라우드 서비스] 클라우드 컴퓨팅 개요 _ 20241202 (6) | 2024.12.04 |