Networking and Content Delivery

2025. 10. 21. 19:02CERTIFICATES/AWS DEA-C01

VPC 및 서브넷

기초 개념

  • VPC는 리소스를 배포하기 위한 프라이빗 네트워크임 (리전 단위 리소스임)
  • 서브넷은 VPC 내부 네트워크를 분할하기 위한 것임 (가용 영역 단위 리소스임)
  • 퍼블릭 서브넷은 인터넷에서 접근 가능한 서브넷임
  • 프라이빗 서브넷은 인터넷에서 접근 불가능한 서브넷임
  • 인터넷 및 서브넷 간 접근을 정의하기 위해 라우팅 테이블을 사용함

VPC 다이어그램

인터넷 게이트웨이 및 NAT 게이트웨이

  • 인터넷 게이트웨이는 VPC 내 인스턴스가 인터넷과 연결되도록 도와줌
  • 퍼블릭 서브넷은 인터넷 게이트웨이로의 라우트를 가짐
  • NAT 게이트웨이(AWS 관리형)와 NAT 인스턴스(자가 관리형)는 프라이빗 서브넷 내 인스턴스가 프라이빗 상태를 유지하면서 인터넷에 접근할 수 있도록 허용함

네트워크 ACL 및 보안 그룹

  • NACL(Network ACL)
    • 서브넷으로 들어오고 나가는 트래픽을 제어하는 방화벽임
    • 허용(Allow) 규칙과 거부(Deny) 규칙을 모두 가질 수 있음
    • 서브넷 단위로 연결됨
    • 규칙에는 IP 주소만 포함됨
  • 보안 그룹
    • ENI(Elastic Network Interface) 또는 EC2 인스턴스로 들어오고 나가는 트래픽을 제어하는 방화벽임
    • 허용(Allow) 규칙만 가질 수 있음
    • 규칙에는 IP 주소뿐 아니라 다른 보안 그룹도 포함할 수 있음

Network ACLs vs Security Groups

보안 그룹 (Security Group) 네트워크 ACL (Network ACL)
인스턴스 수준에서 동작함 서브넷 수준에서 동작함
허용 규칙(Allow rules)만 지원함 허용 규칙과 거부 규칙(Deny rules)을 모두 지원함
상태 저장 방식임(Stateful): 어떤 규칙이든 상관없이 반환 트래픽은 자동으로 허용됨 비상태 방식임(Stateless): 반환 트래픽은 규칙에 의해 명시적으로 허용되어야 함
트래픽을 허용할지 결정하기 전에 모든 규칙을 평가함 트래픽을 허용할지 결정할 때 규칙 번호 순서대로 처리함
인스턴스 실행 시 사용자가 보안 그룹을 지정하거나 나중에 인스턴스에 연결한 경우에만 적용됨 연결된 서브넷 내 모든 인스턴스에 자동으로 적용됨 (따라서 사용자가 직접 보안 그룹을 지정할 필요가 없음)

VPC Flow Logs

  • 인터페이스로 들어오거나 나가는 IP 트래픽 정보를 캡처함
    • VPC 플로우 로그, 서브넷 플로우 로그, 탄력적 네트워크 인터페이스(ENI) 플로우 로그 등이 있음
  • 네트워크 연결 문제를 모니터링하고 트러블슈팅하는 데 도움을 줌
    • 서브넷에서 인터넷으로의 연결
    • 서브넷 간 연결
    • 인터넷에서 서브넷으로의 연결
  • AWS에서 관리하는 인터페이스(Elastic Load Balancer, ElastiCache, RDS, Aurora 등)의 네트워크 정보도 캡처함
  • VPC 플로우 로그 데이터는 S3, CloudWatch Logs, Kinesis Data Firehose로 전송할 수 있음

VPC 피어링

  • AWS 네트워크를 사용하여 두 개의 VPC를 프라이빗하게 연결함
  • 두 VPC가 동일한 네트워크에 있는 것처럼 동작하도록 함
  • CIDR(IP 주소 범위)이 서로 겹치면 안 됨
  • VPC 피어링 연결은 비전이적임(즉, 서로 통신해야 하는 각 VPC 간에 개별적으로 연결을 설정해야 함)

VPC 엔드포인트

  • 엔드포인트를 사용하면 공용 www 네트워크 대신 프라이빗 네트워크를 통해 AWS 서비스에 연결할 수 있음
  • 이를 통해 AWS 서비스 접근 시 보안이 강화되고 지연 시간이 감소함
  • VPC 엔드포인트 게이트웨이: S3 및 DynamoDB용임
  • VPC 엔드포인트 인터페이스: 대부분의 서비스용임 (S3와 DynamoDB 포함)
  • 오직 자신의 VPC 내에서만 사용됨

사이트 간 VPN 및 Direct Connect

  • 사이트 간 VPN
    • 온프레미스 VPN을 AWS에 연결함
    • 연결은 자동으로 암호화됨
    • 공용 인터넷을 통해 통신함
  • Direct Connect(DX)
    • 온프레미스와 AWS 간 물리적 연결을 설정함
    • 연결은 프라이빗하고, 보안성이 높으며, 속도가 빠름
    • 프라이빗 네트워크를 통해 통신함
    • 구축에 최소 한 달 정도 소요됨

VPC 정리

  • VPC: 가상 프라이빗 클라우드임
  • 서브넷(Subnets): 가용 영역(AZ)에 연결되며, VPC의 네트워크를 분할함
  • 인터넷 게이트웨이(Internet Gateway): VPC 수준에서 인터넷 접근을 제공함
  • NAT 게이트웨이 / 인스턴스: 프라이빗 서브넷에 인터넷 접근을 제공함
  • NACL: 비상태(Stateless) 방식이며, 서브넷의 인바운드 및 아웃바운드 규칙을 정의함
  • 보안 그룹: 상태 저장(Stateful) 방식이며, EC2 인스턴스나 ENI 단위에서 동작함
  • VPC 피어링(VPC Peering): IP 범위가 겹치지 않는 두 VPC를 연결하며, 비전이적(non-transitive)임
  • VPC 엔드포인트(VPC Endpoints): VPC 내에서 AWS 서비스에 대한 프라이빗 접근을 제공함
  • VPC 플로우 로그(VPC Flow Logs): 네트워크 트래픽 로그를 기록함
  • 사이트 간 VPN(Site to Site VPN): 온프레미스 데이터센터와 AWS 간 공용 인터넷 기반 VPN 연결임
  • Direct Connect: AWS로의 전용 프라이빗 연결임

AWS PrivateLink (VPC 엔드포인트 서비스)

  • 수천 개의 VPC에 서비스를 노출할 수 있는 가장 보안적이고 확장 가능한 방법임
  • VPC 피어링, 인터넷 게이트웨이, NAT, 라우팅 테이블 등을 필요로 하지 않음
  • 서비스 제공자 VPC에는 네트워크 로드 밸런서(NLB)가 필요하고, 고객 VPC에는 ENI(Elastic Network Interface)가 필요함

DNS란 무엇인가?

  • DNS(Domain Name System)는 사람이 읽기 쉬운 호스트 이름을 머신이 이해할 수 있는 IP 주소로 변환함
  • 예: www.google.com → 172.217.18.36
  • DNS는 인터넷의 핵심 기반 구조(backbone)임
  • DNS는 계층적 네이밍 구조를 사용함

DNS 용어 정리

  • 도메인 등록기관(Domain Registrar): Amazon Route 53, GoDaddy 등
  • DNS 레코드(DNS Records): A, AAAA, CNAME, NS 등
  • 존 파일(Zone File): DNS 레코드를 포함하는 파일임
  • 네임 서버(Name Server): DNS 질의를 해석하는 서버로, 권한 있는 서버 또는 비권한 서버가 있음
  • 최상위 도메인(TLD, Top Level Domain): .com, .us, .in, .gov, .org 등
  • 2차 도메인(SLD, Second Level Domain): amazon.com, google.com 등

DNS 동작방식

Amazon Route 53

  • 고가용성, 확장성, 완전관리형의 권한 있는 DNS 서비스임
    • 권한 있는 DNS란 사용자가 직접 DNS 레코드를 수정할 수 있음을 의미함
  • Route 53은 도메인 등록기관 역할도 수행함
  • 리소스의 상태를 확인(헬스 체크)할 수 있는 기능을 제공함
  • AWS 서비스 중 유일하게 100% 가용성 SLA를 제공함
  • 이름의 53은 전통적인 DNS 포트 번호(포트 53)를 의미함

Route 53 – 레코드

  • 도메인 트래픽을 어떻게 라우팅할지를 정의함
  • 각 레코드는 다음 항목을 포함함:
    • 도메인/서브도메인 이름: 예) example.com
    • 레코드 유형: 예) A 또는 AAAA
    • 값: 예) 12.34.56.78
    • 라우팅 정책: Route 53이 질의에 응답하는 방식
    • TTL(Time To Live): DNS 리졸버가 레코드를 캐시하는 시간
  • Route 53이 지원하는 DNS 레코드 유형은 다음과 같음:
    • 기본(필수) 유형: A / AAAA / CNAME / NS
    • 고급(Advanced) 유형: CAA / DS / MX / NAPTR / PTR / SOA / TXT / SPF / SRV

Route 53 – 레코드 유형

  • A: 호스트 이름을 IPv4 주소에 매핑함
  • AAAA: 호스트 이름을 IPv6 주소에 매핑함
  • CNAME: 호스트 이름을 다른 호스트 이름에 매핑함
    • 대상은 반드시 A 또는 AAAA 레코드를 가진 도메인 이름이어야 함
    • DNS 네임스페이스의 최상위 노드(Zone Apex)에는 CNAME 레코드를 생성할 수 없음
    • 예: example.com에는 생성할 수 없지만, www.example.com에는 생성 가능함
  • NS: 호스티드 존(Hosted Zone)에 대한 네임 서버를 지정함
    • 도메인 트래픽이 어떻게 라우팅될지를 제어함

Route 53 – 호스티드 존(Hosted Zones)

  • 도메인 및 그 하위 도메인 트래픽을 어떻게 라우팅할지를 정의하는 레코드를 담는 컨테이너임
  • Public Hosted Zones: 인터넷 상에서 트래픽을 라우팅하는 방법을 지정하는 레코드를 포함함 (공용 도메인 이름) 예: application1.mypublicdomain.com
  • Private Hosted Zones: 하나 이상의 VPC 내부에서 트래픽을 라우팅하는 방법을 지정하는 레코드를 포함함 (프라이빗 도메인 이름) 예: application1.company.internal
  • 호스티드 존당 월 0.50달러의 요금이 부과됨

Route 53 – Public vs. Private Hosted Zones

Amazon CloudFront

  • 콘텐츠 전송 네트워크(Content Delivery Network, CDN)임
  • 엣지(Edge) 위치에서 콘텐츠를 캐싱하여 읽기 성능을 향상시킴
  • 사용자 경험을 개선함
  • 전 세계적으로 수백 개의 엣지 로케이션(캐시 지점, Point of Presence)을 보유함
  • 전 세계 분산 구조로 인해 DDoS 공격 방어에 유리하며, AWS Shield 및 AWS WAF(Web Application Firewall)와 통합되어 동작함

CloudFront – Origins

  • S3 버킷
    • 파일을 배포하고 엣지에서 캐싱하기 위해 사용함
    • CloudFront를 통해 S3로 파일을 업로드할 때도 사용 가능함
    • 오리진 액세스 컨트롤(OAC, Origin Access Control)을 통해 보안을 강화함
  • VPC 오리진
    • VPC의 프라이빗 서브넷에 호스팅된 애플리케이션을 위한 오리진임
    • 애플리케이션 로드 밸런서(ALB), 네트워크 로드 밸런서(NLB), EC2 인스턴스를 포함함
  • Custom Origin (HTTP)
    • S3 웹사이트(정적 S3 웹사이트로 버킷을 먼저 활성화해야 함)
    • 임의의 공용 HTTP 백엔드도 오리진으로 설정 가능함

고수준에서의 CloudFront

CloudFront – S3를 Origin으로 사용

CloudFront vs S3 교차 리전 복제

  • CloudFront:
    • 전 세계 엣지 네트워크를 사용함
    • 파일은 TTL(예: 하루) 동안 캐싱됨
    • 전 세계 어디서나 접근 가능한 정적 콘텐츠에 적합함
  • S3 교차 리전 복제:
    • 복제를 원하는 각 리전에 대해 별도로 설정해야 함
    • 파일이 거의 실시간으로 복제됨
    • 읽기 전용(Read-only)임
    • 소수의 리전에서 낮은 지연 시간으로 접근해야 하는 동적 콘텐츠에 적합함

CloudFront – ALB 또는 EC2를 오리진으로 사용하기

VPC 오리진 사용

  • VPC의 프라이빗 서브넷에 호스팅된 애플리케이션에서 콘텐츠를 전달할 수 있음 (인터넷에 직접 노출할 필요 없음)
  • 프라이빗 대상에 트래픽을 전달할 수 있음:
    • 애플리케이션 로드 밸런서
    • 네트워크 로드 밸런서
    • EC2 인스턴스

공용 네트워크 사용

CloudFront – 캐시 무효화(Cache Invalidations)

  • 백엔드 오리진의 콘텐츠를 수정하더라도, CloudFront는 이를 즉시 인식하지 못하고 TTL이 만료될 때까지 기존 캐시된 콘텐츠를 계속 제공함
  • TTL을 무시하고 캐시를 강제로 새로 고치려면 CloudFront 무효화를 수행해야 함
  • 무효화 요청을 통해 전체 파일() 또는 특정 경로(/images/ 등)만 선택적으로 갱신할 수 있음

'CERTIFICATES > AWS DEA-C01' 카테고리의 다른 글

Machine Learning  (0) 2025.10.22
Management and Governance  (0) 2025.10.22
Security, Identity and Compliance  (0) 2025.10.21
Application Integration  (0) 2025.10.21
Analytics  (0) 2025.10.21