Q27 — AWS SAA-C03 第16章
第 27/100 問 | ← 第16章
Q1227. ある会社では、従業員のノートパソコンでPythonスクリプトを実行し、Amazon RDSデータベースに格納されたデータを変換・更新しています。同社はこの変換処理をAWSクラウドへ移行したいと考えています。このソリューションは、30分ごとにPythonスクリプトを実行する必要があります。各実行はRDSデータベース内のデータを更新するのに約20秒かかります。これらの要件を最もコスト効率よく満たすソリューションはどれですか?
- A. Pythonスクリプトを実行するためのAmazon EC2 On-Demandインスタンスを起動します。EC2インスタンスがRDSデータベースにアクセスできるように設定し、cronジョブでPythonスクリプトを呼び出します。
- B. Pythonスクリプトを実行するためのAmazon EC2 Spotインスタンスを起動します。EC2インスタンスがRDSデータベースにアクセスできるように設定し、cronジョブでPythonスクリプトを呼び出します。
- C. RDSデータベースにアクセス可能なAWS Lambda関数を設定し、Amazon EventBridge Schedulerを使用してそのLambda関数を呼び出します。 ✓
- D. RDSデータベースにアクセス可能なAWS Lambda関数を設定し、プロビジョニング済み同時実行数(provisioned concurrency)を構成します。さらに、Amazon API Gateway HTTP APIを用いてLambda関数を呼び出します。
正解: C. RDSデータベースにアクセス可能なAWS Lambda関数を設定し、Amazon EventBridge Schedulerを使用してそのLambda関数を呼び出します。
解説
30分ごとに実行されるPythonスクリプトを用いてAmazon RDSデータベースのデータを更新するという要件を、最もコスト効率よく満たすソリューションを検討します。各選択肢を分析します: A. Amazon EC2 On-Demandインスタンス: ・コスト面:On-Demandインスタンスは時間単位での課金であり、スクリプト実行時間(20秒)に関わらず1時間分の料金が発生します。30分ごとの実行では、実質的に1時間あたり2時間分の課金となるため、短時間・高頻度のタスクには非常に非効率です。 ・妥当性:サーバー管理が必要で、コスト対効果が低く、推奨されません。 B. Amazon EC2 Spotインスタンス: ・コスト面:Spotインスタンスは安価ですが、スポット価格の上昇や可用性の低下により、いつでも中断される可能性があります。 ・妥当性:30分ごとの確実な実行が求められる本ユースケースでは、中断による失敗リスクが高く、信頼性に欠けます。 C. AWS Lambda関数 + Amazon EventBridge Scheduler: ・コスト面:Lambdaは実行回数と実行時間(ミリ秒単位で切り上げ)に基づいて課金されます。20秒の実行であれば、EC2と比較して極めて低コストです。 ・妥当性:EventBridge Schedulerは正確なスケジュール(例:30分ごと)でLambdaをトリガーでき、サーバーレスで運用・スケーリングも不要です。要件を完璧に満たします。 D. プロビジョニング済み同時実行数付きLambda + Amazon API Gateway HTTP API: ・コスト面:20秒程度の実行ではコールドスタートの影響はほぼ無視可能であり、プロビジョニング済み同時実行数の導入は過剰です。また、API GatewayはHTTPリクエストを前提としたトリガーであり、定時実行には不必要で、余分なコストと複雑さを招きます。 ・妥当性:シンプルな定時タスクに対して過剰設計であり、コスト・保守性の両面で非効率です。 結論:選択肢C(AWS Lambda + Amazon EventBridge Scheduler)が最もコスト効率の高いソリューションです。Lambdaの従量課金モデルとEventBridge Schedulerの高精度なスケジューリング機能を活用することで、30分ごとの確実な実行を最低限のコストで実現できます。また、サーバーレスアーキテクチャにより、インフラ管理の負担もありません。