DDoS 완화기법 아키텍처 도구
- AWS Global Accelerator / AWS CloudFront
- AWS WAF
- Amozon Route 53
- Amazon API Gateway
- VPC
- Elastic Load Balancing
- Auto Scaling Group
목차
- AWS CloudFront
- AWS WAF
- 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
AWS WAF
: AWS가 관리하는 웹 애플리케이션 방화벽
※HTTP(s) 기반 AWS 서비스가 아니면 WAF를 적용할 수 없음
- WAF 사용방법
- WEB ACL 생성 : 검사 규칙 설정 이에 따라 AWS에서 관리해줌
- 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
[참고자료]
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)
- 애플리케이션 로드 밸런서(일반적인, IP고정 불가) - ALB
- 각 로드 밸런서의 공통적인 흐름
- 외부 클라이언트가 애플리케이션이나 서버에 요청
- 로드 밸런서가 요청을 받아 백엔드 서버로 전달
- 로드 밸런서 규칙에 따라 트래픽 분산
- 처리 결과를 로드 밸런서가 다시 클라이언트에게 반환
[애플리케이션 로드 밸런스(ALB)]
- 동작 흐름
- 클라이언트가 HTTP(S) 요청을 보냄
- ALB가 요청을 분석하여 경로 또는 호스트 규칙에 따라 적절한 서버로 요청을 전달
- 백엔드 서버가 요청을 처리하고 응답을 ALB를 통해 클라이언트에게 반환
[네트워크 로드 밸런스]
- 동작 흐름
- 클라이언트가 TCP/UDP 요청을 보냄 (IP를 통해 요청)
- NLB는 요청을 처리할 수 있는 백엔드 서버로 직접 라우팅 (IP 기반)
- 서버가 응답을 보내면 NLB가 클라이언트에게 반환
[게이트웨이 로드 밸런스]
- 동작 흐름
- 클라이언트가 요청을 보냄
- GLB는 요청을 가상 어플라이언스(예: 방화벽)로 전달하여 처리
- 처리된 결과가 백엔드 서버로 전달되고, 최종적으로 클라이언트에게 응답이 반환
GLB는 Geneve 캡슐화 방식을 사용하여 트래픽을 보안 장치로 전달합니다. 이 캡슐화된 패킷은 원본 트래픽이 수정되지 않고 보안 장치에 도달할 수 있게 해줍니다.
Geneve 캡슐화는 추가적인 메타데이터를 포함할 수 있어, 보안 장치가 트래픽을 더욱 정교하게 처리할 수 있도록 도와줍니다.
다양한 로드 밸런서를 가진만큼 여러 애플리케이션 또는 서비스를 지원하는 데 필요한 별도의 로드 밸런서 인스턴스를 생성해야 한다는 단점을 가지고 있다.
<AWS WAF 구현하기>
https://aws-hyoh.tistory.com/133
https://itguny04.tistory.com/24
[참고]
https://aws.amazon.com/ko/
https://www.youtube.com/watch?v=fweHx0vFCS8
https://www.youtube.com/watch?v=mqtUMduyKjk
'클라우드(Cloud) 1팀' 카테고리의 다른 글
[Cloud] AWS DDoS 대응을 위한 기본 환경 구성 (0) | 2024.10.30 |
---|---|
[Cloud] AWS WAF DVWA 구현 (0) | 2024.10.09 |
DDoS 공격에 대하여 (1) | 2024.09.25 |
[Cloud] 클라우드 플랫폼(Cloud Platform)이란? (1) | 2024.09.17 |
[Cloud] 클라우드 서비스(Cloud Service)란? (0) | 2024.09.17 |