Programming

[AWS, Certified Developer Associate] VPC

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

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!