DynamoDBをベースとしたデータストアを持つモバイルチャットアプリ。低レイテンシーを実現する方法は?

Amazon DynamoDB Accelerator(DAX)

・新しいメッセージテーブル用にAmazon DynamoDB Accelerator(DAX)を設定します。DAXエンドポイントを使用するようにコードを更新します

この選択肢が正解の理由は以下の通りです。

DynamoDB Accelerator(DAX)は、ユーザーからの問い合わせをキャッシュすることで、DynamoDBへの読み込みのレイテンシーを劇的に改善するサービスです。DAXはテーブルからデータを取得する際、先に自身のキャッシュにデータがないか確認します。キャッシュが存在する場合はそのキャッシュを返し、存在しない場合はDynamoDBに問い合わせを行います。

従って、一度読み込まれたデータは低レイテンシーで取得可能になります。

また、コードの更新も最小限に抑えることができます。従来のDynamoDBへの接続をDAXエンドポイントに置き換えるだけでDAXを利用できるため、アプリケーションの制作に膨大な手間や時間を必要としません。

選択肢:Amazon ElastiCache for Redisキャッシュをアプリケーションスタックに追加します。アプリケーションを更新して、DynamoDBの代わりにRedisキャッシュエンドポイントを指すようにします

この選択肢が正しくない理由は以下の通りです。

ElastiCache for Redisを用いると、アプリケーションの変更が大幅に必要になります。そこで、最小限の変更で実現するためにはDynamoDBと親和性の高いDAXを利用する方が適切です。

また、DAXはDynamoDB専用のキャッシングサービスであり、レイテンシーを低減するのに適しています。

コメント

タイトルとURLをコピーしました