View a markdown version of this page

耐久性オプション - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

耐久性オプション

ElastiCache for Valkey には、同期書き込みと非同期書き込みの 2 つの耐久性オプションがあります。

同期書き込みでは、成功した書き込みオペレーションは、クライアントに戻る前にマルチ AZ トランザクションログに永続的に保存されます。これにより、1 桁ミリ秒の書き込みレイテンシーが発生し、障害発生時に確認済みの書き込みオペレーションが失われることがなくなります。

非同期書き込みでは、正常な書き込みオペレーションがクライアントに返されてから、マルチ AZ トランザクションログに永続的に保存されます。書き込みオペレーションはマルチ AZ トランザクションログに永続的に保存されるまで待機しないため、書き込みオペレーションのレイテンシーは耐久性のない ElastiCache と同等です。ただし、書き込みオペレーションが成功した最後の 10 秒までは、障害が発生した場合に失われる可能性があります。

非同期書き込みによる潜在的なデータ損失を理解するには、耐久性バッファの概念を検討してください。耐久性バッファは、プライマリノードで受け入れられたがマルチ AZ トランザクションログにまだ保持されていない書き込みの最大期間を表します。プライマリノードは、未確認の最も古い書き込みの経過時間を追跡します。この期間が 10 秒未満である限り、ノードは通常どおり新しい書き込みを受け入れ続けます。最も古い未確認の書き込みの経過時間が 10 秒を超える場合、プライマリノードはキャッチアップするまですべての受信書き込みコマンドを拒否します。この期間中、読み取りオペレーションは引き続きマイクロ秒のレイテンシーで処理されます。保留中の書き込みが保持されると、ノードは自動的に書き込みの受け入れを再開します。これにより、障害発生時に潜在的なデータ損失が 10 秒分の書き込みに制限されます。

非同期の耐久性のあるクラスターにトラフィックを送信するようにクライアントを設定するときは、クラスターダウンエラーメッセージで拒否された書き込みコマンドを、クライアントがエクスポネンシャルバックオフで自動的に再試行することを確認します。このエラーやその他の一時的なエラーを処理するようにクライアントを設定するガイダンスについては、「ベストプラクティス: Valkey/Redis OSS クライアントと Amazon ElastiCache」を参照してください。

非同期耐久性バッファが 5 つの状態でどのように機能するかを示す図。書き込みはバッファに入力され、トランザクションログはバッファを保持し、バッファが 10 秒を超えると、ログが追いつくまで新しい書き込みは拒否されます。

耐久性オプションの選択

アプリケーションが障害発生時のデータ損失を許容できない場合は、同期書き込みを使用します。同期書き込みを使用すると、RAG アプリケーションのナレッジベース、AI エージェントメモリ、AI エージェントワークフロー状態、支払いトークン化、ストリーミングメタデータ、ゲームプレイヤー状態、リアルタイムインベントリ管理など、データ損失が許容できないキャッシュ以外の幅広いユースケースに ElastiCache を使用できます。

アプリケーションが書き込みパフォーマンスを優先し、障害発生時に最大 10 秒間のコミットされていないデータの潜在的な損失を許容できる場合は、非同期書き込みを使用します。このオプションは、アプリケーションデータのキャッシュ、セッションストア、ゲームリーダーボード、リアルタイム分析などのワークロードに最適です。