#きっかけ
AWSクラウドプラクティショナー試験の対策をしていたら、AWS DAXというサービスが出てきた。
調べてみるとどうやらDynamoDBを速くするヤツらしく、公式ページいわく
フルマネージド型高可用性インメモリキャッシュ
らしい。
フルマネージドなんとかは置いといて「インメモリキャッシュ」がわからない。
ElastiCacheの説明でも出てきた気がするけど全然覚えてない。
クラウドプラクティショナーのレベルだと絶対いらない気がするけど、調べてみることにする。
#キャッシュとは
一度使ったデータを保持しておき、再度必要になった時に素早く取り出せるようにしておくこと。
インターネットブラウザで一度読み込んだ画像データなどをキャッシュファイルとして、ブラウザが利用するメモリに一時保存することで、表示を早くする方法として利用されている。画像データがメモリにあることで、インターネット上のWebサーバからデータが送信されるまで待つ必要がなくなる。
#インメモリキャッシュ
キャッシュをメモリに保持するのがインメモリキャッシュ。
DAXはDynamoDBの手前で、メモリにキャッシュするサーバーを配置してEC2からのリクエストに素早く答えれる、ということらしい。
#インメモリデータベース
インメモリデータベースとは、専用データベースの一種です。データをディスクや SSD に保存するデータベースではなく、データストレージ用のメモリに主に依存します。
前提として、主記憶装置(メモリ)は補助記憶装置(SSD,HDD)よりもデータの読み書きが早い。
しかし1GBあたりの価格がメモリの方が相当高い上に、通電していないと内部の情報が揮発する。
そのため、全てのデータをメモリに保存して作業は通常しない(と思う)。
それをやってしまったのが「インメモリ」の「データベース」、と理解した。
全データをメモリ上に保存するから、確かにSSDに保存するより相当早そう。