本文へスキップ
BecomeCoder

AWSコース · 第5章 データベース · レッスン25

ElastiCacheとRedshift

導入

データベースへのアクセスが集中すると、同じ問い合わせが何度も繰り返されて重くなることがあります。また、日々の売上データを何年分もためて分析したい場合、日常の注文処理と同じデータベースで済ませてよいのでしょうか。

説明

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)」という対比で覚えると混同しにくくなります。