Q17 — AWS SAA-C03 第6章
第 17/65 問 | ← 第6章
Q382. ある企業には15人の従業員がいます。この企業は、従業員の入社日をAmazon DynamoDBテーブルに保存しています。企業は、各従業員の勤続記念日にメールメッセージを送信したいと考えています。 これらの要件を満たす最も運用効率の高い解決策はどれですか?
- A. DynamoDBテーブルをスキャンし、必要に応じてAmazon Simple Notification Service(Amazon SNS)を使用して従業員へメールを送信するスクリプトを作成します。このスクリプトをAmazon EC2インスタンス上でcronジョブにより毎日実行します。
- B. DynamoDBテーブルをスキャンし、必要に応じてAmazon Simple Queue Service(Amazon SQS)を使用して従業員へメールを送信するスクリプトを作成します。このスクリプトをAmazon EC2インスタンス上でcronジョブにより毎日実行します。
- C. DynamoDBテーブルをスキャンし、必要に応じてAmazon Simple Notification Service(Amazon SNS)を使用して従業員へメールを送信するAWS Lambda関数を作成します。このLambda関数を毎日実行するようスケジュール設定します。 ✓
- D. DynamoDBテーブルをスキャンし、必要に応じてAmazon Simple Queue Service(Amazon SQS)を使用して従業員へメールを送信するAWS Lambda関数を作成します。このLambda関数を毎日実行するようスケジュール設定します。
正解: C. DynamoDBテーブルをスキャンし、必要に応じてAmazon Simple Notification Service(Amazon SNS)を使用して従業員へメールを送信するAWS Lambda関数を作成します。このLambda関数を毎日実行するようスケジュール設定します。
解説
AWS Lambdaはサーバーレスコンピューティングサービスであり、インフラストラクチャの管理が不要です。また、着信ワークロードに応じて自動的にスケーリングされるため、リソースの効率的な利用が保証されます。Lambdaを使用すれば、関数の実際の実行時間のみに対して課金されるため、EC2インスタンスを継続的に実行する場合と比較してコスト効率が高くなります。 Lambda関数はスケジュールされたイベントによって起動できるため、DynamoDBテーブルのスキャンおよび勤続記念日におけるメール送信を毎日実行するように設定できます。 Amazon SNSは、メールによる通知をシンプルかつスケーラブルに送信するためのサービスです。Lambda関数と簡単に統合でき、各従業員の勤続記念日にパーソナライズされたメールを送信できます。 選択肢AおよびBでは、EC2インスタンス上でcronジョブを用いてスクリプトを実行します。これらも目的を達成できますが、EC2インスタンスの管理・保守が必要となり、運用上のオーバーヘッドと追加コストが発生します。 選択肢DではAmazon SQSが提案されていますが、SQSはコンポーネント間の非同期処理やデカップリングを目的としたメッセージキューイングサービスです。本シナリオのようにメール送信を行う用途には、最も適した選択とは言えません。Lambda関数から直接SNSを利用する方がアーキテクチャが単純化され、複雑さが低減されます。