클라우드(Cloud) 1팀

DDoS Best Practice AWS 아키텍처 분석

ekdnjs510 2024. 10. 1. 23:59
728x90

 

DDoS 완화기법 아키텍처 도구

  1. AWS Global Accelerator / AWS CloudFront
  2. AWS WAF
  3. Amozon Route 53
  4. Amazon API Gateway
  5. VPC
  6. Elastic Load Balancing
  7. Auto Scaling Group

 

목차

 

  1. AWS CloudFront
  2. AWS WAF
  3. ELB (Elastic Load Balancing)

 

 

AWS CloudFront

: 콘텐츠 전송 네트워크(CDN) 서비스이다.

: 트래픽 암호화와 액세스 제어를 통해 보안을 개선하고 AWS Shield Standard를 사용하여 추가 요금 없이 DDoS 공격으로부터 보호한다.

  • 정적 컨텐츠(images, CSS, JS, videos)
    • 콘텐츠를 엣지로케이션에 캐시하여 최종 사용자에게 콘텐츠를 빠르게 전송
    • 더 빠른 다운로드를 위해 컨텐츠자체를 더 작게 압축
  • 동적 컨텐츠(profile pages, ecommers carts, APIs)
    • AWS 글로벌 네트워크를 통한 가속화(경로 최적화)
    • 사용자와 가까운 곳에서 연결 종료(Edge에서 TCP/TLS 연결) => 연결 시에 발생하는 프로토콜 레벨의 오버헤드를 최적화 
  • 흐름
    • 정적>>캐시히트율 높이는 게 중요(추가지연 없이 가장 빠른 응답 가능)
      • 캐시 O -> 애플리케이션
      • 캐시미스인 경우: 엣지로케이션(최종사용자가 요청)->리저널 엣지 캐시(캐시여부확인)->애플리케이션(추가 옵션:오리진실드(중간캐시계층 추가)-캐시히트율을 개선하기위함) 
    • 동적>>통신연결을 위해서는 사전에 TCP연결을 수립(여러번의 데이터 패킷이 오가야함)
      • HTTPs 같은경우 : 추가적인 TLS연결 수립필요(암호화유형, 키교환->더많은 통신):여러번의 데이터패킷 왕복->왕복횟수가 늘어날수록 지연되는데 CloudFront는 이동거리 단축시켜줌
      • 지속적인 연결, 재사용가능 : 한번 연결이 수립되면 후속연결에서는 TCP/TLS 연결협상과정 제거하고 바로 HTTP통신으로 연결 가능 => 더 많은 병렬계층 다운로드와  헤드 압축 가능한 HTTP 2 제공

 

구현하는데 있어 여러 지역에서 사용하는 경우 시간 단축이 되어 효율적이지만 한 지역에서만 사용한다면 굳이 사용할 필요없는 구현이 될 아키텍처 도구..

 

더보기

[요금]

 

언제나 무료인 프리 티어에 포함된 항목
  • 매월 1TB의 데이터를 인터넷으로 전송
  • HTTP 또는 HTTPS 요청 1,000만 건/월
  • CloudFront 함수 간접 호출 200만 건/월
  • CloudFront KeyValueStore 읽기 200만 건/월
  • 무료 SSL 인증서
  • 제한 없음, 모든 기능 사용 가능

 

 

<AWS CloudFront 구현하기>

https://aws.amazon.com/ko/getting-started/hands-on/deliver-content-faster/?pg=ln&sec=hs

 

How to Deliver Content Faster – Amazon Web Services (AWS)

 

aws.amazon.com

 

 

AWS WAF

: AWS가 관리하는 웹 애플리케이션 방화벽

 

※HTTP(s) 기반 AWS 서비스가 아니면 WAF를 적용할 수 없음

 

  • WAF 사용방법
    1. WEB ACL 생성 : 검사 규칙 설정 이에 따라 AWS에서 관리해줌
    2. WAF를 AWS리소스(ALB, CloudFront, Amazon API Gateway)와 연결
  • 흐름
    • 최종 사용자가 WAF가 적용된 애플리케이션 리소스에 요청 -> WAF가 웹 ACL와 일치하는 지 검사하여 요청을 승인할 지 거절할지 판단

 

 

HTTP(s)에서 DDoS를 대응하는 데에 있어 매우 편리한 서비스이나.. HTTP(s)가 아닌 곳에서 적용할 수 없다는 점이 단점

 

<AWS WAF 구현하기>

 

https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html

 

Setting up AWS WAF and its components - AWS WAF, AWS Firewall Manager, and AWS Shield Advanced

The console provides the Rule visual editor and also a Rule JSON editor. The JSON editor makes it easy for you to copy configurations between web ACLs and is required for more complex rule sets, like those with multiple levels of nesting. This procedure us

docs.aws.amazon.com

 

[참고자료]

https://www.youtube.com/watch?v=fweHx0vFCS8

 

ELB (Elastic Load Balancing)

: 대규모 트래픽 분산 처리에 강점을 가지고 있어, DDoS 공격 시 트래픽을 여러 인스턴스에 나눠 처리할 수 있다. 공격이 발생하면 ELB는 자동으로 부하를 분산시키고, 시스템의 안정성을 유지한다.

 

※지속적으로 IP 주소가 바뀌며 IP 고정 불가능 : 항상 도메인 기반으로 사용

 

  • 특징
    • Health Check : 직접  트래픽을 발생시켜 Instance가 살아있는지 체크
    • Autoscaling과 연동 가능
    • 여러 가용영역에 분산 가능
더보기

로드 밸런싱?

 

: 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법

 

  • 로드 밸런서를 지원한다.
    • 애플리케이션 로드 밸런서(일반적인, IP고정 불가) - ALB
      • 트래픽을 모니터링 하여 라우팅 가능
      • 유저가 어떤 주소로 접속했느냐에 따라 다른 경로로 라우팅 (주소 읽기 가능)
    • 네트워크 로드 밸런서(ELB를 붙여서 고정 가능) - NLB
      • 속도가 빠름
      • TCP 기반 빠른 트래픽 분산
    • 게이트웨이 로드 밸런서 - GLB
      • 먼저 트래픽 체크 (사전에 방화벽,트래픽분석, 캐싱,인증, 로깅을 함)
      • 가상 어플라이언스 배포/확장 관리를 위한 서비
    • 클래식 로드 밸런서
      • 고전, 예전에 사용되던 타입 (현재 사용 X)

 

  • 각 로드 밸런서의 공통적인 흐름
    • 외부 클라이언트가 애플리케이션이나 서버에 요청
    • 로드 밸런서가 요청을 받아 백엔드 서버로 전달
    • 로드 밸런서 규칙에 따라 트래픽 분산
    • 처리 결과를 로드 밸런서가 다시 클라이언트에게 반환

 

[애플리케이션 로드 밸런스(ALB)]

 

  • 동작 흐름
    1. 클라이언트가 HTTP(S) 요청을 보냄
    2. ALB가 요청을 분석하여 경로 또는 호스트 규칙에 따라 적절한 서버로 요청을 전달
    3. 백엔드 서버가 요청을 처리하고 응답을 ALB를 통해 클라이언트에게 반환

 

 

 

 

 

[네트워크 로드 밸런스]

  • 동작 흐름
    1. 클라이언트가 TCP/UDP 요청을 보냄 (IP를 통해 요청)
    2. NLB는 요청을 처리할 수 있는 백엔드 서버로 직접 라우팅 (IP 기반)
    3. 서버가 응답을 보내면 NLB가 클라이언트에게 반환

 

 

 

 

[게이트웨이 로드 밸런스]

  • 동작 흐름
    1. 클라이언트가 요청을 보냄
    2. GLB는 요청을 가상 어플라이언스(예: 방화벽)로 전달하여 처리
    3. 처리된 결과가 백엔드 서버로 전달되고, 최종적으로 클라이언트에게 응답이 반환
더보기

 

GLB는 Geneve 캡슐화 방식을 사용하여 트래픽을 보안 장치로 전달합니다. 이 캡슐화된 패킷은 원본 트래픽이 수정되지 않고 보안 장치에 도달할 수 있게 해줍니다.

Geneve 캡슐화는 추가적인 메타데이터를 포함할 수 있어, 보안 장치가 트래픽을 더욱 정교하게 처리할 수 있도록 도와줍니다.

 

 

 

 

다양한 로드 밸런서를 가진만큼 여러 애플리케이션 또는 서비스를 지원하는 데 필요한 별도의 로드 밸런서 인스턴스를 생성해야 한다는 단점을 가지고 있다.

 

 

<AWS WAF 구현하기>

 

https://aws-hyoh.tistory.com/133

 

AWS Elastic Load Balancer(ELB) 쉽게 이해하기 #2

지난 시간에 이어서 Elastic Load Balancer(이하 ELB)에 대해 계속 이야기해보겠습니다. 첫 번째 문서에서 ELB는 VPC에 탑재하여 사용하는 서비스라고 말씀드렸습니다. 그렇기에 VPC에서 어떻게 구성되는

aws-hyoh.tistory.com

 

https://itguny04.tistory.com/24

 

[AWS] ELB(Elastic Load Balancer) 이론 & 실습

1. Elastic Load Balacer 란? Amazon Web Service를 공부하다 보면 로드밸런서라는 용어를 한 번쯤은 들어봤을 것이다. 로드밸런서는 다수의 컴퓨팅 리소스(EC2, Lambda, 등)를 부하 분산시켜주는 아주 중요한

itguny04.tistory.com

 

 

[참고]

https://aws.amazon.com/ko/
https://www.youtube.com/watch?v=fweHx0vFCS8
https://www.youtube.com/watch?v=mqtUMduyKjk

 

728x90