AI

OSS CDPと顧客データ統合比較:RudderStack vs Segment代替 vs PostHog

オープンソースラボ編集部2026年6月14日

OSS CDPと顧客データ統合比較:RudderStack vs Segment代替 vs PostHog

Segmentは月$120〜(プロフェッショナルプランは月$10k+)・Amplitudeは月$49〜と、顧客データ基盤の費用は急増します。RudderStack(OSSのCustomer Data Platform)・PostHog(プロダクトアナリティクス + CD)・Jitsu(軽量イベント収集)はShopify代替として注目されるOSSのCDPソリューションです。

Customer Data Platform(CDP)の役割

CDPはWebサイト・モバイルアプリ・サーバーから発生するユーザーイベントを収集し、分析ツール・マーケティングツール・CRMに転送する基盤です。

  • イベント収集: ページビュー・クリック・フォーム送信・購入等のユーザー行動を記録
  • ID解決: 同一ユーザーの複数デバイス・セッションを紐づけ
  • データ転送: BigQuery・Snowflake・Salesforce等に自動転送
  • リバースETL: DWHのデータをCRM・メールツール等に逆方向に連携

主要ツールの概要

RudderStack

2019年に設立されたRudderStack Incが開発するオープンソースのCDPです。GitHubスター4k+。Segment互換のAPIを提供するため、既存のSegment SDKをそのままRudderStackに向けるだけで移行できます。100以上のデスティネーション(Salesforce・HubSpot・BigQuery・Amplitude等)への転送をサポートします。

# RudderStackをDockerで起動
git clone https://github.com/rudderlabs/rudder-server.git
cd rudder-server

# バックエンドの起動(PostgreSQL + RudderStack Server)
docker compose -f docker-compose.yml up -d

# バックエンドAPI: http://localhost:8080
# コントロールプレーン: https://app.rudderstack.com(クラウド版)
// RudderStack JavaScript SDK(Segment互換API)
// Segmentと同じAPIなのでコードほぼ変更なしで移行可能

const rudderanalytics = require("@rudderstack/analytics-js");

rudderanalytics.load(
  "YOUR_WRITE_KEY",
  "https://rudderstack.yourcompany.com/v1/batch",
  { logLevel: "INFO" }
);

// ページビューを記録
rudderanalytics.page("Home");

// ユーザーを識別(ログイン時)
rudderanalytics.identify("user-12345", {
  email: "user@example.com",
  name: "山田太郎",
  plan: "pro",
  company: "Acme Corp",
  createdAt: new Date("2026-01-01"),
});

// イベントを記録
rudderanalytics.track("Product Purchased", {
  productId: "prod-789",
  productName: "AI Writing Assistant",
  price: 4980,
  currency: "JPY",
  category: "Software",
});

// グループ(会社単位のトラッキング)
rudderanalytics.group("company-456", {
  name: "Acme Corp",
  industry: "Technology",
  employees: 100,
});
# RudderStack Python SDKでサーバーサイドイベントを送信
from rudder_analytics import Client

client = Client(
    "YOUR_WRITE_KEY",
    host="https://rudderstack.yourcompany.com"
)

# サーバーサイドイベント(購入確定時等)
client.track(
    user_id="user-12345",
    event="Order Completed",
    properties={
        "orderId": "ord-20260614-001",
        "total": 29800,
        "currency": "JPY",
        "products": [
            {"id": "prod-789", "name": "AI Writing Assistant", "price": 4980},
            {"id": "prod-101", "name": "Team Collaboration Tool", "price": 24820},
        ],
    }
)

PostHog

2020年にY Combinatorを経て設立されたPostHog, Inc.が開発するオープンソースのプロダクトアナリティクスプラットフォームです。GitHubスター24k+。ページビュー・ファネル・コホート・A/Bテスト・セッションリプレイ・機能フラグをセルフホストで利用できます。CDPとしての機能(イベント収集・転送)も提供しており、1ツールでアナリティクス全体をカバーできます。

# PostHogをDockerで起動(推奨: 4GB RAM以上)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"

# または Docker Compose
curl https://raw.githubusercontent.com/posthog/posthog/HEAD/docker-compose.hobby.yml -o docker-compose.yml
docker compose up -d

# WebUI: http://localhost:8000
// PostHog Next.jsでの統合(App Router)
// app/providers.tsx
"use client";
import posthog from "posthog-js";
import { PostHogProvider } from "posthog-js/react";
import { useEffect } from "react";

export function PHProvider({ children }: { children: React.ReactNode }) {
  useEffect(() => {
    posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, {
      api_host: "https://posthog.yourcompany.com",
      person_profiles: "identified_only",
      capture_pageview: false,  // App Routerではmanualでpage trackingを制御
    });
  }, []);
  return <PostHogProvider client={posthog}>{children}</PostHogProvider>;
}

// イベントを記録(コンポーネント内)
import { usePostHog } from "posthog-js/react";

export function PurchaseButton({ productId }: { productId: string }) {
  const posthog = usePostHog();

  const handlePurchase = () => {
    posthog.capture("purchase_button_clicked", { product_id: productId });
    // 決済処理...
  };

  return <button onClick={handlePurchase}>購入する</button>;
}
# PostHog Python SDK(サーバーサイド)
from posthog import Posthog

posthog = Posthog(
    project_api_key="phc_your_project_key",
    host="https://posthog.yourcompany.com"
)

# 機能フラグを確認(A/Bテスト)
flag_enabled = posthog.get_feature_flag("new-checkout-flow", "user-12345")
if flag_enabled:
    # 新しいチェックアウトフローを表示
    pass

# 実験(A/Bテスト)結果を記録
posthog.capture(
    distinct_id="user-12345",
    event="$experiment_started",
    properties={
        "$experiment_name": "checkout_flow",
        "$experiment_variant": "control" if not flag_enabled else "test",
    }
)

機能比較表

比較項目RudderStackPostHogJitsu
主な役割CDP・データ転送プロダクトアナリティクスイベント収集
Segment互換部分的
A/Bテスト
セッションリプレイ
デスティネーション数100+30+20+
BigQuery転送
GitHub Stars4k+24k+3k+

CDPと連携するCRMにはMarketingカテゴリ/categories/marketingのOSS CRMを参照してください。収集データを可視化するBIツールはDevOpsカテゴリ/categories/devopsのApache Supersetで構築できます。

FAQ

Q. SegmentからRudderStackへの移行はどのくらい大変ですか?

A. 非常に簡単です。RudderStackはSegment互換APIを実装しているため、ほぼコード変更なしで移行できます。

// Before(Segment)
analytics.load('YOUR_SEGMENT_WRITE_KEY');
analytics.track('Event Name', {properties});

// After(RudderStack)- 変更はURLだけ
rudderanalytics.load(
  'YOUR_RUDDERSTACK_WRITE_KEY',
  'https://rudderstack.yourcompany.com'
);
rudderanalytics.track('Event Name', {properties});  // ← 同じコード

デスティネーションの設定: Segmentのコントロールプレーンに設定していたデスティネーション(Salesforce・HubSpot・BigQuery等)をRudderStackのコントロールプレーンに再設定する必要があります。

Q. PostHogのセルフホスト版はどのくらいのスペックが必要ですか?

A. スケールに応じて異なります。月100万イベント以下: 2vCPU・4GB RAM・50GB SSD(月$20のVPS)で十分。月1000万イベント: 4vCPU・8GB RAM・200GB SSD推奨。PostHogはClickHouseをデータストアに使うため、ストレージの増加を考慮する必要があります。PostHogはhobbyモードで起動した場合、月100万イベントを超えるとWarningを表示し、有料クラウドへのアップグレードを提案しますが、セルフホスト版ではイベント数の制限なしに使えます。

Q. PostHogでA/Bテストを設定する方法は?

A. PostHog実験(Experiments)機能を使います。設定手順: ①PostHog管理画面 > Experiments > New Experiment②バリアント(Control/Test)を定義③ターゲットユーザーのロールアウト割合を設定④勝利基準(コンバージョンレート・ファネル完了数等)を設定⑤フロントエンドで機能フラグを確認してUIを分岐。統計的有意性はPostHogが自動計算し、「勝者」のバリアントを推薦します。

Q. リバースETL(DWHからCRMへのデータ連携)はどのツールで実現しますか?

A. RudderStackはリバースETL機能(Warehouse Sources)を提供します。設定例:

-- BigQueryのモデルクエリ(RudderStackが定期実行)
SELECT
  user_id,
  email,
  COUNT(DISTINCT order_id) AS total_orders,
  SUM(revenue) AS lifetime_value,
  MAX(order_date) AS last_order_date
FROM `project.dataset.orders`
WHERE status = 'completed'
GROUP BY user_id, email
-- このクエリ結果がHubSpot・Salesforce等のCRMに自動同期される

まとめ

ユースケース推奨ツール
Segment代替・マルチデスティネーションRudderStack
プロダクトアナリティクス・A/BテストPostHog
軽量イベント収集のみJitsu

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。