【レポート】[Startup Talks]漁業xIoTで実現する可視化とサスティナビリティ #AWSSummit

はじめに

こんにちは、おおはしりきたけです。 みなさん AWS Summit Online 楽しんでいますでしょうか。

本記事は [Startup Talks]漁業xIoTで実現する可視化とサスティナビリティ の活用となっています。

セッション概要

スピーカー

  • 株式会社ライトハウス

概要

これまで情報伝達が少なかった漁業において、IoTを活用したコミュニケーションの活性化による漁業の効率化とサステナビリティ

セッション視聴のリンクは こちら

セッションレポート

ISANAについて

ISANAのターゲット

  • 漁業者様向けのサービス
  • コアターゲットは、日本、およびアジアのまき網、船びき網漁業者
  • ISANAは、複数の船で船団を組んでいる方々に提供しているサービス

複数の船で船団を組んでいる事業者様の課題と解決方法

  • 課題
    • 魚群探知機、ソナーなど各種機器の情報を無線で伝えるのが難しい
    • 無線だけでは、コミュニケーションが不十分
  • 解決方法
    • ISANAでは、「ISANAデバイス」と「タブレット端末」を使用
    • これにより、船団間で、魚群探知機やソナーなど様々なデータをリアルタイムでインターネットを使い、記録、共有することができる

ISANAの機能について

マップ機能画面

GPS情報を用いて、航跡をマップ上にプロットし、今現在どこにいるのかという情報を一目でわかる。

  • 各船の航跡や登録ポイント、現在地をタブレット上で可視化、記録
  • 航跡上の魚群探知機やソナーの画面を地図上に記録
  • 取得した画像データは日付ごとに記録して見返しも可能

魚探・ソナー画面共有機能

一番使われている機能で、魚探やソナーの情報がリアルタイムで見ることができる。

  • 漁船の魚探、ソナーなどの画像を一覧で可視化
  • 複数の船でお互いに共有することも可能
  • マップと同時に見ることも可能

船上画像共有機能画面

共有したい船に船上カメラを設置し、各線の船上の様子をリアルタイムで見ることが可能

ISANAのAWSアーキテクチャ

プロトタイプ

  • ALB、EC2とAuroraのシンプルな構成で構築していた
  • 高頻度にデバイスから各種情報が送られてくるが、デバイスからAuroraへの書き込み、タブレットからの読み込みが頻繁に発生
  • EC2(c4.2xlarge)、Aurora(db.r5.2xlarge)の大きめのインスタンスを提供していたが、思った以上にパフォーマンスがでないのと、AWS利用費も大きくなり、サービス提供をすればするほど赤字になってしまうアーキテクチャになっており、サービス提供するにあたりアーキテクチャを見直した。

現在運用されているアーキテクチャ

  • タブレットとデバイスで経路を分けた
    • デバイスは書き込み専用のルート
    • タブレットは読み込み専用のルート
  • デバイス側の処理
    • Fargateで起動しているAPIに対してデバイスから書き込みリクエストを送る
    • Kinesiss Data Streamに入ったデータをもとに、LambdaがDynamoDBに書き込みを行う
  • タブレット側の処理
    • Fargateで起動しているAPIに対してタブレットから読み込みリクエストを送る
    • APIからDynamoDBを参照
  • パフォーマンスは、秒間2000リクエストでもパフォーマンスは変わらず提供できる
  • 書き込みと読み込みの頻度が高かったので、RDSでは厳しくDynamoDBにした
    • ここ1年弱の期間で数十億レコードのデータが増えている
  • Kinesiss Data StreamもそのままDynamoDBに書き込むと負荷になってしまうので、Lambda側で単位に分けて書き込みを行っている
  • Auroraは、マップや画面共有でお気に入り機能があり、このような軽めのデータを利用するために利用している

AWS IoTを利用したデバイス管理

  • デバイスが電源入って起動されると、API GatewayからLambdaが起動される
  • AWS IotにThingがなければ、各種リソースを作成し、証明書も作成
  • どのThingとどの証明書が対になっているのかをDynamoDBに保存
  • 証明書自体はS3にPutする。デバイスは署名付きURLをもとにS3に証明書を取得しにいく
  • 今はマネージドサービスで実現できるので、今後は切り替えていきたい

AWS IoTを利用したソフトウェアアップデート

  • デバイスのアップデートについては、一括で全ての船にブロードキャストしてアップデートする方法と特定のユーザーにのみアップデートするという方法がある
  • 特定の船にアップデートする場合は、管理画面から操作を行い、一部のデバイスのアップデートを実現している

BI/分析について

サステナ関連で漁獲の記録の機能も提供している

漁獲記録機能

  • いつどこでどのような魚がどれくらい獲れたかを記録
  • 創業中の魚探やソナーの画像と水揚げの成果を記録
  • 各操業日の航跡と成果をかんたんに振り返ることも可能

BI/分析アーキテクチャ

  • 可用性を高めるためにEKSのスポットインスタンスを稼働している
  • ワークフローエンジンのAirfllowを活用し、データソースから取ってきた情報を加工して別のところに入れる
  • Redashを利用して、分析用に作られたデータ参照をしている
  • 分析系は、予め負荷を予測でき、スケールのタイミングも予測しやすいのでEC2のスポットインスタンスを利用して運用している
  • これからは、この基盤をつかってMLなどにも取り組んでいきたい

所感

デバイスからの予測できない大量のリクエストが来る場合のアーキテクチャとして非常に参考になりました。用途に応じて適切なAWSサービスを使うことで、性能、費用など適切になりますし、マネージドサービスに任せることで、本当に必要な開発に集中することができ、さらなるサービスの向上につながると思いました。