Amazon Web Services ブログ
【寄稿】株式会社ウェザーニューズ、航海気象データを提供するサービス基盤をAWSで再構築し、サービス品質の向上と運用コストの大幅削減を実現
はじめに
株式会社ウェザーニューズは世界最大規模の民間気象情報会社として、気象データやコンテンツの提供、気象コンサルティングサービス、気象ソリューションの開発・提供などを手がけています。民間気象会社の先駆けとして高精度の気象予測モデルや解析技術を開発し、様々な業界向けにサービスを提供していますが、本投稿は株式会社ウェザーニューズの Son Junho (孫俊鎬) 氏により、同社が手がける船舶の航海データを提供するサービス基盤に AWS を活用いただいている取り組みについて寄稿いただいたものです。
システムの概要
船舶気象情報サービスは、日々リアルタイムに更新される船舶の識別情報や位置情報、針路、速度といったデータや気象情報から得られた分析データを、乗船員や運行管理者にリアルタイムに提供するものです。これらデータを活用することで例えば燃料消費量の削減を図ることや、台風、高波といった警報情報を確実に通知することで船舶の安全運行をサポートしています。このサービスは現在約37万を超える船舶のデータを、AWS の様々なサービスを活用して蓄積、分析したデータをユーザーに提供しています。
従来システムの課題
従来のシステムにおける課題は、大きく分けてデータ品質、システム連携、開発環境、およびデータベースの性能に関する問題が存在していました。
- データ品質に関しては、SPIRE AIS における通信エラーにより、最長で40分から数時間にも及ぶデータの遅延や欠損が発生し、安定的なサービス提供に影響を及ぼしていました。加えて、船舶の対地速度 (SOG) や対地進路 (COG) 、航行状態 (STATUS) などの AIS データ(AIS: Automatic Identification System:船舶自動識別装置)について、従来システムではデータの粒度が荒く、分析のためにより詳細なデータ精度(最長でも10分間隔)が要求されていました。また、過去の航行実績確認などの長期的な AIS データの分析ニーズに対して、従来のシステムでは適切な対応が困難であり、事業判断に必要となる長期的な傾向分析に支障が生じていました。
- システム連携においては、各 AIS データベンダーが独自のデータ構造や精度基準を採用していたため、システム間連携の際に項目名の標準化や値の精度変換など、複雑な対応が必要となっていました。これらの個別対応は開発コストの増加を招くとともに、不具合発生のリスク要因となっていました。
開発環境の面では、開発者全員が AIS データに効率的にアクセスできる環境が整備されておらず、開発効率の低下や作業の重複が発生している状況でした。 - データベースの性能面ではデータ量の増加に伴う性能面での課題が顕在化していました。具体的には、索引付与やスケールアップ、パッチ適用などの対応に多大な工数を要していました。
これらの複合的な課題に対して、システムの改善および最適化に向けた検討が急務となっていました。
アーキテクチャ
AWS でのアーキテクチャは以下の通りです。
SPIRE の AIS(船舶自動識別装置、Automatic Identification System) からのデータを AWS の様々なサービスを組み合わせて、リアルタイムに処理、分析基盤に蓄積、各種集計データを提供するアーキテクチャとなっています。
AWS Fargate 上で動作する Spire Receiver と FluentBit が、 SPIRE から送付された TCP Feed データを受信します。このデータは Amazon Kinesis Data Streams を経由して Kinesis Firehose に渡されます。ここでデータの一次加工が行われ、Amazon S3 にファイル形式で保存されます。
次に S3 から AWS Lambda により SQS/FIFO キューを介して Amazon Timestream にデータを蓄積します。その後、Timestream 上で集計処理を行い、結果をデータマートの位置付けであるAurora MySQLに蓄積しています。
さらに地理空間データを活用するために、Aurora MySQL のデータを AWS Lambda 上で GeoJSON データに加工し、 S3 に蓄積しています。
プロジェクト期間
本システムの開発は2人体制で進め、構想から設計、構築、テストの実施まで約1年のプロジェクトとなりました。
本システムは扱うデータ量が膨大であるだけでなく、AIS データは一定の遅延が存在するため AIS データの連続性や整合性を確認するためのテストが必要不可欠ですが、限られた人員の中でデータの仕様策定からテストまで、サービスの品質担保のため各工程を丁寧に進めた結果と言えます。一方で実際の開発作業期間に関しては前述のように AWS のサーバーレスの特徴を有するサービスを活用したことで、約1ヶ月という短期間で構築することができました。
一部 Timestream のストレージレイヤーの保管期間の調整など慣れていなかった点で試行錯誤をしましたが、その他は特に問題なくスムーズに使い始めることができました。
AWS利用による運用上の利点および課題
システムを設計する過程で、ベンダー毎に異なるデータ構造を項目名や値の粒度を統一し、各種 AIS データ群を共通管理することで、各システムに対して統一した方法でデータを提供できるようになりました。さらにデータのリアルタイム収集を可能にしたことでより細かな粒度のデータ取得を実現し、利便性が向上しました。
性能テストにおいては、Fluent Bit のスレッド数の増加に対し、それぞれのサービスで期待するスループットを維持することができました。また特別なチューニングをせずとも一定のレスポンスを実現しています。
運用面では、CloudWatch 監視を基点とした自動化を実施し、Slack 通知に加えて、社内配信データの自動生成やコンポーネントの自動再起動などを実装することで、運用・保守に関わる人件費を含めた運用コストを80%削減することに成功しました。
まとめ
AWS の各種サービスを適材適所に活用したシステムを構築したことで、従来システムと比較してより多くの機能を提供できるようになっただけでなく、運用コストの大幅な削減も実現しました。管理対象となる船舶数も3.2万隻から37万隻へと大幅に増加し、データ更新頻度の向上と合わせて、製品品質の向上、販売範囲の拡大、売上の向上にも寄与しています。
著者について
Son Junho (孫俊鎬) : 株式会社ウェザーニューズ Sea Planning Service Meun 開発部 Products Manager