containerization

3 개의 포스트

500 Tbps의 용량: 글로벌 네트워크 확장의 16년 (새 탭에서 열림)

Cloudflare는 지난 16년간의 성장을 통해 전 세계 330개 이상의 도시에서 총 500Tbps의 외부 연결 용량을 확보하며 글로벌 네트워크의 중추적인 역할을 수행하고 있습니다. 이 거대한 용량은 단순히 트래픽을 처리하는 것을 넘어 대규모 DDoS 공격을 감내할 수 있는 '보안 예산'의 역할을 하며, 네트워크 전체에 분산된 지능형 소프트웨어를 통해 인간의 개입 없이도 초당 수십 테라비트급의 공격을 자동으로 방어합니다. 결과적으로 Cloudflare는 단순한 콘텐츠 전달 네트워크를 넘어 에지 컴퓨팅과 차세대 라우팅 프로토콜을 주도하는 지능형 인프라로 진화했습니다. ### 500 Tbps 용량의 의미와 네트워크 확장 * 500 Tbps는 피크 트래픽 수치가 아니라, transit 제공업체, 피어링 파트너, 인터넷 교환지(IX) 등과 연결된 모든 외부 포트 용량의 합계를 의미합니다. * 2010년 단일 서비스 제공업체로 시작한 이후, 현재는 전 세계 웹 트래픽의 20% 이상을 보호하는 330개 도시 규모의 거대 네트워크로 성장했습니다. * 일상적인 트래픽은 이 용량의 일부만 사용하며, 나머지 유휴 용량은 대규모 DDoS 공격을 흡수하고 차단하기 위한 일종의 '보안 버퍼'로 활용됩니다. ### 분산형 자동 방어 체계: 31.4 Tbps 공격의 차단 과정 * 2025년 발생한 31.4 Tbps 규모의 Aisuru-Kimwolf 봇넷 공격을 엔지니어의 개입 없이 단 35초 만에 자동으로 완화했습니다. * 모든 서버는 xdpd(eXpress Data Path)와 eBPF 기반의 l4drop 프로그램을 실행하여, 공격 트래픽이 CPU 자원을 소모하기 전에 네트워크 카드(NIC) 수준에서 즉시 폐기합니다. * dosd(DoS 데몬)가 각 서버의 샘플링 데이터를 바탕으로 공격 패턴을 분석하면, 이 규칙이 Quicksilver(분산 KV 저장소)를 통해 전 세계 모든 데이터 센터에 수초 내로 전파되어 동시 대응이 이루어집니다. * 중앙 집중식 스크러빙 센터로 트래픽을 돌리지 않고, 공격이 유입된 현장에서 즉시 처리함으로써 지연 시간을 최소화하고 가용성을 보장합니다. ### 차세대 라우팅 보안: RPKI와 ASPA * BGP 하이재킹과 경로 왜곡을 방지하기 위해 RPKI(리소스 공공키 기반구조)를 전면 도입하여 잘못된 경로로 유입되는 트래픽을 원천 차단합니다. * RPKI가 경로의 '소유권'을 확인한다면, 새롭게 도입 중인 ASPA(자율 시스템 제공자 인증)는 트래픽이 거쳐온 '경로의 정당성'까지 검증하여 경로 누출(Route Leak) 사고를 예방합니다. * Cloudflare는 이러한 프로토콜의 초기 채택자로서, 인터넷 전체의 보안 표준을 높이고 더 안전한 글로벌 라우팅 환경을 구축하는 데 기여하고 있습니다. ### AI 에이전트 부상에 따른 트래픽 변화 대응 * 현재 전체 HTML 요청의 4% 이상이 AI 크롤러와 학습 파이프라인에서 발생하고 있으며, 이는 기존 검색 엔진 크롤러에 필적하는 수준입니다. * AI 크롤러는 일반 사용자 브라우저와 달리 쉼 없이 최대 대역폭으로 리소스를 긁어가는 특성이 있어, 이를 일반적인 공격 트래픽과 구분하는 것이 새로운 기술적 과제로 부상했습니다. * TLS 핑거프린팅, 행동 분석, 로봇 배제 표준(robots.txt) 준수 신호 등을 결합하여 정당한 AI 트래픽은 허용하고 악의적인 수집은 차단하는 정교한 탐지 시스템을 운영합니다. Cloudflare의 사례는 현대 인프라가 단순히 하드웨어의 확장을 넘어, 소프트웨어 기반의 지능형 자동화와 강력한 에지 컴퓨팅 역량을 갖추어야 함을 시사합니다. 기업들은 전 세계 어디서나 일관된 성능과 보안을 제공받기 위해, 대규모 분산 네트워크 인프라와 결합된 클라우드 네이티브 보안 모델을 적극적으로 고려해야 합니다.

Amazon ECS 관리형 인스턴스를 위한 관리형 데몬 지원 발표 | Amazon Web Services (새 탭에서 열림)

Amazon ECS가 관리형 인스턴스(Managed Instances)에서 독립적인 에이전트 관리가 가능한 '관리형 데몬' 기능을 출시했습니다. 이제 플랫폼 엔지니어는 애플리케이션 팀의 배포 주기와 무관하게 모니터링, 로깅, 트레이싱 도구를 중앙에서 제어하고 업데이트할 수 있습니다. 이 기능은 데몬이 애플리케이션보다 먼저 시작되고 나중에 종료되도록 보장하여, 가시성의 공백 없는 안정적인 운영 환경을 제공합니다. ### 운영 효율성을 높이는 생명주기 분리 * 플랫폼 팀이 모니터링 및 로깅 에이전트를 애플리케이션 작업과 분리하여 독립적으로 배포, 업데이트 및 수정할 수 있습니다. * 에이전트 업데이트 시 애플리케이션 작업 정의(Task Definition)를 수정하거나 서비스를 재배포할 필요가 없어 운영팀 간의 조율 부담이 사라집니다. * '선 실행 후 종료(Start before stop)' 메커니즘을 통해 모든 인스턴스에서 애플리케이션이 실행되기 전 데몬이 먼저 활성화되도록 보장합니다. ### 유연한 자원 할당 및 배포 제어 * 특정 용량 공급자(Capacity Provider)를 대상으로 데몬을 배포할 수 있어 인프라 전반에 걸친 유연한 롤아웃이 가능합니다. * 데몬 전용 작업 정의를 통해 CPU 및 메모리 파라미터를 별도로 관리하며, 인스턴스당 단 하나의 데몬만 실행되어 시스템 자원 활용을 최적화합니다. * 배포 시 ECS가 인스턴스 교체 및 작업 마이그레이션을 자동으로 수행하며, 자동 롤백 기능을 통해 업데이트 중 발생할 수 있는 리스크를 최소화합니다. ### 심층적인 호스트 접근과 네트워킹 기술 * 새로운 `daemon_bridge` 네트워크 모드를 도입하여 애플리케이션 네트워크 구성과 격리된 상태에서 데몬과 작업 간의 통신을 지원합니다. * 권한 부여된 컨테이너(Privileged container), Linux 기능(Capabilities) 추가, 호스트 파일 시스템 경로 마운트 등 강력한 호스트 수준 접근 권한을 제공합니다. * 이러한 심층 접근 권한은 시스템 호출 모니터링이나 보안 검사 등 호스트 레벨의 세밀한 가시성이 필요한 도구 운영에 필수적입니다. 관리형 데몬 서비스는 추가 비용 없이 사용한 컴퓨팅 자원에 대해서만 요금이 부과됩니다. CloudWatch 에이전트나 타사 보안 솔루션을 운영하는 플랫폼 팀은 애플리케이션 가용성에 영향을 주지 않으면서 운영 도구를 최신 상태로 유지하기 위해 이 기능을 즉시 도입하는 것을 권장합니다.

Scaling down to speed up: How we improved efficiency of live process metrics by 100x (새 탭에서 열림)

Datadog은 프로세스 및 컨테이너 모니터링 시스템의 실시간 데이터 처리 방식을 '호스트 구독(Host Subscription)' 기반 모델로 전환하여 확장성 문제를 해결했습니다. 사용자가 현재 화면에서 보고 있는 특정 호스트(최대 50개)에 대해서만 2초 간격의 고빈도 수집을 활성화함으로써, 전체 트래픽 볼륨을 100배 줄이고 인프라 비용을 98% 절감하는 성과를 거두었습니다. 이 글은 불필요한 데이터 수집을 최소화하면서도 사용자 경험과 시스템 효율성을 동시에 개선한 기술적 여정을 다룹니다. ## 기존 실시간 데이터 수집의 한계 * **전체 활성화 방식의 비효율성:** 기존에는 테넌트 내 한 명의 사용자만 페이지를 조회해도 해당 테넌트 전체 인프라의 모든 호스트에서 2초 간격의 데이터 수집이 시작되었습니다. 이로 인해 초당 수백만 개의 프로세스 데이터가 유입되는 부하가 발생했습니다. * **수평적 확장 불가능:** 실시간 정렬 기능을 제공하기 위해 테넌트의 모든 데이터를 단일 서버의 메모리에 보관해야 했습니다. 이는 시스템을 수평적으로 확장하는 것을 불가능하게 만들었으며, 서버 사양을 높이는 수직적 확장에만 의존하게 했습니다. * **리소스 낭비:** 실제 사용자가 한 번에 확인하는 프로세스는 약 50개 내외임에도 불구하고, 보이지 않는 수만 개의 프로세스 데이터를 실시간으로 수집하고 처리하는 비효율이 존재했습니다. ## 사용자 가시성 중심의 설계 전환 * **실시간 수집 대상의 최소화:** 사용자가 보고 있는 화면에 노출된 프로세스가 실행 중인 호스트에 대해서만 실시간 모드를 활성화하도록 전략을 수정했습니다. * **데이터 용도 분리 및 정렬 로직 최적화:** 2초 간격의 실시간 데이터는 화면 갱신에만 사용하고, 10초마다 수행되는 정렬 작업에는 일반적인 10초 간격 데이터를 활용하도록 변경했습니다. * **시스템 단순화:** 실시간 뷰와 히스토리 뷰에서 동일한 정렬 로직을 사용할 수 있게 되어 시스템 복잡성이 줄어들었고, 고빈도 메트릭을 메모리에 상주시켜야 할 필요성도 사라졌습니다. ## 호스트 구독 모델 및 필터링 최적화 * **호스트 구독(Host Subscription) 도입:** 사용자가 현재 보고 있는 호스트 목록을 추적하고, 이 상태를 Kafka를 통해 인테이크(Intake) 서비스와 라이브 서버 간에 공유합니다. * **조기 필터링(Early Filtering):** 구독 정보를 바탕으로 데이터 수집 단계(Intake)에서부터 필요한 데이터만 선별하여 처리합니다. 이는 Datadog 에이전트와 백엔드 서버 모두의 부하를 줄이는 핵심 기여를 했습니다. * **성능 개선 결과:** 개념 증명(PoC) 단계에서 이미 라이브 데이터 서버의 메모리 사용량은 85%, CPU 사용량은 33% 감소했으며, 이는 시스템 전체의 안정성 향상으로 이어졌습니다. 대규모 인프라 모니터링 환경에서 모든 데이터를 실시간으로 수집하는 것은 막대한 비용과 확장성 문제를 야기합니다. 사용자의 가시성 범위 내로 수집 대상을 제한하고 데이터의 용도(갱신 vs 정렬)에 따라 수집 빈도를 이원화하는 접근 방식은 리소스 효율성을 극대화하면서도 고성능 실시간 뷰를 제공할 수 있는 실용적인 해결책이 됩니다.