Q73 — AWS SAA-C03 第17章

第 73/89 問 | ← 第17章

Q1373. あるECサイト企業がAWS上でマルチティアアプリケーションを実行しています。フロントエンドおよびバックエンドの各ティアはAmazon EC2インスタンス上で動作し、データベースティアはAmazon RDS for MySQL DBインスタンス上で動作しています。バックエンドティアはこのRDS DBインスタンスと通信します。アプリケーションは、データベースから同一のデータセットを頻繁に取得するための呼び出しを多数行っています。この頻繁な呼び出しがデータベースのパフォーマンス低下を引き起こしています。ソリューションアーキテクトは、アプリケーションのバックエンドパフォーマンスを向上させる必要があります。この要件を満たすソリューションはどれですか?

正解: B. Amazon ElastiCache(Redis OSS)キャッシュを設定し、バックエンドのEC2インスタンスがこのキャッシュから読み取るように構成します。

解説

データベースから同一のデータセットを頻繁に取得することによるパフォーマンス低下を解消するため、各選択肢を検討します。 選択肢A:EC2インスタンスとRDS DBインスタンスの間にAmazon SNSトピックを設定する Amazon SNSは、メールやモバイルデバイス、その他のAWSサービスなど、複数のサブスクライバーへメッセージを配信するための完全マネージド型のプッシュ/サブスクライブ型メッセージングサービスです。SNSはデータのキャッシュや、繰り返し実行されるクエリによるデータベース負荷の軽減を目的として設計されておらず、通知系ユースケースに適しています。したがって、この選択肢は不適切です。 選択肢B:Amazon ElastiCache(Redis OSS)キャッシュを設定し、バックエンドのEC2インスタンスがこのキャッシュから読み取るように構成する Amazon ElastiCacheは、RedisおよびMemcachedをサポートする完全マネージド型のインメモリキャッシュサービスです。ElastiCache(Redis OSS)キャッシュを導入することで、アプリケーションのバックエンドは頻繁にアクセスされるデータをメモリ上に保持できます。バックエンドがデータを要求した際、まずキャッシュを参照し、該当データがキャッシュ内に存在すれば(キャッシュヒット)、データベースへの直接アクセスを回避して高速に取得できます。これにより、Amazon RDS for MySQL DBインスタンスへのアクセス回数が削減され、アプリケーション全体のバックエンドパフォーマンスが向上します。したがって、この選択肢は適切です。 選択肢C:Amazon DynamoDB Accelerator(DAX)クラスターを設定し、バックエンドのEC2インスタンスがこのクラスターから読み取るように構成する DAXは、NoSQLデータベースであるAmazon DynamoDB専用に設計されたインメモリキャッシュサービスです。本シナリオではデータベースティアがAmazon RDS for MySQL(リレーショナルデータベース)であるため、DAXは適用できません。DAXはDynamoDBのデータモデルおよびアクセスパターンに最適化されており、MySQLデータベースからのデータキャッシュには利用できません。したがって、この選択肢は不適切です。 選択肢D:Amazon Kinesis Data Firehoseを設定して、データベースへの呼び出しをストリーミングする Amazon Kinesis Data Firehoseは、ストリーミングデータをリアルタイムで収集・変換・配信する完全マネージド型サービスであり、Amazon S3やAmazon Redshift、Amazon OpenSearch Serviceなどの宛先へデータを送信するために使用されます。これはリアルタイム分析向けのサービスであり、データベースのクエリ負荷を軽減するためのキャッシュ機能を提供しません。したがって、この選択肢も不適切です。 以上より、アプリケーションのバックエンドパフォーマンス向上という要件を満たすソリューションは、「Amazon ElastiCache(Redis OSS)キャッシュを設定し、バックエンドのEC2インスタンスがこのキャッシュから読み取るように構成する」であり、正解はBです。