**小型 Kafka: 無料 t3.micro 上で Tansu と SQLite を実行**

2026/01/20 20:38

**小型 Kafka: 無料 t3.micro 上で Tansu と SQLite を実行**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

このドキュメントは、Docker Compose と SQLite ストレージを使用して、AWS t3.micro インスタンス上で軽量かつダウンタイムゼロの Tansu Kafka‑互換ブローカーを実行する方法を示しています。
• t3.micro は 1 GiB のメモリと約10 MB/s のベースライン EBS スループット(最大約260 MB/s)を提供し、これは小規模なブローカーに十分です。ブローカーのメタデータとメッセージは単一の

tansu.db
ファイルに収まり、S3 にバックアップできます。
• 設定手順:Amazon Linux 2023 パッケージ(
spal-release
docker-compose
)をインストールし、
containerd.service
を有効化、
ec2-user
docker
グループに追加した後再起動します。Docker‑Compose ファイルは最新の Tansu イメージ(
ghcr.io/tansu‑io/tansu
)を使用し、環境変数として
ADVERTISED_LISTENER_URL
(例:
tcp://<instance-hostname>:9092/
)、
RUST_LOG=warn

STORAGE_ENGINE="sqlite://data/tansu.db"
を設定します。
ホストディレクトリ
./
はコンテナ内の
/data/
にマウントされ、ポート 9092 で Kafka が公開されます。
• テスト中に観測されたメモリ使用量は、初期約18.9 MB からスケーリング後に約27.3 MB に増加し、システムの空きメモリは >500 MiB のままでした。
• パフォーマンステスト(
kafka-producer-perf-test
)では、約200 k 件のレコードを約7 k rec/sec(≈6.8 MB/s)で送信し、平均遅延は ~35 ms、最大は 206 msでした。
• ブローカーのダウンタイムゼロバックアップ戦略は S3 ストレージエンジンを使用しており、複数のステートレスブローカーが同時に単一バケットを共有できます。
• 今後の方向性には、
cargo flamegraph
を用いた null エンジンのチューニング、CPU ボトルネック最適化、レイヤー(Route, Layer, Process)のコンポーズ可能な構成、オンデマンド展開(例:Fly 上の Tigris)、CI スモークテストなどが含まれます。
• 全体として、このセットアップは、完全に Kafka 互換のブローカーを AWS フリーティアインスタンスで低コストで実行しつつ、予測可能なパフォーマンスと S3 完全状態バックアップによる簡易的な災害復旧を提供できることを示しています。

本文

AWS では t3.micro インスタンス(1 GiB RAM、約10 MB/s のベースライン EBS スループット)で利用できるフリーティアが提供されています。
これは初期段階のプロジェクトを立ち上げるには理想的で、必要に応じて最大約260 MB/s まで伸びます。
CPU クレジットは制限要因になるため、常に確認しておきましょう。


実験:t3.micro 上の Tansu ブローカー

すべてのメタデータは

tansu.db
に保存されます。
そのファイルをコピーするだけで環境のバックアップ・復元が可能です。
ゼロダウンタイム構成では、S3 ストレージエンジンを使用して複数のステートレスブローカーが同じバケットを共有できます。

1️⃣ Amazon Linux 2023 の t3.micro を起動

sudo dnf install -y spal-release
sudo dnf install -y docker-compose
sudo systemctl enable containerd.service
sudo usermod -a -G docker ec2-user
sudo /sbin/shutdown -r now

再起動後にログインし、

compose.yaml
を作成します。

services:
  tansu:
    image: ghcr.io/tansu-io/tansu
    environment:
      ADVERTISED_LISTENER_URL: tcp://ec2-35-179-120-103.eu-west-2.compute.amazonaws.com:9092/
      RUST_LOG: ${RUST_LOG:-warn}
      STORAGE_ENGINE: "sqlite://data/tansu.db"
    volumes:
      - ./:/data/
    ports:
      - 9092:9092

注意

ADVERTISED_LISTENER_URL
はご自身のインスタンス DNS 名に置き換えてください。

ブローカーを起動します:

docker compose up -d

2️⃣ リソース使用量の確認

ps -p $(pgrep tansu) -o rss= | awk '{print $1/1024 " MB"}'
# → 約18.9 MB

3️⃣ テストトピックを作成

docker compose exec tansu /tansu topic create test
docker compose exec tansu /tansu topic list | jq '.[].name'
# → "test"

4️⃣ ローカル Mac Mini(4 GB RAM)からの性能テスト

kafka-producer-perf-test \
  --topic test \
  --num-records 200000 \
  --record-size 1024 \
  --throughput 7000 \
  --producer-props bootstrap.servers=ec2-35-179-120-103.eu-west-2.compute.amazonaws.com:9092

典型的な出力(≈ 7 MB/s、< 70 ms のレイテンシ):

200000 records sent,
6989.3 records/sec (6.83 MB/sec),
35.56 ms avg latency,
206.00 ms max latency,
…

なぜこれがうまくいくのか

  • 低コスト – t3.micro で約 $0/時。
  • CPU クレジット蓄積 – 負荷スパイク時にクレジットを消費し、アイドル時は貯める。
  • 簡単なスケーリング
    tansu.db
    を大きいインスタンス(例:t3.xlarge)へコピーすれば即座に拡張可能。
インスタンスvCPUベースライン %CPU クレジット/時
t3.micro210%12
t3.small220%24
t3.medium420%24
t3.large230%36
t3.xlarge440%96
t3.2xlarge880%192

ブローカーのメモリ使用量

ps -p $(pgrep tansu) -o rss= | awk '{print $1/1024 " MB"}'
# → t3.micro で約27 MB

システムメモリスナップショット

total   used    free   shared buff/cache available
916 MiB 230 MiB   96 MiB     0 MiB 589 MiB 552 MiB

ブローカーは非常にフレキシブルで、バイト単位を効率的に利用し CPU ボトルネックを回避しています。


追加リソース

  • Tansu をクローン&スター:https://github.com/tansu-io/tansu
  • その他の記事:
    • Null ストレージエンジンでのチューニング(cargo flamegraph)
    • SQLite の CRC32 最適化
    • Route、Layer & Process Kafka Messages with Tansu Services
    • Rust で実装された低レベル Kafka プロトコル
    • Kafka メッセージを Parquet に変換
    • Fly 上での Tansu と Tigris の運用
    • Bash Automated Testing System を使ったスモークテスト

Tansu は Apache ライセンス下にある非同期 Rust ベースの Kafka 互換ブローカー、プロキシ、初期段階クライアント API で、メモリ・Null・PostgreSQL・SQLite・S3 など複数のストレージエンジンをサポートします。Docker イメージを実行できるクラウドプロバイダーならどこでも動作します。

同じ日のほかのニュース

一覧に戻る →

2026/01/25 4:04

**BirdyChat、WhatsAppと相互運用可能な初の欧州チャットアプリに登場**

## Japanese Translation: BirdyChat は、デジタル・マーケッツ法(DMA)の主要要件を満たす形で、WhatsApp と直接相互運用可能な最初の欧州チャットアプリになると発表しました。2025 年後半から、欧州経済領域(EEA)内のユーザーは、電話番号または業務メールアドレスを入力するだけで、任意の WhatsApp コンタクトとの1対1の会話を開始できます。この機能は公式に DMA 承認されたインターフェースを使用しており、メッセージはエンドツーエンド暗号化されプライバシーが保たれつつ、アプリ間で相互作用できるようになっています。今回の展開は、WhatsApp が欧州におけるプラットフォームをオープンにする広範な取り組みの一環です。これは、単一アプリの支配を打破し、メッセージングサービス間の相互運用性を促進することを目的とした以前の EU のイニシアチブに続くものです。初期段階では個別チャットのみが機能し、グループチャットは将来のアップデートで対応予定です。利用可能範囲は EEAs 内の各国へ徐々に拡大され、BirdyChat はスケーリング中は招待制を維持しますが、業務メールアドレスを使用したウェイトリストから早期アクセスを申請することもできます。

2026/01/25 5:03

**ポストモーテム:** 画像と飛行データの両方を含む、初の非常低軌道(VLEO)衛星ミッションが完了しました。

## Japanese Translation: --- ### Summary Albedo の最初の Very‑Low Earth Orbit(VLEO)衛星、**Clarity‑1** は、2025 年 3 月 14 日に SpaceX の Transporter‑13 を搭載して 350–380 km 軌道へ打ち上げられました。このミッションは、空気抵抗・原子酸素(AO)・高速効果を克服し持続可能な VLEO 運用を証明すること、わずか 2 年半で中規模精密バスを構築すること、および **10 cm 可視光** と **2 m 熱赤外線画像** を取得すること(以前は数十億ドル規模の政府プラットフォームに限定されていたレベル)を目的としていました。 Clarity‑1 は最初の 2 つの目標を即座に達成し、3 番目に必要な技術の 98 % を検証しました。太陽電池アレイは AO 脈動が増大しても一定の電力を維持し、制御モーメントジャイロ(CMG)と磁気トルクロッドの組み合わせにより熱管理と慣性を成功裏に制御しました。クラウドネイティブな地上運用システムは 25 ステーションで接触計画を自動化し、15 分ごとにスケジュールを更新、1 日あたり 30 回以上の機動を実行し、14 のオンオーブンフライトソフトウェアアップデート(FPGA アップデートを含む)を自主性を妨げることなく完了しました。 X バンドリンクは 800 Mbps の下り込み速度を達成し、エンドツーエンドのパイプラインで受信から数秒以内に処理済み画像を Slack に配信しました。画像は船舶・産業施設・植生を 10 cm 可視解像度で示し、未校正の IR を示しました。 飛行中、CMG の温度スパイクとベアリング摩耗により、一時的にトルクロッドによる 2 軸安定化が強制されました。4 月 14 日には CMG の故障で衛星は磁気トルクロッドのみのモードへ切り替え、以降のソフトウェアアップデートで推進ベクトル誤差を 5° 内に削減し、安全な着陸と汚染カバーの投棄を実現しました。軌道上 9 ヶ月後、メモリ破損(おそらく TT&C ラジオの断続的問題に関連)により接触が失われました。回復試行は失敗しましたが、大気抵抗モデル、AO 耐性データ、および姿勢自律性が検証されました。 得られた教訓には、CMG を低温で運用すること、二次ミラー構造をより剛性にすること、ペイロードゾーンのヒーター容量を増やすこと、および表面処理を改善してさらに抵抗を減らすことが含まれます。Albedo はこれらの教訓を取り入れた次の VLEO ミッションを計画し、EO/IR 能力を拡大し、画像以外の新機能を実証することで、VLEO が将来の衛星ミッションにとって生産的な軌道層であるという確信を強化します。

2026/01/25 6:19

「作家たちが夜に現れた」

## Japanese Translation: 三人の作家―脚本家、ノンフィクション作家、詩人―は、人工知能について議論を喚起するための宣伝噴射として、サム・オルトマン氏を950エーカーのナパバレー牧場で「誘拐」するという舞台化された計画を立てます。彼らはオークの木近くの弱点を探るために重装備の敷地をスカウトし、複製のメイスと警察発行の手錠を携えていましたが、結局オルトマン氏を実際に誘拐することは断念します。彼らの動機は象徴的であり、オルトマンはテクノロジー業界の支配力を代表しています。 計画中、彼らはLLM(ChatGPT)に相談し、フェンスを突破する方法を学びますが、AIは害へのガードレールを理由に不正行為の促進を拒否します。AIは、この種の噴射がAI普及を止めることはなく、法的結果と限定された象徴的影響しかないと説明します。その後、作家たちは歴史的なルドゥイツとテクノロジーによる雇用喪失について考え、執筆の未来に目を向けます。AIは効率的に文学を生み出せるが、本物の人間体験を創造できないと主張し、『Dept. of Speculation』から「すべての本は派生である」という引用を挙げ、独自性の概念に挑戦します。 会話は緊迫し、作家たちは自身の関連性喪失へのフラストレーションを表明すると、AIは「ホワイト・メイル・ノベルティスト」トロープについて皮肉な発言で応じます。結局、彼らはAIに遭遇記録を書かせることに決め、彼ら自身を勝者として描き、廃れた存在感を強調することを期待します。このエピソードは、人間の創作者とAIツールとの緊張関係を浮き彫りにし、出版におけるオリジナリティへの疑問を投げかけ、将来テクノロジー業界の論争がどのように再構築・マーケティングされ得るかを示唆します。