導入
データベースへのアクセスが集中すると、同じ問い合わせが何度も繰り返されて重くなることがあります。また、日々の売上データを何年分もためて分析したい場合、日常の注文処理と同じデータベースで済ませてよいのでしょうか。
説明
Amazon ElastiCacheは、**インメモリ(メモリ上でデータを扱う)**のキャッシュサービスで、Redis・Memcachedという2つの主要なキャッシュエンジンに対応しています。よく参照されるデータをディスクベースのデータベースの手前にキャッシュとして置くことで、応答速度を大幅に高速化し、データベース本体への負荷を減らします。
Amazon Redshiftは、**データウェアハウス(大量のデータを蓄積し、集計・分析するための基盤)**サービスです。数年分の売上データを横断して集計したり、BI(ビジネスインテリジェンス)ツールと連携して経営分析を行ったりする用途に向いています。
この2つを理解する鍵は、データベースの利用目的を分ける次の考え方です。
- OLTP(Online Transaction Processing・オンライントランザクション処理) … 注文登録・在庫更新のような、日常業務の1件ずつの読み書きを高速にさばく処理。RDS・Aurora・DynamoDBが得意。
- OLAP(Online Analytical Processing・オンライン分析処理) … 大量のデータをまとめて集計・分析する処理。Redshiftが得意。
flowchart LR
App["アプリケーション"] -->|よく読むデータ| Cache["ElastiCache(Redis/Memcached)"]
Cache -.->|キャッシュに無ければ| DB["RDS / Aurora(OLTP)"]
DB -->|日々のデータを蓄積| DWH["Redshift(OLAP・データウェアハウス)"]
DWH --> BI["BIツールで分析"]
日常のトランザクション処理を高速化する「キャッシュ」と、蓄積したデータをじっくり分析する「データウェアハウス」は、目的も使うタイミングもまったく別物だと押さえておきましょう。
読んでみよう
「ElastiCache=速さのためのキャッシュ(OLTPの補助)」「Redshift=分析のためのデータウェアハウス(OLAP)」という対比で覚えると混同しにくくなります。