1

私のWebアプリケーションでは、キーと値のペアとして格納できる小さなデータブロブ(< 10KB)の読み取り/書き込みが非常に遅くなります。私はDynamoDB(DAX)とEFSとElastiCacheを検討しています。 AWSは、すべてが低いレイテンシーを提供していると主張していますが、私はヘッド2ヘッドの比較を見つけることはできません。また、これら3つが同じリーグにいるのかどうかはわかりません。誰かが洞察力を共有することはできますか?AWS超低遅延読み込み/書き込みデータストア:EFSとDynamodb DAXとElastiCache

+0

このタイプのものに推奨するには、あまりにも多くのEFSパフォーマンスの問題について聞いたことがあります。 DAXとElastiCache(Redis)を使用したDynamoDBは、パフォーマンスに関して非常に匹敵します。それぞれの機能(および制限)を調べて、ニーズに合ったものを選択する必要があります。 –

答えて

4

さまざまなユースケースの異なるストレージシステムをさまざまな価格モデルで比較しようとしています。

EFSは、ストレージデバイスをプロビジョニングする必要がなく、複数のEC2インスタンスからアクセスできるファイルシステムです。あなたのユースケースではEFSが正常に動作するかもしれませんが、ファイルを管理する必要があります。つまり、ファイルに収まるようにデータを構造化する必要があります。あるいは、必要な構造と検索のレベルに応じて、キー値またはBLOB /オブジェクト記憶システムを構築する必要があります。 S3、DynamoDB、Elasticache Redis、Memcachedなど、この問題を解決する製品があります。

S3はブロブストレージであり、構造体はなく、データ型はなく、アイテムは置き換えられるだけで更新できません。バケット内のブロブをリストすることによってのみ照会することができます。通常、静的メディアファイルを格納するために使用されます。

DynamoDBは、データが構造化され強く型付けされ、クエリ機能を持つドキュメントまたはキー値ストアとして使用できる非リレーショナル(別名No-SQL)データベースです。アイテムを最大400KBまで保存できます。

Elasticache(RedisまたはMemcached)は、通常、DynamoDBなどの耐久性のあるデータストアの前でキャッシュとして使用されるキー値ストアです。この場合、アプリケーションは異なるレイヤーを認識する必要があります。異なるAPIを管理し、アプリケーション内のキャッシングロジックを処理します。

DAXを使用すると、アプリケーションにキャッシングロジックを持たなくても、シームレスにキャッシュレイヤーを統合できます。 DAXは現在、DynamoDBにライトスルーキャッシュを提供しています。 DAX APIはDynamoDB APIと互換性があります。このAPIを使用すると、DynamoDBクライアントをDAXクライアントに置き換えることで、アプリケーションが既にDynamoDBを使用している場合にキャッシュレイヤーを追加することができます。 DAXは現在、JavaおよびNode.jsクライアントのみをサポートしています。

したがって、実際の作業負荷によって異なります。サブミリ秒のレイテンシが必要で、キャッシュレイヤーの管理が不要で、アプリケーションがJavaまたはNode.jsの場合は、DAXが適しています。