AWSでの大規模リアルタイム基盤
AWSでの大規模リアルタイム基盤
AWSを使用して、大規模で高性能なリアルタイムデータ分析基盤を構築するために、さまざまなAWSサービスを組み合わせて、高速なデータ収集から処理、分析、保存、外部提供までの一連の流れを実現します。
使用されるサービスとその役割を以下に詳述します。
高性能目標かつリアルタイム重視
このプロジェクトの主な目標は、高性能かつリアルタイム重視のデータ処理基盤を構築することです。特に、リアルタイムでのデータ収集と分析が求められており、AWSのスケーラブルで低遅延なサービスを活用して、要求に応えるシステム設計を行います。
AWS IoTでの車両走行CANデータを収集
車両の走行データは、AWS IoTを使って収集します。AWS IoT Coreは、車両に搭載されたセンサーやデバイスからのデータを迅速にクラウドに送信し、シームレスに処理できるようにします。これにより、CAN(Controller Area Network)バスからの車両走行データをリアルタイムで収集し、次のステップで処理できるようにします。
- 速度
- エンジン状態
- 燃料残量
- 位置情報
Kinesis Data StreamとKinesis Stream Analyticを活用してリアルタイムデータ分析実施
収集したデータは、Kinesis Data Streamsに送信され、Kinesis Data Analyticsを使用してリアルタイムで分析を行います。
- Kinesis Data Streamsは、大量のデータをスケーラブルに処理するためのサービスで、データストリームとして車両からの情報を継続的に受信します。
- Kinesis Data Analyticsは、SQLを用いてリアルタイムデータを簡単に分析できるサービスで、ここで走行データの集計や異常検出などのリアルタイム分析を行います。
リアルタイムデータを管理部門やエンドユーザまで通知&アラーム送信
分析結果に基づき、異常や重要なインサイトが検出されると、Amazon SNS(Simple Notification Service)やAmazon CloudWatchを使用して、管理部門やエンドユーザーへ通知やアラームを送信します。
- Amazon SNSは、SMS、メール、モバイル通知などを使用して、リアルタイムでアラートを送信することができます。
- CloudWatchは、システムのメトリクスやログを監視し、異常が発生した場合にアラームを設定して、速やかに対応できるようにします。
データをS3に積み上げ、法規によりセキュリティ確保した上で保管
S3に保存された大量のデータを解析するために、**Amazon EMR (Elastic MapReduce)**を使用してデータを処理します。EMRは、Apache HadoopやSparkを使った分散処理を行うサービスであり、膨大なデータセットを効率的に抽出して加工できます。
- EMRでデータを処理した後、その結果をAmazon Redshift(データウェアハウス)に移行します。Redshiftは、大規模なデータセットをSQLで高速に分析できるため、ビッグデータの分析に最適です。
このプロセスにより、大量の走行データを効率的に分析し、将来のトレンドや予測を得ることができます。
RedShiftにてビッグデータ分析を行い、分析した情報をリレーショナルデータベースへ保持
Redshiftで分析されたデータは、Amazon RDS(リレーショナルデータベースサービス)などのリレーショナルデータベースに保存され、さらにビジネスインサイトやアクション可能な情報として活用されます。
- Redshiftは、高速で複雑なクエリを実行できるため、データウェアハウス内でビッグデータを効率的に分析できます。
- 分析結果はRDSに格納され、ビジネス部門や管理部門がその情報を利用して、必要なアクションを取ることができます。
分析データをFargateによって外部へ提供し、様々なサービスで活用
Amazon ECS Fargateを利用して、コンテナ化されたアプリケーションで分析データを外部システムやサービスへ提供します。Fargateは、サーバーレスでコンテナを実行できるため、スケーリングが容易で、外部へのデータ提供を効率的に行うことができます。
- リアルタイムなダッシュボードやモバイルアプリケーションにデータを提供し、エンドユーザーが最新の車両状態や走行情報にアクセスできるようにします。
数十EC2インスタンス、数百Kinesis Shard
システム全体のスケーラビリティを確保するために、Amazon EC2(Elastic Compute Cloud)インスタンスを複数利用し、各種処理を並列に実行します。
- 数百のKinesis Shardを使用することで、大量のリアルタイムデータを効率的に取り込むことができ、システムが高負荷に耐えられるようになります。
【担当領域】
基盤PoC、 設計・構築、 性能チューニング、 維持保守



