Reduce AWS Latency by 200x: Drop from 7ms to 35μs
- AWS 아키텍처 설계 시 컴포넌트 배치(리전, AZ, 배치 그룹)에 따라 지연 시간과 데이터 전송 비용이 크게 달라지므로 이를 반드시 고려해야 합니다. 🗺️
- 가장 높은 지연 시간은 리전 간 배치(약 7ms)에서 발생하며, VPC 피어링을 사용하고 데이터 전송 비용이 가장 높습니다. 🌐
- 동일 리전 내 다른 가용 영역(AZ)에 배치 시 약 300μs의 지연 시간이 발생하며, 고가용성(HA)을 위한 일반적인 구성이지만 AZ 간 데이터 전송 비용이 발생합니다. ⚡
- 동일 가용 영역(AZ) 내 배치 시 약 100μs의 지연 시간으로 더 낮고, 데이터 전송 비용이 발생하지 않습니다. 🏡
- 최저 지연 시간(약 35μs)은 클러스터 타입의 배치 그룹 내 VM 배치로 달성 가능하며, 초고속 매매(HFT)와 같은 초저지연 애플리케이션에 적합합니다. 🚀
- 배치 그룹 내 VM은 동일 하드웨어를 사용하므로 장애 발생 가능성이 높아 지연 시간, 가용성, 비용 간의 트레이드오프를 신중하게 고려해야 합니다. ⚖️
- 공유 배치 그룹을 활용하면 다른 계정의 VM과 공동 배치하여 거래소와 같은 서비스에 초근접 배치가 가능합니다. 🤝
- 크로스-AZ 데이터 전송 비용은 Kafka 같은 분산 시스템이나 데이터 복제 데이터베이스에 막대한 영향을 미치므로, 스테이트리스 애플리케이션에 더 적합합니다. 💸
- 테스트는 C++ 애플리케이션과 SBE 프로토콜을 사용하여 1,000 메시지/초 전송으로 지연 시간과 비용을 측정했으며, Prometheus/Thanos로 데이터를 수집했습니다. 🔬