가상 네트워크 Amazon VPC
Amazon Virtual Private Cloud(이후 VPC)는 AWS에서 생성할 수 있는 프라이빗 가상 네트워크 공간 입니다.
하나의 VPC를 논리적으로 나눠 분리할 수 도 있고 여러 VPC를 연결할 수도 있습니다. 인터넷에 공개하는 퍼블릭 VPC나 VPN(Virtual Private Network-가상 사설 네
트워크) 등을 이용해 접속하는 프라이빗 VPC도 구축할 수 있습니다.
- CIDR 블록 지정
- VPC를 만들 때 CIDR 블록(IP 주소 범위)를 지정하고 지정한 CIDR 블록 네트워크를 확보합니다.
- AWS는 서브넷 마스크를 16 ~ 28까지 지정할 수 있습니다.
- VPC는 일반적으로 프라이빗 IP 주소를 사용
- 퍼블릭 IP 범위에서 지정할 경우 외부 퍼블릭 IP와 겹치면 통신할 수 없으므로 기본적으로 프라이빗 IP 주소 공간을 CIDR 블록에 지정하는 것이 좋다.
- 온프레머스 환겨이나 다른 VPC 등 외부 네트워크와의 접속을 해야 한다면 접속할 네트워크와 VPC의 cIDR 블록이 중복되지 않게 주의해야 합니다.
- 호스트 주소는 여유를 갖도록 가능한 한 많이 확보해 두는 것이 좋습니다.
AWS가 관리용으로 사용하는 IP
만약 10.0.0.0/24를 VPC로 설정할 경우
- 10.0.0.0 : 네트워크 주소
- 10.0.0.1 : AWS에서 VPC 라우터용으로 예약 (Default Gateway)
- 10.0.0.2 : DNS 서버 주소, DNS 서버의 IP 주소는 기본 VPC 네트워크 범위에 2를 더한 주소 입니다. CIDR 블록 이 여러 개인 VPC의 경우, DNS 서버의 IP 주소가 기본 CIDR에 위치하게 됩니다.
- 10.0.0.3 : AWS에서 앞으로 사용하려고 예약한 주소
- 10.0.0.255 : 네트워크 브로드캐스트 주소
즉, 5개의 IP를 AWS가 사용합니다.
VPC 및 서브넷 생성
위의 내용들을 입력하면 간단하게 VPC를 만들 수 있습니다.
태넌시는 라이선스 및 보안 요구 사항으로 하드웨어를 독점하려는 경우에만 독점 옵션을 지정할 수 있습니다.
VPC만으로는 EC2와 같은 자원을 네트워크에 만들 수 없습니다. VPC 안에 더 작은 네트워크 단위인 서브넷을 만들어야 합니다.
라우팅 정보를 설정해 인터넷과 통신
라우팅 테이블
라우팅 테이블은 네트워크의 경로 정보입니다. AWS는 VPC에 라우팅 테이블을 생성하고 각 서브넷에 사용할 라우팅 테이블을 지정합니다. VPC를 통해 흐르는 패킷은 이 라우팅 테이블의 정보를 기반으로 경로를 결정합니다. VPC를 만들 때 기본적으로 하나의 라우팅 테이블이 만들어 집니다. 기본 상태에서는 VPC 내의 라우팅 정보만 있으므로 VPC 외부로는 통신할 수 없습니다. 즉, 처음 만들어진 VPC는 private VPC 입니다.
외부와 통신하려는 경우에는 외부 라우팅 정보를 추가해야 합니다. 예를 들어 대상 0.0.0.0/0(모든 네트워크)에 대해 인터넷 게이트웨이로 라우팅 테이블에 등록하면 인터넷 게이트웨이를 통해 인터넷과 통신할 수 있습니다.
인터넷 게이트웨이
인터넷 게이트웨이는 서브넷 안에 있는 EC2와 같은 자원이 인터넷과 통신할 수 있게 하기 위한 기능입니다.
인터넷 게이트웨이를 생성하고 서브넷의 라우팅 테이블에 설정하면 인터넷과 VPC가 서로 통신할 수 있게 됩니다.
- 퍼블릭 서브넷 : 인터넷 게이트웨이로 가는 경로가 설정된 서브넷
- 프라이빗 서브넷 : 인터넷 게이트웨이를 통해 인터넷과 통신할 수 없는 서브넷
EC2의 경우 퍼블릭 IP 또는 Elastic IP를 통해 소통할 수 있습니다.
NAT 게이트웨이
프라이빗 서브넷에 있는 EC2와 같은 자원은 일반적으로 인터넷과 통신할 수 없습니다. 인터넷과 통신해야 하는 경우 NAT 게이트웨이를 사용하면 됩니다. 인터넷 게이트웨이와 달리 인터넷에서 VPC로 통신할 수 없는 단반향 통신이므로 AWS 외부와 더 안전하게 통신할 수 있습니다.
NAT는 Network Address Translation의 약자로 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하는 것을 의미합니다.
즉, NAT 게이트웨이는 프라이빗 서브넷의 IP 주소를 NAT 게이트웨이의 퍼블릭 IP로 변환해 인터넷과 통신할 수 있게 해줍니다.
VPC 접근 제어 및 통신 로그 확인
VPC에는 서브넷 단위로 접근 제어를 설정할 수 있는 네트워크 접근 제어 목록(네트워크 ACL)이라는 기능이 있습니다.
보안 그룹과 조합해 접근 제어 설정이 가능합니다.
네트워크 ACL | 보안 그룹 | |
설정 단위 | 서브넷 단위로 설정 | 인스턴스(지원) 단위로 설정 |
허용/거부 설정 | 허용 및 거부 설정 가능 | 허용만 설정 가능 (허용하지 않은 모든 것은 거부) |
상태 저장 여부 | 상태 비저장(Stateless). 단일 패킷만 확인하므로 정보를 저장하지 않음 |
상태 저장(Stateful) 패킷과 관련된 세션까지 확인하므로 정보를 저장 |
규칙 우선 순위 | 등록된 규칙의 번호순으로 트래픽 허용 및 거부 | 등록된 모든 규칙을 평가해 트리픽 허용 |
- 네트워크 ACL이나 보안 그룹에서 허용되거나 거부된 통신 상황은 VPC 흐름 로그라고 하는 VPC 내의 IP 트래픽 상황을 로그로 저장할 수 있는 기능을 사용해 확인할 수 있습니다.
- 로그는 AWS 모니터링 서비스인 CloudWatch Logs 또는 S3에 저장할 수 있습니다.
- EC2와 같은 VPC의 자원은 IP 주소마다 네트워크 인터페이스(ENI, Elastic Network Interface)를 가집니다.
- 로그는 네트워크 인터페이스별로 출력되며 Elastic Load Balancing, RDS, RedShift와 같이 VPC에서 실행되는 모든 서비스 로그도 출력됩니다.
출처
https://product.kyobobook.co.kr/detail/S000200882352
'클라우드&인프라 > AWS 구조와 서비스' 카테고리의 다른 글
ELB로 부하를 분산시켜 가용성 향상 (0) | 2023.12.24 |
---|---|
VPC에서 VPC, 외부 서비스, 온프레미스와의 연결 (1) | 2023.12.24 |
네트워크 기초 지식 (1) | 2023.12.23 |
가상 서버 데이터 저장을 위한 EBS (0) | 2023.12.18 |
Amazon S3에 대해 (2) (0) | 2023.12.11 |