2023. 12. 22. 11:43ㆍ클라우드/AWS
12월 AWS Enablement (12/22)
- Build Web Application Hands-On
- High Availability of Web Application
- Hands-On ALB AutoScaling
- High Performance of Web Application
- Hands-On CloudFront
- Web Application Architecture
High Performance of Web Application
Cache on Edge - Amazon CloudFront
- 600개 이상의 POP으로 구성된 글로벌 네트워크를 기반으로하는 콘텐츠 전송 네트워크(CDN) 서비스
- 낮은 대기시간과 높은 전송 속도로 데이터, 비디오, 애플리케이션 및 API를 전 세계 고객에게 안전하게 제공
- AWS 글로벌 인프라스트러겿와 긴밀하게 연결되어 있으며
Amazon CloudFront - 사용 사례
- Media Streaming
- Static web reesources
- Large file download
- Whole web site
- Mobile App (API)
Amazon CloudFront - Point of Presence (PoP)
AWS Edge network는 50개국 100개가 넘는 도시에 걸쳐
600개 이상의 PoP과
13개의 Regional Edge Cache로 구성
Amazon CloudFront - Network hop을 최소화
Amazon CloudFront - Network congestion을 최소화
HTML 페이지는 서버로부터 어떻게 전달되는가?
Amazon CloudFront가 적용 된다면?
Amazon CloudFront - DNS 기반 라우팅
- Performance
- PoP health
- Server capacity
- Network capacity
- Traffic characteristics
Amazon CloudFront - Cache Miss
Amazon CloudFront - Cache Hit
Amazon CloudFront - Refresh Miss
Amazon CloudFront - Cache 계층 구조
Viewer | CloudFront |
Origin | ||
Edge location Edge location Edge location Edge location |
Regional Edge Cache Regional Edge Cache |
Origin Shild (option) |
- 엣지 로케이션에 계층화된 캐시 구성
- L1 - Connection termination, hot object 캐싱
- L2 - 메인 캐시 계층, Hash를 이용한 캐시 볼륨 최적화
- L3 - Origin과의 Connection 관리, 컨텐츠 압축
- 레이어 선택은 동적이며 트래픽 유형에 맞게 조정
Amazon CloudFront
- Connection Collapsing : 동일한 객체에 대한 복수개의 동시 요처은 캐시 계층을 거치면서 축소
- Byte streaming : 각 캐시 계층은 첫번째 바이트가 도착하는 동시에 다음 계층으로 바로 전송 시작
Amazon CloudFront - Cache 계층 구조
Viewers ↔ PoP ↔ REC ↔ Origin
Amazon CloudFront - Origin Shiled
Amazon CloudFront - Cache 계층 구조
Viewers ↔ PoP ↔ REC ↔ REC (Origin Shiled) ↔ Origin
Amazon CloudFront - Viewer Access Control
- Signed URL / Signed Cookie를 이용하여 승인된 사용자만 다운로드 허용
- Geo-based allow / deny
- AWS WAF 및 Shiled Advanced와 통합
Amazon CloudFront - Origin Access Control
- S3 Origin
- S3에 대한 공개 액세스 차단
- Origin Access Identity(OAI) 혹은 Origin Access Control(OAC)를 사용하여 CloudFront만 액세스 허용
- Custom origin
- Managed prefixes list 활용
- 사전에 정의된 custom header를 기반으로 origin에서 액세스 제어
Amazon CloudFornt - Field level Encryption (FLE)
- POST 요청시 민감한 파라미터는 고객이 제공한 공개 키를 사용하여
CloudFront에서 암호화할 수 있으며 개인 키를 통해서만 복호화
Amazon CloudFront - Origin Failover
- Senario : Origin 접근 실패시 (캐시된 객체가 존재하지 않거나, 동적 컨텐츠 요청)
- Solution : Secondary Origin으로 자동 Failover
- CloudFront benefit :
- Origin의 응답 코드별 Failover 동작 설정
- 타임아웃 및 재시도 관련 세부 설정 가능
Amazon CloudFront - Origin Persistent Connection
- TCP/TLS 핸드 셰이크 오버헤드 최소화
- 확장된 TCP congestion window 유지
- 캐시가 불가능하거나 짧은 캐시 TTL을 기반으로 동작하는 API 성능을 개선
- Origin에서 TCP/TLS 관련 connection 부하를 절감
Amazon CloudFront - Faster with TLS 1.3
Amazon CloudFront - Content compression
Response Headers accept-ranges: bytes; access-control-allow-origin: * age: 6256 cache-control: public, max-age=15552000, must-revalidate content-encoding: br content-type: application/javascript |
Response Headers accept-ranges: bytes; access-control-allow-origin: * cache-control: public, max-age=15552000, must-revalidate content-encoding: gzip content-type: application/javascript |
HTTP : Past, Present and Future
HTTP 1.0 → HTTP 1.1 → HTTP 2.0 → HTTP 3.0
Amazon CloudFront - Enable HTTP/3
UDP 기반
Amazon CloudFront - Edge Computing
Lambda@Edge
Ideal for complex, longer-running functions
CloudFront Functions
Ideal for high-scale, latency-sensitive functions
Lambda@Edge vs CloudFront Functions
Features | Lambda@Edge | CloudFront Functions |
Runtime 지원 | Node.js, Python | JavaScript (ECMAScript 5.1 호환) |
실행 Location | CloudFront Regional Edge Cache | CloudFront Edge Locations |
함수 Trigger | Viewer request / Viewer response Origin request / Origin response |
Viewer request / Viewer response |
최대 수행 시간 | 5 seconds (viewer triggers) 30 seconds (origin triggers) |
1 millisecond 이하 |
Pricing | Request 횟수 및 함수 수행 시간 기준 과금 | Requet 횟수 기준 과금 |
최대 Memory | 128MB (viewer triggers) 10GB (origin triggers) |
2MB |
Package 크기 | 1MB (viewer triggers) 50MB (origin triggers) |
10KB |
Request Body Access | ○ | X |
Network / File System | ○ | X |
Features | Lambda@Edge | CloudFront Functions |
Use Case |
|
|
Amazon CloudFront - Data Transfer Cost
Amazon CloudFront - Observability
- Simple dashboards, Monitoring
(4xx/5xx error에 대한 알람 구성 등) - Real-time custom dashboards, troubleshooting, clickstream, tracking
- Ad hoc analytic or troubleshooting
- Trends, monthly reports
Amazon CloudFront - 분산 방어로 분산 공격에 대응
- 각 PoP은 수백 Gbps의 대역폭으로 연결
- 허용된 포트의 트래픽만 허용
- 들어오는 패킷을 인라인으로 검사하여 악성으로 판명되면 차단 - WAF Web ACL assocication
- 인프라(Layer 3 & Layer 4) DDoS 공격으로 부터 보호 - DDoS Shield (Advanced)
AWS WAF
First Line of Defense to Incoming Threats
AWS WAF Highly configurable and scalable cloud-native Web Application Firewall |
Amazon CloudFront Application Load Balancer (ALB) Amazon API Gateway AWS AppSync |
WAF 구성
WAF 동작
AWS Global Accelerator
Global Application의 Avaliability와 Performance를 향상 시키는 networking 서비스
Client → Global Accelerator → Aws Applications |
AWS Global Accelerator - Features
고정 IP 주소로 단일 혹은 여러 리전의 앱에 대한 고정 진입점 제공 |
ALBs, NLBs, EC2 인스턴스의 TCP와 UDP traffic에 대한 성능 개선 |
비정상 엔드포인트 감지로 30초 이내에 트래픽 장애 조치 (Failover) |
클라이언트 혹은 DNS 구성 변경 없이 AZ와 리전 간 엔드포인트 이동 |
모든 트래픽은 AWS backboneㅇ르 통과* 더 큰 대역폭과 트래픽 제어로 DDoS 공격에 대한 복원성을 가짐 |
* 중국 지역 제외
AWS Global Accelerator Traffic
Without Gloal Accelerator: routed over public internet
AWS Global Accelerator Traffic
With Global Accelerator: routed over Amazon global network
AWS Global Accelerator - Configuration
Accelerator IPs | Accelerator 1.2.3.4 Network Zone A 3.4.5.6 Network Zone B |
Listeners | TCP 1-65535 UDP 1-65535 |
Endpoint groups | us-est-1 Endpoints: ALB 1, ALB 2 eu-west-1 Endpoints: NLB 1, NLB3 |
AWS Global Accelerator - Jitter & Latency
첫번째 바이트 지연(P95)
클라이언트 위치 : US, 엔드포인트 : eu-west-1 (15일)
AWS Global Accelerator - TCP termination
AWS Global Accelerator - TCP Througput
- 양방향에 대한 TCP 파라미터 튜닝
- 엣지에서 리전의 TCP 느린 시작 비활성화
- 엣지에서 리전의 점보 프레임 사용
- 수신 윈도우, TCP 버퍼 크기 증가
- 혼잡 윈도우 크기 증가
AWS Global Accelerator - Data Transfer
Response Time
- WIth GAX : 175ms
- Without GAX : 325ms
AWS Global Accelerator - Cost
Fixed Fee 시간당 $0.025 |
+ | Data Transfer - Premium 전송 데이터의 GB당 요금 (트래픽의 주된 방향에 대해 시간당 계산) |
AWS Global Accelerator vs Amazon CloudFront
Key Features | AWS Global Accelerator | Amazon CloudFront |
Description | Layer 7 HTTP/S content delivery network | Layer 4 TCP/UDP proxy / Global traffic manager |
Protocol Support | HTTP(S) | Any protocol running over TCP or UDP |
Content caching | Yes | No |
Routing | DNS-based | Anycast |
Ip addressing | Dynamic IP address Unicast IPs per PoP (고정 IP 주소 획득 optioin) : 예정 |
2 global static IP addresses, Bring Your Own IP address ranges 가능 |
Failover | Native origin failover (HTTP error codes / timeoutes / Route 53 DNS) |
Built-in origin failover (↓30sec) No dependency on DNS TTLs |
Application hosting |
Amazon S3 buckets, HTTP servers Amazon MediaStore other servers from which CloudFront gets your files |
Application Load Balancers network Load Balancers EC2 instances + Elastic IPs |
'클라우드 > AWS' 카테고리의 다른 글
Web Application - Web Application Architecture (0) | 2023.12.22 |
---|---|
Web Application - Hands-On CloudFront (0) | 2023.12.22 |
Web Application - Hands-On ALB & AutoScaling (0) | 2023.12.22 |
Web Application - High Availability of Web Application (0) | 2023.12.22 |
Web Application - Build Web Application Hands-On (0) | 2023.12.22 |