インメモリデータベースとは何ですか?

定義済みのインメモリデータベース

インメモリデータベースとは、非リレーショナルデータベースの一種です。データをディスクや SSD に保存するデータベースではなく、データストレージ用のメモリに主に依存します。インメモリデータベースは、ディスクにアクセスする必要性を除くことによって、最小限の応答時間を達成するよう設計されました。 すべてのデータはメインメモリにのみ保存および管理されているので、処理やサーバー障害によって失われてしまうリスクがあります。インメモリデータベースは、すべてのオペレーションをログに保存したりスナップショットを取得したりすることで、データを存続することができます。

インメモリデータベースは、ゲームリーダーボード、セッションストア、リアルタイム分析などの、マイクロ秒の応答時間が必要でいつでもトラフィックが急増する可能性があるアプリケーションに最適です。 

ユースケース

リアルタイム入札

リアルタイム入札では、オンライン広告の印象を売買します。入札は通常、ユーザーがウェブページを読み込んでいる間、100~120 ミリ秒、時には 50 ミリ秒もの速さで行われます。この時間の中で、リアルタイム入札アプリケーションは、すべての購入者の広告スポットへの入札を要求、複数の条件に基づく落札価格の選択、入札の表示、および後の広告のディスプレイ情報を収集します。 インメモリデータベースは、ミリ秒未満のレイテンシーでリアルタイムデータの取り込み、プロセス、分析をする、最適な選択です。 

ゲームのリーダーボード

ゲームの相対リーダーボードでは、同じようなレベルの他のプレイヤーに相対したゲーマーのポジションが表示されます。ゲームの相対リーダーボードは、トッププレーヤーのみと比較しゲーマーのやる気を失わせることなく、他のプレイヤーとのつながりを生み出すサポートをします。数百万のプレイヤーがいるゲームでは、インメモリデータベースが結果を素早くソートし、リーダーボードをリアルタイムで更新できるのです。

キャッシュ

キャッシュは、データのサブセットが保存される高速のデータストレージレイヤーで、通常は一時的な性質のものです。これにより、それ以降に同じデータのリクエストが発生した場合、データのプライマリストレージロケーションにアクセスするよりも高速にデータが供給されます。キャッシュにより、以前に取得または計算されたデータを効率的に再利用できるようになります。 キャッシュ内のデータは、一般的に RAM (ランダムアクセスメモリ) などの高速にアクセスできるハードウェアに保存され、ソフトウェアコンポーネントとの相関関係にも使用されます。キャッシュの主な目的は、基盤となる低速なストレージレイヤーにアクセスする必要を減らすことによって、データ取得性能を向上することです。

ポピュラーなインメモリデータベース

Redis 用 Amazon ElastiCache

Redis 用 Amazon ElastiCache は、ミリ秒未満のレイテンシーを実現する非常に高速なインメモリデータストアで、インターネット規模のリアルタイムアプリケーションを強化します。開発者は、インメモリ非リレーショナルデータベースとして Redis 用 ElastiCache を使用できます。Redis 用 ElastiCache のクラスタ設定サポートは、最大 15 シャードまでサポートし、単一クラスタのインメモリキャパシティ最大 6.1 TB で Redis のワークロードを実行することができます。Redis 用 ElastiCache では、実行中のクラスターにシャードの追加や削除を実行する機能が提供されています。Redis クラスターを動的にスケールアウトおよびスケールインして、需要の変化に適応できます。 

今日、Redis 用 Amazon ElastiCache を使用開始しましょう。

Memcached 用 Amazon ElastiCache

Memcached 用 Amazon ElastiCache は、Memcached と互換性のあるメモリ内キー値ストアサービスで、キャッシュやデータストアとして使用できます。パフォーマンス、使いやすさ、および Memcached の簡素を実現します。スケーラブルで安全性に優れたフルマネージド型の Memcached 用 ElastiCache は、頻繁にアクセスされるデータをメモリ内に置く必要があるユースケースに理想的なサービスです。ウェブ、モバイルアプリケーション、ゲーム、アドテック、e コマースなどのユースケースには一般的な選択肢です。

今日、Memcached 用 Amazon ElastiCache を使用開始しましょう。

Aerospike

Aerospike は、リアルタイムで運用されるアプリケーションのためのオープンソースのインメモリデータベースです。このハイパフォーマンスの非リレーショナルデータベースは、RAM クラスターを備えた永続的なメモリ内サービスとしてインストールすることも、ローカルの SSD インスタンス (同じく Amazon Elastic Block Store に対して永続的) を使用してより大きなデータサイズに対応することもできます。AWS で Aerospike を実行する方法の詳細については、AWS Marketplace を参照してください。