ElastiCache/SimpleQueueを使用する理由と、DynamoDB内に「キャッシュ」テーブルと「キュー」テーブルをそれぞれ持つ理由について疑問に思っています。
キャッシュ/キューサービスへのネットワークレイテンシはパフォーマンスの向上の多くに勝るようであり、EC2がDynamoをキャッシュ/キューサービスと同じように処理するため、Dynamoは同じレイテンシとスループットを提供します(Dynamoでは、負荷)。
それは主に、負荷のかかったダイナモと他のサービスの価格についてですか?
DynamoとElastiCache/SQSを比較したおおよそのレイテンシの数値はありますか?
追加の複雑さを正当化する他に欠けている重要な考慮事項はありますか?
ありがとう。
DynamoDBとElastiCache Redisを使用している理由はさまざまです。
DynamoDB:
ElastiCache Redis:
したがって、ほとんどの場合のセットアップは次のとおりです。DynamoDBが永続的で耐久性のあるストレージとしてバックアップするRedisでの大量のリクエストを含むシンプルなキャッシュ。これにより、Redisのインスタンスごとの支払いモデルによる読み取りの暗黙的な割引が得られるため、コストが抑えられますが、DynamoDBの冗長性の利点も得られ、DynamoDBクエリ言語を使用してさらに複雑なもの(必要な場合)。
お役に立てば幸いです。
更新:Amazon DynamoDB Acceleratorの発表( https://aws.Amazon.com/de/dynamodb/dax/ )により、(最後に)DAXをそのまま使用するように切り替えますDynamoDBとRedisを組み合わせて使用していたこととまったく同じです。 DAXはAWSによって完全に管理されておらず、アプリケーションで常にDynamoDB言語を使用する機会を提供するだけでなく、Redisのようなライトスルーキャッシュのメリットも得ます。
DynamoDBではなくElasticacheを使用する主な理由は速度です-小さなオブジェクトの場合、ラウンドトリップ遅延が1ms未満になります。ボックスはEC2マシンに本当に近く、メモリはSSDよりもディスクよりもはるかに高速です。
さまざまな価格設定モデルを考えると、コストの利点もあるかもしれませんが、ここではそれほど詳しくは説明していません。
Redis/memcachedはメモリ内ストアであり、通常、キャッシュ/キュータイプのデータについてはDynamoDBより高速です。また、期限切れキー、RedisのPub/Subなど、Dynamoにはない便利な追加アイテムもあります。