VPC (Virtual Private Cloud) & Subnets
- AWS Cloud 내 사설 네트워크
- 리전 별 리소스 (리전 별 각각 다른 리소스를 가짐)
- 각 VPC 내에는 서브넷 존재 (VPC 내 네트워크 분할)
- 서브넷은 AZ 별 리소스
- public subnet: 인터넷으로부터 접근 가능 (www)
- private subnet : 인터넷으로부터 접근 불가능
- VPC는 CIDR Range를 가짐 (VPC에서 허용하는 IP 범위)
- 기본 VPC : AZ마다 하나의 public subnet / Region 마다 하나의 VPC
IGW (Internet Gateway)
- subnet에 있는 VPC 인스턴스가 인터넷에 연결되도록 지원
- public subnet은 IGW로 라우팅
- IGW는 인터넷과 통신하는 방법을 알고있어 public subnet을 공개적으로 만듬
NAT Gateway (or NAT Instance)
- private subnet이 비공개를 유지한 채 인터넷에 접근할 수 있게 지원
- private subnet을 인터넷과 통신하게 하고싶음 but 인터넷으로부터의 접근은 막고싶을 때 사용
- ex) 소프트웨어 업데이트
- NAT Gateway : AWS에서 관리하므로 프로비저닝, 스케일링 관련 신경 쓸 필요 없음
- NAT Instance : 자체 관리
- 과정
- NAT GW or Instance를 public subnet에 배포
- private subnet에서 NAT으로 라우팅
- NAT은 IGW로 라우팅
NACL (Network ACL)
- 서브넷을 오고가는 트래픽을 제어하는 방화벽
- ALLOW / DENY 규칙 존재
- 서브넷에 연결
- IP 주소만을 규칙으로 가짐
- 트래픽은 EC2 인스턴스에 도달 전 NACL을 먼저 거침
- 기본 NACL은 모든 트래픽 허용
- 첫번째 방어 매커니즘
Security Groups
- ENI(탄력적 네트워크 인터페이스) / EC2 인스턴스 트래픽 제어
- ALLOW 규칙만 존재
- ENI(탄력적 네트워크 인터페이스) / EC2 인스턴스에 연결
- IP 주소 / 다른 보안그룹 규칙으로 가짐
- 트래픽은 EC2 인스턴스 도달
- 두번째 방어 매커니즘
VPC Flow logs
- 인터페이스로 가는 모든 IP 트래픽 정보를 Capture
- VPC 흐름, 서브넷 흐름, ENI 흐름 로그
- 모니터링 & 연결 관련 문제를 해결하는데 도움
- AWS가 관리하는 모든 것에서 네트워크 정보 Capture (ELB, ElastiCache, RDS, Aurora, etc..)
- 해당 로그는 S3, CloudWatch Logs에 보낼 수 있음
- Kinesis Data Firehose에서 볼 수 있음
VPC Peering
- 다른 리전에 있는 VPC를 하나의 네트워크에 있는 것처럼 프라이빗하게 연결하고자 할 때
- A에서 B로 VPC Peering
- 각 VPC의 CIDR(IP 범위)가 겹치지 않도록 해야함
- VPC Peering은 전이적이지 않으므로 (not transitive) 통신하려는 VPC 각각과 연결이 되어야함
- A <-> B 연결됨
- A <-> C 연결됨
- 이 때, B <-> C 는 통신이 안된다는 뜻 (B, C 간 VPC 피어링 필요)
VPC Endpoints
- VPC 내에서 AWS 서비스에 프라이빗하게 접근해야 할 때 (인터넷을 통하지 않고 통신) 사용
- AWS 서비스에 연결할 때 public internet network 대신 private network 이용 가능
- 모든 AWS Service는 공개되어있음
- ex) EC2 인스턴스 생성 시 AWS 서비스와 공개적으로 통신
- public subnet에 연결되지 않은 EC2 인스턴스의 경우 AWS 서비스(S3, DynamoDB 등)에 private하게 액세스 할 필요가 있음
- AWS 서비스에 접근하는 데에 있어 보안 강화 / 지연 감소
- VPC Endpoint Gateway 예시)
- VPC 내 private subnet에 EC2 인스턴스 존재
- S3, DynamoDB와 통신해야 하며, 이는 VPC 밖에서 공개적으로 위치
- VPC 내에 S3, DynamoDB 전용 VPC Endpoints GW를 만듬
- EC2 인스턴스는 VPC 엔드포인트로 통신 > S3, DynamoDB에 프라이빗하게 접근 (트래픽이 인터넷을 통하지 않음)
- VPC Endpoint Interfaces : S3, DynamoDB 외 나머지 서비스를 대상
- VPC 내 범위
DX (Direct Connect)
- On-premise Data Center와 VPC를 연결하고자 할 때 사용
- Site-to-Site VPN의 경우 자동으로 암호화 / 공개 인터넷을 통해 통신 / 연결이 빠름 (몇분 내)
- DX는 물리적으로 프라이빗하게 연결됨
- 공개 인터넷을 사용하지 않으므로 안전하고 빠름
- 완료까지 몇개월이 걸림
- VPN, Direct Connect 목적
Reference