助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 33262

イベントブリッジが管理する対象

公開日 2023/05/19

ジョブのタイミングが時間指定であると問題には書いてないので、きめられたスケジュールではなく、lambaでRDSを起動するのが正しい。
eventbridge のスケジュールは cron と rate しか対応していないので、それらに対応しているジョブだと問題文に書くべきだ。そうでないと正解がない。

2023/05/22 18:09

ChatGPTに聞いてみましたー。
-----わたし-----
次の問題を解いてください。
加工食品を扱う会社は、工場の管理システムにAmazon EC2とAmazon RDSを利用している。EC2インスタンスで動作するアプリケーションは24時間ジョブが起動しているが、RDSインスタンスに保存しているデータは工場が稼働する朝8時から夜20時の間しか利用されない。会社はアプリケーションの動作に影響を及ぼすことなく、システムにかかるコストを最小化したいと考えている。
ソリューションアーキテクトはコスト削減のためにどのような提案をすべきか。
RDSインスタンスの停止・起動を実行するLambda関数を作成する。Amazon EventBridgeでスケジュールを作成し、前述のLambda関数をターゲットに指定する
RDSインスタンスのオプションから、自動で停止・起動するスケジュールを作成する
EC2インスタンスをスポットインスタンスで契約する
Amazon ElastiCacheのキャッシュを利用して、RDSインスタンスへのアクセスを減らす

-----ChatGPT-----
このシナリオでは、Amazon RDSインスタンスが一日のうちの特定の時間帯(朝8時から夜20時まで)しか利用されていないとのことなので、この特性を利用してコストを削減することが考えられます。具体的には、RDSインスタンスを稼働していない時間帯に停止することでコストを節約できます。

そのため、以下の提案が適当でしょう。

RDSインスタンスの停止・起動を実行するLambda関数を作成する。Amazon EventBridgeでスケジュールを作成し、前述のLambda関数をターゲットに指定する
この提案により、RDSインスタンスは工場が稼働していない時間帯に自動的に停止し、稼働時間帯に再起動します。この結果、RDSインスタンスの運用コストを削減することができます。

それ以外の選択肢については、以下の通りです。

RDSインスタンスのオプションから、自動で停止・起動するスケジュールを作成する: これは不可能です。現時点では、RDSは自動的なスケジュール停止・起動の設定機能を提供していません。

EC2インスタンスをスポットインスタンスで契約する: スポットインスタンスはコスト削減に有効ですが、その利用は中断される可能性があります。24時間稼働が必要なアプリケーションには不適切です。

Amazon ElastiCacheのキャッシュを利用して、RDSインスタンスへのアクセスを減らす: これは一部のシナリオでコストを節約する可能性がありますが、本シナリオではRDSインスタンスが一部の時間帯しか稼働していないという情報が与えられているため、ElastiCacheを利用するよりもRDSの停止・起動の自動化の方が明確なコスト削減効果が期待できます。


コメント

C CafeLate

2023/05/22 18:11

-----わたし----- この問題についての、次の意見は正しいですか? ジョブのタイミングが時間指定であると問題には書いてないので、きめられたスケジュールではなく、lambaでRDSを起動するのが正しい。 eventbridge のスケジュールは cron と rate しか対応していないので、それらに対応しているジョブだと問題文に書くべきだ。そうでないと正解がない。 -----ChatGPT----- この問題に関するご意見について、以下の通り詳細に説明いたします。 1. "ジョブのタイミングが時間指定であると問題には書いてないので、きめられたスケジュールではなく、lambaでRDSを起動するのが正しい。" 問題文から、工場の稼働時間が朝8時から夜20時までと指定されており、その間だけRDSインスタンスが必要であると解釈できます。これはある種のスケジュールと見なすことができます。そのため、このスケジュールに基づいてLambdaを使用してRDSインスタンスを起動および停止することは、RDSの使用時間を最適化し、コストを節約する可能性がある適切な解決策と言えます。 2. "eventbridge のスケジュールは cron と rate しか対応していないので、それらに対応しているジョブだと問題文に書くべきだ。そうでないと正解がない。" EventBridgeのスケジュール式は、実際にはcron式とrate式の2つの形式をサポートしています。この問題の文脈では、具体的には、朝8時に起動し、夜20時に停止するようなスケジュールをcron式で表現することが可能です。したがって、この問題には適切な解決策が存在します。 したがって、上記の意見は正確とは言えません。問題文は時間帯が明示されており、EventBridgeとLambdaを使用してそのスケジュールに基づいてRDSインスタンスを起動および停止することが、この特定の問題の適切な解決策であると理解されます。

C CafeLate

2023/05/22 18:16

私もChatGPT君と同意見です!

k koyakei

2023/05/23 22:59

問題文から、工場の稼働時間が朝8時から夜20時までと指定されており、その間だけRDSインスタンスが必要であると解釈できます。これはある種のスケジュールと見なすことができます。 ここが論理飛躍してます。見做さない事もできる。

この返信に対して
コメントを記入できます

2023/05/25 11:33

設問およびCafeLateさんの回答に対して、koyakeiさんが「どの点」で「何」に疑問を持たれているのかが、
今までの流れからはいまいち見えてこないのですが…

調べてみた限りでの回答ですが、

① >lambaでRDSを起動するのが正しい。
 AWS Lambdaは単独起動しないサービスです。
 必ず何がしかのトリガーが必要で、本設については「EventBbridge」が該当です。

② >eventbridge のスケジュールは cron と rate しか対応していないので~
 EventBridgeを使用したLambda起動については、cron式になるようです。
 https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-run-lambda-schedule.html

③ >「朝8時から夜20時までと指定され~」→「ここが論理飛躍してます。見做さない事もできる。」
 ここでは、
 「RDSインスタンスに保存しているデータは工場が稼働する朝8時から夜20時の間しか利用されない。」
 と明言されています。
 であれば、RDSが起動していればいい時間は「朝8時から夜20時まで」と取るのが自然でしょう。
 そして、解答の大前提は「コスト削減のためにどのような提案」とあるので、
 『起動の必要がない時間帯でインスタンスを停止する』が最適解でしょう。
 であれば、
 「朝8時に『RDSインスタンスを起動するジョブ』をEventBridgeでトリガーする」
 「夜20時に『RDSインスタンスを停止するジョブ』をEventBridgeでトリガーする」
 という解答で問題ないでしょう。

 むしろ、「見做さない事もできる」のであれば、どのような「見做し」があるのかを
 提示いただかないと、解答のしようもありません。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?