本文へスキップ
hdknr blog
戻る

balenaCloud で Raspberry Pi を遠隔管理 — Docker コンテナと A/B パーティションで実現する安全な OTA 更新

Raspberry Pi を遠隔地に何台もデプロイすると、いつも頭を悩ませるのが「文鎮化」と「OS アップデート」だ。SSH で 1 台ずつ繋いで作業するのは現実的ではなく、現地に出向くのはさらに困難だ。

balenaCloud は、まさにこの問題を解くために作られたマネージド IoT エッジプラットフォームだ。ひと言で言えば、IoT デバイスを Web サーバーのように運用管理できる仕組みだ。Raspberry Pi のような SBC(シングルボードコンピュータ)や産業用 PC を、クラウド経由でフリート単位に一括管理できる。

balenaCloud の仕組み — balenaOS と balenaEngine

balenaCloud の最大の特徴は、アプリケーションを Docker コンテナとして動かす点にある。

コンポーネント役割
balenaOSRaspberry Pi にインストールする専用の軽量 OS。OTA(Over-The-Air、ネットワーク経由の更新)に特化している
balenaEngineDocker を IoT 向けに軽量化したコンテナエンジン
管理コンソールブラウザで全拠点のデバイスを状態確認、ログ閲覧、再起動、アプリのデプロイ

開発者は手元の PC で書いたコードを balena push するだけで、世界中のフリートに一斉配信できる。Docker Compose 形式(docker-compose.yml)でマルチコンテナ構成を定義することも可能だ。

なぜ Raspberry Pi 運用で選ばれるのか

1. OTA 更新で「文鎮化」を防ぐ A/B パーティション

balenaOS は A/B パーティション方式を採用している。デバイス内に OS が入る領域が 2 つあり、新しい OS は常に現在動いていない方のパーティションに書き込まれる。

書き換え完了後、新しい OS で起動を試み、もし起動できなかったりヘルスチェックに失敗したら、自動的に古い方の OS に切り替えて再起動する。balenaOS の rollback フレームワークには、ヘルスチェック失敗時の rollback-health と、起動自体に失敗(カーネルパニックなど)した時の rollback-altboot の 2 種類が用意されている。

遠隔地の Raspberry Pi がアップデート失敗で動かなくなるリスクは劇的に減る。

2. ネットワーク設定が不要(ファイアウォール越え)

通常、遠隔地から SSH 接続するには VPN やポート開放が必要だが、balenaCloud はデバイス側からクラウドへアウトバウンド接続を行う。拠点のルーター設定を変更せずに、ブラウザのダッシュボード上からターミナル操作ができる。

家庭の NAT 配下にある Raspberry Pi にも追加設定なしでアクセスできるのは大きな利点だ。

3. フリート管理(一括制御)

10 台でも 1,000 台でも、「フリート(艦隊)」という単位でまとめて管理できる。新しいプログラムを balena push するだけで、フリート内の全デバイスに一斉配信される。

4. 公開 URL 機能

デバイス上で動いている Web サーバー(管理画面など)に対して、独自の URL を発行して外部からブラウザでアクセスできる機能が標準で備わっている。Ngrok のような別ツールを用意する必要がない。

balenaCloud 料金プラン(2026 年最新)

balenaCloud は最初の 10 台まで無料で、全機能が使える。個人プロジェクトやプロトタイプ開発には十分なボリュームだ。

プラン適用範囲月額基本料金内追加台数単価
Free〜10 台$010 台
Prototype10〜49 台$159/月30 台$3/台
Pilot50〜999 台$329/月60 台$2/台
Enterprise1,000 台〜カスタム

Prototype 以上は月額固定費 + 含まれる台数を超えた分の従量課金、という二段構えだ。最新の料金は 公式ページで確認するのがよい。

デメリット・注意点

balenaCloud の使い方・始め方

  1. balenaCloud でアカウントを作成し「フリート」を作成
  2. 専用の OS イメージ(Wi-Fi の SSID/パスワードなどがプリセットされた状態)をダウンロードし、SD カードに焼く
  3. Raspberry Pi に挿して起動 → 自動的にクラウド上のダッシュボードに現れる
  4. 自分の PC で開発したコードを balena push してデプロイ

まずは 10 台までの無料枠で、手元の Raspberry Pi 1 台にテストデプロイを試すのが一番の近道だ。

OS 自体の遠隔アップデート(Host OS Update)

balenaCloud の真骨頂は、アプリだけでなく OS 自体を遠隔から更新できる点にある。

アプリ更新と OS 更新は完全に分離されている

更新の種類操作再起動速度
アプリケーション更新balena push不要(コンテナだけ入れ替わる)高速
OS 更新(Host OS Update)ダッシュボードで「Update」ボタン必要数百 MB のダウンロード

ダッシュボードからの操作手順

  1. ダッシュボードを開く → 対象のデバイス(またはフリート)を選択
  2. アップデートを選択 → デバイス詳細画面の「Update」ボタンを押す
  3. バージョン選択 → 最新版だけでなく、特定のバージョンも指定できる
  4. 実行 → バックグラウンドでダウンロードと更新が始まり、進捗を画面で確認できる

OS 更新時の注意点

まとめ

balenaCloud を使えば、拠点が日本全国、あるいは世界中にあっても、現地に行くことなくブラウザから安全に Raspberry Pi の OS とアプリを最新状態に保てる

セキュリティパッチの適用や新機能の利用において、これほど強力な味方はない。Docker の経験がある人なら、今すぐ手元の 1 台で試してみる価値がある。

参考リンク



前の記事
SOPS で AI エージェントのシークレット管理 — Claude Code に「平文を見せない」3つのガードレール
次の記事
Redis 作者 antirez の "ds4" — DeepSeek V4 Flash 専用ローカル推論エンジンが M3 Ultra 512GB で 26 token/sec を叩き出す