2011년 링크드인(LinkedIn)에서 개발된 ‘아파치 카프카(Apache Kafka)’는 이벤트 스트리밍에서 널리 쓰이는 플랫폼 중 하나다. 카프카는 고성능 데이터 파이프라인, 스트리밍 애널리틱스, 데이터 통합, 미션 크리티컬 애플리케이션에 사용된다.
모든 데이터를 데이터 웨어하우스에 저장하고 야간 배치 처리를 사용하여 분석하는 것만으로는 더 이상 비즈니스 또는 프로세스를 적시에 모니터링 및 관리하기가 충분하지 않다. 대신에 이후의 심층 분석을 위해 데이터 저장 외에 간단한 데이터 스트림 실시간 분석을 수행해야 한다.
카프카의 부속물에는 아파치 플링크(Apache Flink), 아파치 삼자(Apache Samza), 아파치 스파크(Apache Spark), 아파치 스톰(Apache Storm), 데이터브릭스(Databricks), 버베리카(Ververica) 등이 있다. 카프카의 대안으로는 아마존 키네시스(Amazon Kinesis), 아파치 펄사(Apache Pulsar), 애저 스트림 애널리틱스(Azure Stream Analytics), 컨플루언트(Confluent), 구글 클라우드 데이터플로(Google Cloud Dataflow) 등이 있다.
단, 카프카의 단점은 대규모 카프카 클러스터 구성이 까다로울 수 있다는 것이다. 컨플루언트 클라우드(Confluent Cloud)와 아파치 카프카용 아마존 관리형 스트리밍(Amazon Managed Streaming) 등 카프카의 상용 클라우드 버전을 사용하면 이 문제와 다른 문제를 해결할 수 있다(유료).
아파치 카프카란?
아파치 카프카는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합, 미션 크리티컬 애플리케이션을 위한 오픈소스, 자바/스칼라, 분산 이벤트 스트리밍 플랫폼이다. 카프카 이벤트는 토픽별로 구성되고 저장된다. 카프카의 핵심 API는 5개이며, 다음과 같다.
• Admin API: 토픽, 브로커, 기타 카프카 객체를 관리하고 검사한다.
• Producer API: 1개 이상의 카프카 토픽에 이벤트 스트림을 게시(작성)한다.
• Consumer API: 1개 이상의 토픽을 구독하고(읽고) 여기에 생성된 이벤트 스트림을 처리한다.
• Kafka Streams API: 스트림 처리 애플리케이션과 마이크로서비스를 구현한다. 이는 변환/통합, 연결 등의 스테이트풀 운영/윈도우 설정/이벤트 시간에 기초한 처리 등 이벤트 스트림을 처리할 수 있는 더 높은 수준의 기능을 제공한다. 1개 이상의 토픽에서 출력을 생성하고 입력 스트림을 다운 스트림으로 효과적으로 변환하기 위해 1개 이상의 토픽에서 입력을 읽어 들인다.
• Kafka Connect API: 카프카와 통합할 수 있도록 외부 시스템 및 애플리케이션의 이벤트 스트림을 소비하거나(읽거나) 생성하는(작성하는) 재사용 가능한 데이터 가져오기/내보내기 커넥터를 구축하고 실행한다. 물론 포스트그레SQL와 같은 관계형 데이터베이스의 커넥터는 테이블 세트의 모든 변경사항을 캡처할 수 있다. 하지만 카프카 커뮤니티가 이미 수백 개의 (바로 사용할 수 있는) 커넥터를 제공하기 때문에 자체 커넥터를 구축할 필요가 없다.
스트림 API(Streams API)로 쉽게 처리할 수 있는 것보다 더 복잡한 스트림 처리를 구축하려면 카프카와 아파치 삼자(아래에서 설명) 또는 아파치 플링크와 통합할 수 있다. 아파치 카프카의 상용 버전은 컨플루언트를 고려할 수 있다.
카프카는 어떻게 작동할까?
카프카는 고성능 TCP 네트워크 프로토콜을 통해 통신하는 서버와 클라이언트로 구성된 분산 시스템이다. 베어메탈 하드웨어, 가상머신 및 컨테이너 온프레미스, 클라우드 환경에 배포할 수 있다.
서버: 카프카는 여러 데이터센터 또는 클라우드 리전에 걸쳐 있는 1개 이상의 서버 클러스터로 실행된다. 이러한 서버 중 일부는 브로커라는 스토리지 계층을 형성한다. 다른 서버는 카프카 커넥트(Kafka Connect)를 실행하여 이벤트 스트림으로 데이터를 계속해서 가져오고 내보내 카프카와 관계형 데이터베이스 및 기타 카프카 클러스터 등의 기존 시스템과 통합한다. 미션 크리티컬 사용 사례를 구축할 수 있도록 카프카 클러스터는 확장성과 내결함성이 뛰어나다. 서버 중 하나라도 장애가 발생하면 다른 서버가 작업을 넘겨받아 데이터 손실 없이 지속적인 작동을 보장한다.
클라이언트: 카프카 클라이언트를 사용하면 네트워크 문제 또는 시스템 장애 발생 시에도 이벤트 스트림을 대규모/병렬/내결함성 방식으로 읽고, 쓰고, 처리하는 분산 애플리케이션 및 마이크로서비스를 작성할 수 있다. 카프카에는 일부 클라이언트가 포함돼 있으며, 카프카 커뮤니티에서는 수십 개의 클라이언트가 제공한다. 카프카 클라이언트는 상위 수준의 카프카 스트림(Kafka Streams) 라이브러리를 비롯해 자바, 스칼라, 고, 파이썬, C/C++, 기타 프로그래밍 언어뿐만 아니라 REST API에서 사용할 수 있다.
아파치 삼자(Apache Samza)란?
아파치 삼자도 (아파치 카프카와 함께) 링크드인에서 처음 개발된 오픈소스 스칼라/자바 분산 스트림 처리 프레임워크다. 삼자를 사용하면 아파치 카프카를 포함한 여러 소스의 데이터를 실시간으로 처리하는 스테이트풀 애플리케이션을 구축할 수 있다. 삼자의 주요 기능은 다음과 같다.
• 통합 API: 데이터 소스와 독립적인 방식으로 애플리케이션 로직을 설명한다. 동일한 API가 배치 및 스트리밍 데이터를 모두 처리할 수 있다.
• 모든 수준에서의 연결: 모든 소스의 데이터를 처리하고 변환한다. 삼자는 아파치 카프카, AWS 키네시스, 애저 이벤트 허브(서비스형 애저 네이티브 카프카), 엘라스틱서치, 아파치 하둡과의 기본 통합된다. 또 자체 소스와 통합하기도 쉽다.
• 임베디드 라이브러리: 기존 애플리케이션과 통합되며, 스트림 처리를 위해 별도의 클러스터를 가동하고 운영할 필요가 없다. 삼자를 자바/스칼라 애플리케이션에 내장된 경량 클라이언트 라이브러리로 사용할 수 있다.
• 한 번 작성으로 모든 곳에서 실행: 퍼블릭 클라우드부터 컨테이너 환경, 베어메탈 하드웨어까지 어디서나 애플리케이션을 실행할 수 있는 유연한 배포 옵션을 제공한다.
• 관리형 서비스: 아파치 YARN 등의 인기 클러스터 관리자와 통합하여 스트림 처리를 관리형 서비스로 실행한다.
• 내결함성: 장애 발생 시 관련된 상태와 작업을 투명하게 마이그레이션한다. 삼자는 신속한 장애 복구를 위해 호스트 선호도(host-affinity) 및 점진적 체크 포인트를 지원한다.
• 대규모 환경 지원: 몇 테라바이트에 이르는 상태를 사용하고, 수천 개의 코어에서 실행되는 애플리케이션에서 테스트를 거쳤다. 삼자는 링크드인, 우버, 트립어드바이저, 슬랙 등의 여러 대기업을 지원하고 있다.
카프카와 컨플루언트
컨플루언트 플랫폼(Confluent Platform)은 아파치 카프카의 상용 버전이다. 온프레미스 및 클라우드로 제공된다. 컨플루언트 클라우드는 처음부터 서버리스에 유연하며 비용 효율적인 완전 관리형 클라우드 네이티브 서비스로 구축됐다. AWS, 마이크로소프트 애저, 구글 클라우드 플랫폼에서 실행된다.
주요 클라우드 서비스 업체에서의 카프카
아마존의 아파치 카프카용 관리형 스트리밍(Managed Streaming for Apache Kafka; MSK)은 AWS에서 컨플루언트 클라우드 및 아마존 키네시스와 공존한다. 이 3가지 모두 기본적으로 같은 서비스를 수행한다. 마이크로소프트 애저에서 HD인사이트(HDInsight) 기반의 아파치 카프카와 컨플루언트 클라우드는 애저 이벤트 허브(Azure Event Hubs) 및 애저 스트림 애널리틱스(Azure Stream Analytics)와 공존한다. 구글 클라우드에서는 구글 클라우드 데이터플로우(Google Cloud Dataflow), 구글 클라우드 데이터프록(Google Cloud Dataproc), 구글 클라우드 펍/섭(Google Cloud Pub/Sub), 구글 클라우드 빅쿼리(Google Cloud BigQuery)가 컨플루언트 클라우드와 공존한다.
카프카 사용 예시
컨플루언트의 고객사 ‘텐센트(Tencent)’는 카프카를 사용하여 지역 간 로그 수집, 머신러닝 플랫폼 및 마이크로서비스 간 비동기 통신을 위한 데이터 파이프라인을 구축했다. 이 회사는 단일 카프카 클러스터에서 얻을 수 있는 것보다 더 많은 처리량과 더 짧은 지연 시간이 필요했기 때문에 카프카 클러스터를 프록시 계층으로 래핑하여 최대 240Gb/s의 클러스터 대역폭을 통해 하루 10조 개 이상의 메시지를 처리하는 연합 카프카 설계를 생성했다.
마이크로소프트 애저는 컨플루언트 클라우드, MQTT 브로커 및 커넥터, 애저 코스모스 DB의 분석 스토어, 애저 시냅스 애널리틱스, 애저 스프링 클라우드를 통해 프로토타입 엔드투엔드 IoT 데이터 처리 솔루션을 구축했다.
ACERTUS는 컨플루언트 클라우드, ksqlDB(데이터 스트리밍에 특화된 SQL 데이터베이스), AWS 람다, 스노우플레이크 데이터 웨어하우스를 사용해 엔드투엔드 차량 관리 시스템을 구축했다. 이 회사는 해당 시스템을 통해 대부분의 수동 시스템을 대체했고, 도입 1년 차에 1,000만 달러 이상의 수익을 발생시켰다고 보고했다.
지금까지 살펴본 것처럼 카프카는 스트리밍 데이터가 필요한 실시간 대규모 문제를 해결할 수 있다. 이와 동시에, 카프카 기반 솔루션을 설계하고 카프카를 분석 및 스토리지와 상호 연결하는 많은 방법이 존재한다. ciokr@idg.co.kr
VPN (가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다.
동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다.
무료 VPN, 정말 괜찮을까?
무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다.
보안 우려
대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다.
속도와 대역폭 제한
무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다.
서비스 제한
무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다.
광고 및 추적
일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다.
제한된 기능
무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다.
유료 VPN의 필요성
최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다.
그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다.
보안 강화
해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다.
개인 정보 보호
인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다.
지역 제한 해제
해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다.
빠르고 안전한 유료 VPN, 서프샤크 VPN
뛰어난 보안
서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다.
다양한 서버 위치
서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다.
속도와 대역폭
서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다.
다양한 플랫폼 지원
서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다.
디바이스 무제한 연결
서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.