Amazon Web Services ブログ
【寄稿】ニコンのリモートモニタリングプラットフォームにおける Amazon Timestream の活用
この投稿は株式会社ニコンの森谷 俊洋 氏、村上 隆哉 氏より金属 3D プリンター向けリモートモニタリングプラットフォームにおける Amazon Timestream 活用の取り組みについて寄稿いただいたものです。本寄稿は前後編の 2 回に分けてご紹介するうちの後編となります。前編の内容はこちらよりアクセスできますので、ご興味のある回をご覧いただければ幸いです。
Amazon Timestream の活用
Amazon Timestream を選んだ理由
One Board の開発当初、オンプレミスのデータベースとクラウドのデータベースのどちらを採用するかをまず検討しました。その結果、以下の理由からクラウドのデータベースを選択しました:
- マネージドサービスとしてスケールアップ/ダウンが自動で行われるため、オンプレミスに比べて手間がかからず開発作業に注力できること
- ベストプラクティスも広く公開されていること
次にAWS以外のクラウドベンダーが提供するデータベースとも比較しました。その結果、以下の理由からAWSを採用しました:
- 社内で AWS の開発事例が多いこと
- AWS とコーポレート契約を締結しており、コストを抑えて利用できること
- 24 時間 365 日の問い合わせ可能サポートがあること
尚、One Board では時系列データ以外のデータ保管には Amazon RDS for MySQL を利用しており、ケースバイケースで最適なデータベースを選択しています。
データモデル
One Board が Timestream で適用しているデータモデルの一部を以下に示します。One Board では単一のレコードに複数の測定値を登録するマルチメジャーレコードを採用しています:
表 1. One Board のデータモデル
各列の概要は以下の通りです:
- Serial_number
金属 3D プリンターの機体ごとの識別子。機体ごとのデータ集計に利用する - Time
レコードのタイムスタンプ - Laser_power
金属 3D プリンターが金属積層造形に使うレーザーの出力の実測値 [kW] 。期待どおりに出力されることが金属積層造形の品質に影響するため、品質を示す指標の一つとして収集する - Oximeter_1, Oximeter_2
金属 3D プリンター内に搭載する2種類の酸素濃度計の計測値 [%] 。金属 3D プリンターがレーザーを使って金属積層造形を行うには、金属 3D プリンター内の酸素濃度が一定値以下となる必要がある。また、金属 3D プリンターのオペレーション・ドアは安全のため金属積層造形中には自動施錠され、金属積層造形完了後に酸素濃度が一定値以上になると自動解除される。このように酸素濃度は金属積層造形の重要な指標であり、それぞれ計測レンジが異なる2種類の酸素濃度系を収集し、金属 3D プリンターが正しく動作したことを示す指標の一つとして収集する - Gas_pressure
レーザーを使った金属積層造形時の安全性を確保する不活性ガスの供給圧力 [kPa] 。供給圧力が一定値以下になると、安全のために金属積層造形が自動的に停止される。One Board は金属 3D プリンターが正しく動作したことを示す指標の一つとして収集する
データ量や参照頻度
Amazon Timestream に保存するデータの量や参照頻度は以下の通りです:
- 発生するデータ量
金属 3D プリンター1台あたり、数百MB/日 - 保存されているデータの総量
2024 年 10 月時点で数百 GB 超 - データの参照頻度
利用者一人あたり、1 時間に 1 回ほど参照
※ 主なユース―ケースとして、金属 3D プリンターの稼働中にそのステータスや金属積層造形の予定完了時刻を確認する使い方を想定。 - クエリのレスポンス
Grafana から Timestream にクエリをかけてグラフ一つを表示するまでに約 2 秒
Amazon Timestream の良かった点
まず時系列データの保存に関しては、マルチメジャーレコードを利用することで直感的に格納データを理解でき有用でした。また、性能やコストの異なるメモリストアとマグネティックストアの2つのストレージ階層を、特段意識せずとも自動的に使い分けてくれる点も有用でした。一方で時系列データの活用に関しては、SQL として Date & Time の変換機能 や Window 関数など一通りの機能が揃っており、使い慣れた SQL を利用することで取得したデータを様々に加工して Grafana へ表示することが可能である点を評価しています。また AWS マネジメントコンソールから容易に SQL を発行できる点も好評です。さらに現時点で性能問題は発生しておらず、安定したレスポンスを維持できています。
開発完遂に向けた取り組み
One Board は開発者数 5 人ほどで開発をスタート、当時は筆者の所属部署には金属 3D プリンターの組込ソフトウェアの開発者はいるものの、クラウド開発の知見は皆無であったため、予定した期間内での開発完遂を目指し以下の取り組みを実施しました。その結果、約 10 か月間という短い期間で社外のお客様にリリースすることができました:
- 既に AWS 上での開発経験がある他部署に相談し協力を依頼した
- リーンスタートアップの手法を採用し、仮説設定→最低限の機能の試作→仮説検証のサイクルを繰り返した
- AWS の技術サポート窓口を適宜活用した
特に 3 点目に関しては、システム設計においてはマルチテナントを実現する必要がある中で、レコードへのアクセス権を厳密に管理するための方法が課題となりました。結果としてレコードのオーナーごとにデータベースを分け、データベース毎にアクセス権を限定した IAM ユーザーを用意するサイロモデルを採用することにしましたが、そういった過程において適宜 AWS サポート窓口を活用することで短時間で課題解決に至ることができました。
今後の方向性
現在は金属 3D プリンターの遠隔監視に使用している One Board の今後の方向性として、以下を想定しています。
- 蓄積したデータの活用
運用開始から 2 年以上が経過し、金属 3D プリンター内に設置した各種センサのデータが一定量蓄積されてきた。その間、金属 3D プリンターにおけるレーザー等の重要部品の故障事例も記録しているため、これらを組み合わせて、重要部品の故障予知の実現につなげたい - サプライチェーン上で前後の工程に関するデータの蓄積・活用
例えば、金属 3D プリンターによる金属積層造形の品質に大きく関わり、その前工程で調達する金属粉体の状態やロット、あるいは、後工程である造形結果の外観検査結果を One Board に蓄積し、金属 3D プリンターのデータと組み合わせて確認することで、金属積層造形の品質向上に活用することを想定している - エンジニアリングチェーン上で前後の工程に関するデータの蓄積・活用
金属 3D プリンターでは、事前に造形対象物の 3D CAD を用意し、それを CAM ソフトウェアでツールパスとよばれる金属3D プリンターの動作を表すデータに変換した後、ツールパスを基に金属積層造形を実行することが一般的である。このプロセスにおいて、3D CAD の形状や CAM ソフトウェアによる変換結果も金属積層造形の精度や造形時間に影響を与える。これら 3D CAD や CAM ソフトウェアのデータも、金属 3D プリンターのデータと組み合わせて One Board に蓄積することで、造形対象物に応じた金属積層造形の精度向上や造形時間の短縮に活用したい
図 1. 金属 3D プリンターにおけるサプライチェーンとエンジニアリングチェーン
おわりに
本稿では、株式会社ニコンが開発・販売する金属 3D プリンター向けのリモートプラットフォーム One Board についてご紹介しました。One Board は AWS の様々なサービスを活用し構築しており、One Board の遠隔監視機能がもたらす価値を鑑みると、運用コストも安価に抑えることに成功しています。今後は蓄積したデータの活用や、サプライチェーンやエンジニアリングチェーンの前後の工程のデータの蓄積・活用を想定しています。
本寄稿シリーズでは、前編「【寄稿】ニコンの金属 3D プリンター向けリモートモニタリングプラットフォーム開発の取り組み」にて Lasermeister シリーズや One Board の概要と One Board を支えるアーキテクチャやAWS で運用するメリットを説明いただきました。また、後編(本稿)では Amazon Timestream の活用やデータモデル設計といった技術面を説明いただきました。