助け合いフォーラム
AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 34854
問題を開く
ある企業は、電話によるカスタマーサポートを記録するアプリケーションを設計している。このアプリケーションは、通話記録を音声ファイルとしてAWSのストレージに保存し、開発したプログラムを使用してJSON形式に変換後、データベースに保存する。カスタマーサポートの稼働率は曜日や時間帯により大幅に変わるため、リクエストが突然増加した場合でも対応可能なシステムが必要である。
サーバー管理の運用コストを最小限に抑えつつ、これらの要件を満たす最も適切なソリューションはどれか。
サーバー管理の運用コストを最小限に抑えつつ、これらの要件を満たす最も適切なソリューションはどれか。
正解
音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon DynamoDBに保存する
解説
本設問では、以下のAWSサービスが求められています。
(1) 通話記録を音声ファイルとして保存するストレージサービス
(2) JSON形式に変換するプログラムを実行するサービス
(3) JSONデータを保存するデータベースサービス
さらにAWSサービスに対して「リクエストが急増しても対応できる」「サーバー管理にかかる運用を最小限にする」という要件があります。
各選択肢を確認していきます。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Auto Scalingグループ内のEC2インスタンスがSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon DynamoDBに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:EC2インスタンス … Auto Scalingでスケーラブルに設計されているのでリクエストが急増しても対応できますが、IaaS型のサービスなのでサーバー管理が必要です。要件に合致していません。
(3) データベースサービス:DynamoDB … Key-Value型のマネージドデータベースサービスです。このKey-Value型のデータ構造は、JSONのデータ構造と一致しています。そのため、JSONのデータをそのままテーブルのアイテムとして保存・取得できるので、DynamoDBはJSONのデータの保存に適しています。
プログラムを実行するサービスのEC2インスタンスが誤りです。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon ElastiCache for Memcachedに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:Lambda … サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:ElastiCache for Memcached… インメモリデータベースサービスで、主にデータベースのキャッシュなどの用途で使用します。データを永続的に保存する用途には適していません。
データベースサービスのElastiCache for Memcachedが誤りです。
・音声ファイルをAmazon S3 Glacierに保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon ElastiCache for Memcached に保存する
(1) ストレージサービス:S3 Glacier … S3と同じく安価で耐久性が高いオブジェクトストレージサービスです。データの取得に遅延が発生するので、変換処理を実施する音声ファイルの保存には適していません。
(2) プログラムを実行するサービス:Lambda… サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:ElastiCache for Memcached … インメモリデータベースサービスで、主にデータベースのキャッシュなどの用途で使用します。データを永続的に保存する用途には適していません。
ストレージサービスのS3 Glacier、データベースサービスのElastiCache for Memcachedが誤りです。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon DynamoDBに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:Lambda… サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:DynamoDB … Key-Value型のマネージドデータベースサービスです。このKey-Value型のデータ構造は、JSONのデータ構造と一致しています。そのため、JSONのデータをそのままテーブルのアイテムとして保存・取得できるので、DynamoDBはJSONのデータの保存に適しています。
本選択肢が正解です。
なお、正答の構成からAmazon SQSを使用せずに、S3イベント通知から直接Lambda関数を実行することもできます。SQSキューを使用する利点は、大量のリクエストが一度に発生した場合にリクエストをキューイングして順に処理できることです。しかし、SQSキューを使用しなくてもLambdaには自動スケーリング機能があるので、相当の負荷にも耐えられるようになっています(1秒間に同時に実行できる関数の数はデフォルトで1000)。処理にタイムアウトが発生するなどでなければ、SQSを使用せずにS3イベント通知からLambda関数を実行する方がシンプルで効果的な構成です。
本設問の場合は、選択肢すべてにSQSを使用しているので「S3イベント通知 → SQSキュー → Lambda関数 → DynamoDBデータベース」の構成が正解です。
(1) 通話記録を音声ファイルとして保存するストレージサービス
(2) JSON形式に変換するプログラムを実行するサービス
(3) JSONデータを保存するデータベースサービス
さらにAWSサービスに対して「リクエストが急増しても対応できる」「サーバー管理にかかる運用を最小限にする」という要件があります。
各選択肢を確認していきます。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Auto Scalingグループ内のEC2インスタンスがSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon DynamoDBに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:EC2インスタンス … Auto Scalingでスケーラブルに設計されているのでリクエストが急増しても対応できますが、IaaS型のサービスなのでサーバー管理が必要です。要件に合致していません。
(3) データベースサービス:DynamoDB … Key-Value型のマネージドデータベースサービスです。このKey-Value型のデータ構造は、JSONのデータ構造と一致しています。そのため、JSONのデータをそのままテーブルのアイテムとして保存・取得できるので、DynamoDBはJSONのデータの保存に適しています。
プログラムを実行するサービスのEC2インスタンスが誤りです。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon ElastiCache for Memcachedに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:Lambda … サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:ElastiCache for Memcached… インメモリデータベースサービスで、主にデータベースのキャッシュなどの用途で使用します。データを永続的に保存する用途には適していません。
データベースサービスのElastiCache for Memcachedが誤りです。
・音声ファイルをAmazon S3 Glacierに保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon ElastiCache for Memcached に保存する
(1) ストレージサービス:S3 Glacier … S3と同じく安価で耐久性が高いオブジェクトストレージサービスです。データの取得に遅延が発生するので、変換処理を実施する音声ファイルの保存には適していません。
(2) プログラムを実行するサービス:Lambda… サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:ElastiCache for Memcached … インメモリデータベースサービスで、主にデータベースのキャッシュなどの用途で使用します。データを永続的に保存する用途には適していません。
ストレージサービスのS3 Glacier、データベースサービスのElastiCache for Memcachedが誤りです。
・音声ファイルをAmazon S3に保存する。S3への保存をトリガーにしたS3イベント通知から、Amazon SQSのキューにイベントを送信する。Lambda関数がSQSキューからイベントを取り出してJSON形式に変換する。JSONデータをAmazon DynamoDBに保存する
(1) ストレージサービス:S3 … 安価で耐久性が高いオブジェクトストレージサービスです。遅延なくデータを取得できるので、変換処理を実施する音声ファイルの保存に適しています。
(2) プログラムを実行するサービス:Lambda… サーバーレスでプログラムを実行できるサービスです。スケーラブルでサーバー管理も必要ないので、要件に合致しています。
(3) データベースサービス:DynamoDB … Key-Value型のマネージドデータベースサービスです。このKey-Value型のデータ構造は、JSONのデータ構造と一致しています。そのため、JSONのデータをそのままテーブルのアイテムとして保存・取得できるので、DynamoDBはJSONのデータの保存に適しています。
本選択肢が正解です。
なお、正答の構成からAmazon SQSを使用せずに、S3イベント通知から直接Lambda関数を実行することもできます。SQSキューを使用する利点は、大量のリクエストが一度に発生した場合にリクエストをキューイングして順に処理できることです。しかし、SQSキューを使用しなくてもLambdaには自動スケーリング機能があるので、相当の負荷にも耐えられるようになっています(1秒間に同時に実行できる関数の数はデフォルトで1000)。処理にタイムアウトが発生するなどでなければ、SQSを使用せずにS3イベント通知からLambda関数を実行する方がシンプルで効果的な構成です。
本設問の場合は、選択肢すべてにSQSを使用しているので「S3イベント通知 → SQSキュー → Lambda関数 → DynamoDBデータベース」の構成が正解です。
参考
【Amazon DynamoDB】
Amazon DynamoDBは、AWSが提供するフルマネージド型のNoSQLデータベースサービスです。「NoSQL」は多くの場合、SQLを使用する「リレーショナルデータベース(RDB)」に属さないデータベースという意味で使われます。
下記はAWSが提供する主なデータベースサービスです。

本項では、DynamoDBのデータ構造、高可用性、キャパシティ、データ参照時の一貫性、自動スケール、Time To Live(TTL)について解説します。
■データ構造
DynamoDBはKey-Value構造を基本としつつ、JSON形式のようなドキュメント型の柔軟性も兼ね備えています。
○Key-Value型
DynamoDBでは、Key-Value型という「保存するデータ(Value)」と、それを特定するための「キー(Key)」のペアで構成される形式のデータを扱います。例えば「ユーザーが保有しているアイテム」を管理するには、以下のように格納できます。

新たにアイテムが追加された場合や、初めて保有するアイテムを登録する場合でも、既存のデータ構造を変更することなく新しい項目を追加できます。
Key-Value型で構成されたデータの集合を「テーブル」と呼びます。複数のテーブルを結合して分析するような用途よりも、上記のように単一のデータを高速に格納・取得するシンプルな利用に向いています。
シンプルな構造のためパフォーマンスが非常に高く、ピーク時には1秒あたり最大2000万件のリクエストに対応可能です。さらに、ストレージに上限がないため、非常に高いスケーラビリティを実現します。
○ドキュメント型
DynamoDBでは、階層構造を持つ「ドキュメント型」のデータも扱うことができます。

構造的にはKey-Value型をベースとしていますが、ドキュメント型ではネストされた複雑なデータ構造もJSON形式で格納可能です。
DynamoDBは「スキーマレス」なデータベースで、属性の追加や変更を柔軟にできます。スキーマとはデータベースの構造定義のことを指します。通常、項目を追加する際にはスキーマの定義変更とデータ移行が必要ですが、DynamoDBではプライマリキー以外の属性に関しては事前定義が不要であり、任意の項目を動的に追加できます。さらに、DynamoDBではテーブルにインデックスを定義することによって、データへの高速アクセスが可能です。
■キャパシティ
DynamoDBでは、読み書きの処理量と課金体系が密接に関係しています。以下の2つの利用モードが提供されています。
○オンデマンドモード
読み書きリクエスト数に応じた従量課金なので、アクセス頻度が予測不能なワークロードに適しています。
○プロビジョンドモード
事前に1秒間あたりの読み書き量(キャパシティユニット)を設定する方式で、アクセス頻度が予測できるワークロードに適しています。
プロビジョンドモードの書き込み・読み込みは、「キャパシティユニット」という単位で管理されています。これは1秒間にどれだけ読み込み・書き込みを行うかを予約する設定で、容量が大きいほど料金がかかります。

初期値はRCU(Read Capacity Unit)/WCU(Write Capacity Unit)ともに5に設定されており、ユーザーは随時変更可能です。また、DynamoDBは負荷に応じてキャパシティユニットを自動でスケーリングできるため、一定のパフォーマンスを維持しつつ、コストを抑えることが可能です。
大規模な運用が見込まれる場合は「リザーブドキャパシティ」の利用が推奨されます。RCU/WCUを100ユニット単位で1年または3年契約で予約購入することで、通常のプロビジョンドモードよりもコストを削減できるプランです。
・キャパシティユニットとパーティション
パーティションの数やサイズは、プロビジョニングしたキャパシティユニットの値に応じてAWS側で自動的に算出・調整されます。キャパシティユニットが大きくなると、対応するパーティション数も増加し、スループットが維持されます。
■高可用性
○3つのAZにデータを分散して保存
DynamoDBは、単一障害点(SPOF: Single Point Of Failure)を排除した設計となっており、高い可用性と耐障害性を実現しています。データは、3つの異なるAZに自動的にレプリケートされ、障害発生時にも可用性が維持されます。

各AZに保存されるデータは「パーティション」単位で分割されており、パーティション分散により、データが特定のノードに集中しないようになっています。 これにより、プロビジョニングされたスループットの安定的な確保が可能です。なお、パーティションの管理と分散はAWSが自動で行うため、ユーザーが設定する必要はありません。
○バックアップ
DynamoDBでは、自動で行う「ポイントインタイムリカバリ(PITR)」と手動で行う「オンデマンドバックアップ」の2種類のバックアップ方式が提供されています。
・ポイントインタイムリカバリ(PITR)
有効化することで、過去35日間の任意の時点にデータを復元できる差分バックアップ機能が利用可能です。自動的かつ継続的にバックアップが取得されるため、復旧時の操作が容易です。
・オンデマンドバックアップ
ユーザーが任意のタイミングで、マネジメントコンソールやAPIを通じて完全なバックアップを取得できます。
○S3へのエクスポート
DynamoDBは、既存のテーブルデータをAmazon S3に直接エクスポートする機能を提供しています。エクスポートは、アプリケーションコードを記述することなく、簡単に実行できます。

S3へのエクスポートには、内部的にポイントインタイムリカバリ(PITR)の仕組みを利用しているため、事前にPITRを有効化しておく必要があります。
■データ参照時の一貫性
アプリケーションがデータを書き込むと、DynamoDBは3つのAZにレプリケートされたデータのうち、2つへの書き込みが成功した時点で処理を完了と見なします。残り1つのAZには非同期的にレプリケーションが行われるため、一時的に古いデータが参照される可能性があります。
DynamoDBでは2種類の読み込みモードが提供されています。
○結果整合性のある読み込み(デフォルト)
読み込み時に直前の更新が反映されていない可能性がありますが、時間の経過とともに整合性が確保されます。一時的に古いデータが取得されることが許容されるケースに適しています。
○強い整合性のある読み込み
レイテンシーが高くなる可能性がありますが、常に最新のデータを取得できます。
■自動スケール
DynamoDBでは、データ量やトラフィックの増加に応じて自動的にスケールアウト(拡張)されます。ノードの追加やディスク容量の管理などをユーザーが行う必要はなく、ダウンタイムなしで継続的にサービスを提供できます。
■Time To Live(TTL)
Time To Live(TTL)は、指定した時刻に一時データなどを自動で削除する機能です。項目にTTL属性を設定することで、期限を過ぎたデータが自動的に削除されます。削除処理は完全に自動で行われ、追加の管理作業やDynamoDB側での課金は発生しません。不要なデータを効率的に削除することで、ストレージコストの最適化にもなります。
【DynamoDB Streams】
DynamoDB Streamsは、テーブルに対して行われた直近24時間の変更(追加・更新・削除)をログとして保持する機能です。ストリームを利用することで、いつ・どのような更新が行われたかを追跡できます。
ログはアプリケーションからリアルタイムに参照可能で、変更に応じたイベント駆動処理を構築できます。たとえば、特定の更新をトリガーにアラートを発報する、プロフィール画像の変更をフレンドに通知するといったユースケースが考えられます。
なお、Streamsは非同期で動作するため、元のテーブルのパフォーマンスに影響を与えることはありません。

【DynamoDB Accelerator(DAX)】
DynamoDB Accelerator(DAX)は、DynamoDB向けのインメモリキャッシュサービスです。DAXを利用することで、通常ミリ秒単位のレスポンスを、マイクロ秒レベルまで短縮できます。
DAXのキャッシュからデータを取得できる場合、DynamoDB自体への読み込みリクエスト回数が減少するため、パフォーマンス向上とコスト削減の両立が可能です。

Amazon DAXクラスターでは、保管時の暗号化と転送中の暗号化の両方とも、クラスター作成時にのみ設定できます。既存のクラスターに対して後から暗号化設定を変更することはできません。そのため、暗号化を実装するには、既存のクラスターを削除し、必要な暗号化設定を有効にして新しいクラスターを作成する必要があります。
【グローバルテーブル】
DynamoDBのグローバルテーブルは、DynamoDBテーブルを複数のリージョンにまたがって運用できるサービスです。複数のリージョンにDynamoDBテーブルが自動的にレプリケートされ、ユーザーは地理的に近いリージョンのDynamoDBテーブルへ高速な読み込みと書き込みが可能です。データのレプリケーションは通常1秒以内に完了し、リージョン間のデータ冗長化によって高可用性が確保されます。
グローバルテーブルのレプリケート先のリージョンはユーザーが指定します。

Amazon DynamoDBは、AWSが提供するフルマネージド型のNoSQLデータベースサービスです。「NoSQL」は多くの場合、SQLを使用する「リレーショナルデータベース(RDB)」に属さないデータベースという意味で使われます。
下記はAWSが提供する主なデータベースサービスです。

本項では、DynamoDBのデータ構造、高可用性、キャパシティ、データ参照時の一貫性、自動スケール、Time To Live(TTL)について解説します。
■データ構造
DynamoDBはKey-Value構造を基本としつつ、JSON形式のようなドキュメント型の柔軟性も兼ね備えています。
○Key-Value型
DynamoDBでは、Key-Value型という「保存するデータ(Value)」と、それを特定するための「キー(Key)」のペアで構成される形式のデータを扱います。例えば「ユーザーが保有しているアイテム」を管理するには、以下のように格納できます。

新たにアイテムが追加された場合や、初めて保有するアイテムを登録する場合でも、既存のデータ構造を変更することなく新しい項目を追加できます。
Key-Value型で構成されたデータの集合を「テーブル」と呼びます。複数のテーブルを結合して分析するような用途よりも、上記のように単一のデータを高速に格納・取得するシンプルな利用に向いています。
シンプルな構造のためパフォーマンスが非常に高く、ピーク時には1秒あたり最大2000万件のリクエストに対応可能です。さらに、ストレージに上限がないため、非常に高いスケーラビリティを実現します。
○ドキュメント型
DynamoDBでは、階層構造を持つ「ドキュメント型」のデータも扱うことができます。

構造的にはKey-Value型をベースとしていますが、ドキュメント型ではネストされた複雑なデータ構造もJSON形式で格納可能です。
DynamoDBは「スキーマレス」なデータベースで、属性の追加や変更を柔軟にできます。スキーマとはデータベースの構造定義のことを指します。通常、項目を追加する際にはスキーマの定義変更とデータ移行が必要ですが、DynamoDBではプライマリキー以外の属性に関しては事前定義が不要であり、任意の項目を動的に追加できます。さらに、DynamoDBではテーブルにインデックスを定義することによって、データへの高速アクセスが可能です。
■キャパシティ
DynamoDBでは、読み書きの処理量と課金体系が密接に関係しています。以下の2つの利用モードが提供されています。
○オンデマンドモード
読み書きリクエスト数に応じた従量課金なので、アクセス頻度が予測不能なワークロードに適しています。
○プロビジョンドモード
事前に1秒間あたりの読み書き量(キャパシティユニット)を設定する方式で、アクセス頻度が予測できるワークロードに適しています。
プロビジョンドモードの書き込み・読み込みは、「キャパシティユニット」という単位で管理されています。これは1秒間にどれだけ読み込み・書き込みを行うかを予約する設定で、容量が大きいほど料金がかかります。

初期値はRCU(Read Capacity Unit)/WCU(Write Capacity Unit)ともに5に設定されており、ユーザーは随時変更可能です。また、DynamoDBは負荷に応じてキャパシティユニットを自動でスケーリングできるため、一定のパフォーマンスを維持しつつ、コストを抑えることが可能です。
大規模な運用が見込まれる場合は「リザーブドキャパシティ」の利用が推奨されます。RCU/WCUを100ユニット単位で1年または3年契約で予約購入することで、通常のプロビジョンドモードよりもコストを削減できるプランです。
・キャパシティユニットとパーティション
パーティションの数やサイズは、プロビジョニングしたキャパシティユニットの値に応じてAWS側で自動的に算出・調整されます。キャパシティユニットが大きくなると、対応するパーティション数も増加し、スループットが維持されます。
■高可用性
○3つのAZにデータを分散して保存
DynamoDBは、単一障害点(SPOF: Single Point Of Failure)を排除した設計となっており、高い可用性と耐障害性を実現しています。データは、3つの異なるAZに自動的にレプリケートされ、障害発生時にも可用性が維持されます。

各AZに保存されるデータは「パーティション」単位で分割されており、パーティション分散により、データが特定のノードに集中しないようになっています。 これにより、プロビジョニングされたスループットの安定的な確保が可能です。なお、パーティションの管理と分散はAWSが自動で行うため、ユーザーが設定する必要はありません。
○バックアップ
DynamoDBでは、自動で行う「ポイントインタイムリカバリ(PITR)」と手動で行う「オンデマンドバックアップ」の2種類のバックアップ方式が提供されています。
・ポイントインタイムリカバリ(PITR)
有効化することで、過去35日間の任意の時点にデータを復元できる差分バックアップ機能が利用可能です。自動的かつ継続的にバックアップが取得されるため、復旧時の操作が容易です。
・オンデマンドバックアップ
ユーザーが任意のタイミングで、マネジメントコンソールやAPIを通じて完全なバックアップを取得できます。
○S3へのエクスポート
DynamoDBは、既存のテーブルデータをAmazon S3に直接エクスポートする機能を提供しています。エクスポートは、アプリケーションコードを記述することなく、簡単に実行できます。

S3へのエクスポートには、内部的にポイントインタイムリカバリ(PITR)の仕組みを利用しているため、事前にPITRを有効化しておく必要があります。
■データ参照時の一貫性
アプリケーションがデータを書き込むと、DynamoDBは3つのAZにレプリケートされたデータのうち、2つへの書き込みが成功した時点で処理を完了と見なします。残り1つのAZには非同期的にレプリケーションが行われるため、一時的に古いデータが参照される可能性があります。
DynamoDBでは2種類の読み込みモードが提供されています。
○結果整合性のある読み込み(デフォルト)
読み込み時に直前の更新が反映されていない可能性がありますが、時間の経過とともに整合性が確保されます。一時的に古いデータが取得されることが許容されるケースに適しています。
○強い整合性のある読み込み
レイテンシーが高くなる可能性がありますが、常に最新のデータを取得できます。
■自動スケール
DynamoDBでは、データ量やトラフィックの増加に応じて自動的にスケールアウト(拡張)されます。ノードの追加やディスク容量の管理などをユーザーが行う必要はなく、ダウンタイムなしで継続的にサービスを提供できます。
■Time To Live(TTL)
Time To Live(TTL)は、指定した時刻に一時データなどを自動で削除する機能です。項目にTTL属性を設定することで、期限を過ぎたデータが自動的に削除されます。削除処理は完全に自動で行われ、追加の管理作業やDynamoDB側での課金は発生しません。不要なデータを効率的に削除することで、ストレージコストの最適化にもなります。
【DynamoDB Streams】
DynamoDB Streamsは、テーブルに対して行われた直近24時間の変更(追加・更新・削除)をログとして保持する機能です。ストリームを利用することで、いつ・どのような更新が行われたかを追跡できます。
ログはアプリケーションからリアルタイムに参照可能で、変更に応じたイベント駆動処理を構築できます。たとえば、特定の更新をトリガーにアラートを発報する、プロフィール画像の変更をフレンドに通知するといったユースケースが考えられます。
なお、Streamsは非同期で動作するため、元のテーブルのパフォーマンスに影響を与えることはありません。

【DynamoDB Accelerator(DAX)】
DynamoDB Accelerator(DAX)は、DynamoDB向けのインメモリキャッシュサービスです。DAXを利用することで、通常ミリ秒単位のレスポンスを、マイクロ秒レベルまで短縮できます。
DAXのキャッシュからデータを取得できる場合、DynamoDB自体への読み込みリクエスト回数が減少するため、パフォーマンス向上とコスト削減の両立が可能です。

Amazon DAXクラスターでは、保管時の暗号化と転送中の暗号化の両方とも、クラスター作成時にのみ設定できます。既存のクラスターに対して後から暗号化設定を変更することはできません。そのため、暗号化を実装するには、既存のクラスターを削除し、必要な暗号化設定を有効にして新しいクラスターを作成する必要があります。
【グローバルテーブル】
DynamoDBのグローバルテーブルは、DynamoDBテーブルを複数のリージョンにまたがって運用できるサービスです。複数のリージョンにDynamoDBテーブルが自動的にレプリケートされ、ユーザーは地理的に近いリージョンのDynamoDBテーブルへ高速な読み込みと書き込みが可能です。データのレプリケーションは通常1秒以内に完了し、リージョン間のデータ冗長化によって高可用性が確保されます。
グローバルテーブルのレプリケート先のリージョンはユーザーが指定します。

選択肢と解説の差異について
E
EVa0082
投稿日 2023/06/28
設問の選択肢には「ElastiCache for Memcached」を使用することになっていますが、
解説内では「ElastiCache for Redis」を使用していることになっている箇所が複数あります。
どちらかに統一をお願いいたします。
スタッフからの返信
この投稿に対して返信しませんか?
s staff_satomi
2023/06/28 15:00
EVa0082様 ご指摘の点を修正いたしました。 ご報告いただきまして、誠にありがとうございます。