開発事例 自動車

カーディーラーのプラットフォームをRustで再構築。URL・在庫車・ログインを1つも失わずに

ポルトガルのカーディーラーG8 Motorは、在庫サイトと管理画面を2018年のRails 6.1アプリで運用していました。同じデータベースと写真のままRustへ書き換えたので、スタッフのログインはそのまま使えます。その後、公開サイトを新しいデザインに変え、3Dショールームと、検索エンジンとAIアシスタントを見据えたSEOを加えました。

クライアント
G8 Motor
プラットフォーム
ウェブサイトと管理画面
業界
自動車
リリース
2026

課題

旧アプリはまだ動いていましたが、古いRails 6.1で稼働し、データベースと1台のサーバーを共有していました。さらに、販売店の見込み客を取りこぼす不具合も抱えていました。公開側の検索フィルターは一度も機能せず、スマートフォンの写真は向きがずれて表示されることがありました。

導入前: 1台のサーバーでRails 6.1とRuby 3.1。アプリとデータベースが同居
改善後: 小さなコンテナに入ったRustのバイナリ1つ。Kubernetes上で、マネージドのPostgreSQL 18とリードレプリカを利用
導入前: 一度も機能しなかった公開側の検索フィルター
改善後: ちゃんと動く検索フィルター
導入前: 重複したアドレスで、別の車が開いてしまう
改善後: 一意なアドレス。データ移行で修正し、データベース側で担保
導入前: 向きがずれて表示されることがあり、GPSの位置情報も残ったままのスマートフォン写真
改善後: 公開前に写真の向きを直し、リサイズし、メタデータを削除
導入前: メール事業者が落ちるたびに失敗するお問い合わせフォーム
改善後: メッセージはAmazon SESでバックグラウンド送信。スパム対策にCloudflare Turnstile

開発したもの

事業が頼っていたものをすべて残した全面書き換えと、その後の新しい公開サイト。Rustとaxum、PostgreSQLで構築し、Kubernetesで運用しています。

URL・データ・ログインはそのまま

新アプリは同じデータベース、同じ写真ストレージ、同じパスワードハッシュを読みます。そのためリンク、在庫、スタッフのアカウントはそのまま引き継がれました。

今の時代に合う公開サイト

WhatsAppボタンを備えた、モバイル優先で高速な在庫サイト。書き換えが本番で動き始めてからデザインを刷新しました。

3Dのバーチャルショールーム

訪問者が車、ブランド、連絡先を見て回れるthree.jsのスタンド。開いたときにだけ読み込まれます。

検索とAIでの見つけやすさ

メタタグ、JSON-LD、サイトマップ、よくある質問、llms.txtを最新の在庫から生成。検索エンジンとAIアシスタントが販売店とその在庫車を説明できます。

スマートフォンからそのまま写真を

管理画面が向きを直し、1920 pxにリサイズし、GPSなどのメタデータを削除して、写真を1枚ずつ処理します。スタッフはスマートフォンのカメラだけで済みます。

プライバシーとセキュリティ

会社の法定情報を載せたプライバシーと利用規約のページ、Cookie同意後だけ動くアクセス解析、公開フォームとログインのTurnstile、DKIM・SPF・DMARCで署名したメール。

エンジニアリングの成果

2026年9月にコード上で集計。メモリは2026年10月に本番環境で計測しました。

78
変更ごとに実行する自動テスト
11
旧アプリから修正した不具合
5
書き換えから新しい公開サイトまでの日数
~17 MB
待機時の使用メモリ
  • 切り戻しはDNSの変更のみ。旧サーバーは利用できる状態を維持
  • 切り替え前に、旧データベースと新データベースのレコード件数を照合
  • 写真のコピーはゼロ。新アプリは同じストレージバケットを使用
  • 公開ページはリードレプリカが配信し、障害時はプライマリへ自動で切り替え

技術

  • Rust
  • axum
  • PostgreSQL
  • three.js
  • Amazon SES
  • Cloudflare Turnstile
  • Kubernetes
  • Honeybadger

ビジネスに合わせたソフトウェアが必要ですか?

連携、社内ツール、アプリ、プラットフォームを、AIエージェントを指揮するシニアエンジニアがオーダーメイドで開発します。必要なことをお聞かせいただければ、私たちならどのように構築するかをお見せします。