はじめに
本記事では、NoSQLデータベースサービスのDynamoDBとデータウェアハウスサービスのRedshift等について解説します。
Amazon DynamoDB
DynamoDBは、フルマネージドのNoSQLデータベースサービスで、高速かつ予測可能なパフォーマンスを提供する。
キャパシティモード
-
オンデマンドモード
実際のトラフィックに応じて自動的にスケーリング、使用した分だけ料金が発生 -
プロビジョニングモード
事前に必要な処理能力(RCU/WCU)を設定、その範囲内で利用
DynamoDBストリーム
DynamoDBテーブル内のデータ更新イベントをキャプチャする機能。
データ項目の追加・変更・削除の発生時に、その履歴を保持し、それをトリガーにしてLambda関数などを実行できる。
ユースケース
[トランザクションデータ] → DynamoDBテーブル → DynamoDBストリーム → Lambda関数 → 他のアプリケーションと共有
- トランザクションデータを直接DynamoDBテーブルに保存して、DynamoDBトランザクション機能を利用
- DynamoDBストリームを有効化して、他のアプリケーションとトランザクションデータを共有
DynamoDBトランザクション機能
DynamoDBテーブルへの書き込みなどのトランザクション発生時に特定の処理を実行させることができる機能。
1つのオペレーションとして複数の項目の追加、更新、または削除が必要となる複雑なビジネスワークフローを管理できる。
DynamoDB Accelerator (DAX)
DynamoDB専用のインメモリ型のキャッシュクラスタを追加して、レスポンスをミリ秒単位からマイクロ秒単位まで高速化する機能。
DynamoDBグローバルセカンダリインデックス
クエリ処理の柔軟性を高めるための機能。
特定の属性に基づいて効率的に検索を行いたい場合に使用する。
Amazon Redshift
大規模なデータウェアハウス向けに設計された、ペタバイト規模のデータを高速に分析できるマネージドサービス。
構成と料金
-
ノード構成
複数のノードをまとめたクラスター構成で起動 -
料金
ノードの種類や性能に応じて料金が増加 -
コスト最適化
リザーブドノードを利用することで、1年間または3年間の利用を契約することでオンデマンド料金に比べて最大75%のコストを節約可能
Redshift Spectrum
S3バケット上に保存されたファイルに対して直接、高度なクエリ処理を実行可能。S3バケットをRedShiftの解析用のデータレイクとして構成することができる。ビッグデータ解析などの高負荷な大量データ解析を実現する。
データ移行・連携ツール
AWS DataSync
オンプレミスとAWSストレージサービス間のデータ移動を自動化するサービス。
ユースケースとしては、オンプレミスのNFSファイルシステムなどをAmazon EFSに移行する際に使用。
AWS Data Pipeline
AWSサービス間のデータ転送や変換処理に利用されるサービス。
AWSサービス間のデータ転送や変換処理を自動化するマネージドサービス。
主な機能
- 指定したデータベースやストレージに定期的にアクセス
- 必要な変換と処理を実行
- 処理結果をAmazon S3、RDS、DynamoDB、EMRなどに転送
- 定期的なスケジュール実行が可能
制限事項
ストリームデータを取得・変換する際には利用できない。
(代わりにAmazon Kinesisを使用)
主なユースケース
- データベース間のデータ転送パイプラインの構成
- データウェアハウスへの定期的なデータロード
ビッグデータ解析
Amazon EMR
大量のデータを処理することができるサービス。Hadoop、Spark、HiveなどのビッグデータフレームワークをAWS上で簡単に実行できる。
ユースケースとしては、トランザクションデータを処理して、データをDynamoDBテーブルに保存する
Amazon Kinesis Data Streams との連携
リアルタイムデータ解析を実施する場合はAmazon KinesisシリーズまたはAmazon EMRを利用することが最適。
Amazon EMRによりApache Spark Streamingを構成することで、Kinesis Data Streamsからのデータを処理できる。
データウェアハウスのベストプラクティス
データレイクアーキテクチャ
- クリックストリームデータなどをAmazon Kinesis Data Streamsで収集
- Amazon Kinesis Data Firehoseを介してデータをAmazon S3データレイクに送信
- Amazon Redshift Spectrumでデータレイク内のデータを分析
毎日1TB以上のデータを処理するような大規模なデータ分析プラットフォームに適している。