Snipe-IT と MDM を連携してモバイル端末の資産管理を効率化

先日, CyberAgent Developers Blog にて私が執筆した以下の記事が公開された.

本記事では, 上記記事の宣伝と, 私が担当したプロジェクトの一環として, Snipe-IT と Mobile Device Management (以下 MDM) ツールを組み合わせて構築したモバイル端末資産管理システムについて技術的な観点からまとめている.

背景と課題

モバイルデバイスの管理は, 端末数の増加に比例して運用の複雑さが増す領域である. 従来の運用では, 以下のような問題があった.

  • MDM に登録された情報と貸出・返却の実態管理が煩雑であった
  • 管理画面の UI/UX が貧弱で, 現場での操作性に課題があった
  • 台帳情報が属人的に更新され, 正確性や即時性に欠けていた

このような課題を解決するために資産管理 OSS である Snipe-IT と, AWS を基盤とした連携システムを設計/実装した.

Snipe-IT について

Snipe-IT は, オープンソースで開発されているIT資産管理システムである. Webベースで動作し, ソフトウェア・ハードウェア・ライセンス・契約情報などの資産情報を一元管理できることが特徴である. Laravelベースで構築されており, REST APIが充実しているため, 他システムとの連携性が高く, 記事執筆時現在も開発やコミュニティでのディスカッションが盛んに行われている. 特に以下のような特徴が, 今回のユースケースにおいて有効であった:

  • 資産とユーザー, ロケーション, ステータスの紐付けが柔軟に行える
  • API経由での読み書き操作が安定しており, 自動同期がしやすい
  • シンプルなUIにより, 現場担当者でも直感的に操作可能
  • オープンソースであり, 自社要件に応じたカスタマイズが容易である

これらの特徴を活かすことで, 現行の運用課題に対して柔軟かつ確実に対応することが可能となった.

システム構成と工夫点

システムは以下の構成を採用した:

  • AWS Lambda による Webhook 受信および非同期処理
  • Amazon S3 による中間データの永続化とリカバリ
  • Snipe-IT を REST API 経由で操作し, 資産データを正規化
  • CloudWatch Logs と Slack通知によるエラー検知と運用監視

Lambda関数には最大実行時間があるため, 長時間処理が必要な場合には自己再帰+状態保存によって処理を分割継続する構成とした. この仕組みによって, 数千台規模の同期処理も安定して完走できるようにしている.

また, 処理中の一時状態(リトライ回数, スリープ時間など)をBase64エンコードして渡すことで, Lambda間のステートレス性を維持しつつ連携できるよう工夫した.

成果と展望

この構成によって, 以下のような成果が得られた:

  • デバイス台帳の整合性と信頼性が大幅に向上した
  • 貸出・返却の運用負担が減少し, 棚卸の効率が飛躍的に改善した
  • システム全体が疎結合化され, 今後の拡張や他 MDM 対応も容易となった

今後は, さらなる台帳の活用分析も視野に入れている.

最後に

本記事は, 所属企業内の業務で実際に直面した課題に対して, 個人として設計・開発・運用に携わった経験をもとに執筆したものである. 記事内で紹介している構成や手法は, 同様の課題を持つ現場においても応用可能であると考えている. 興味を持たれた方は, ぜひ上記のリンクから記事全文をご覧いただきたい.


活動継続のためのご支援を募集しています