助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 34853
問題を開く
インテリア製品を扱う会社は、Webサイトで製品カタログを提供している。製品カタログは、画像や商品説明などの静的コンテンツと、在庫情報などの動的コンテンツで構成される。WebサイトはALB配下の複数のEC2インスタンスで動作している。会社は今後、Webサイトを複数言語に対応させて、世界中に製品を販売していく予定である。 世界中のユーザーに対して、製品カタログを高速に配信するにはどうすればよいか。

この問題はプレミアムコンテンツです。

上に戻る

CloudFrontで動的コンテンツを配信する理由がわかりません

投稿日 2024/12/14

在庫情報などの動的コンテンツで構成される
問題文にある、在庫情報のような定期的に情報が変わるようなコンテンツをCloudFrontから配信したら、古い在庫情報が表示されてしまうかと思い、
動的コンテンツはALBから直接配信するのが正解かと思いました。

CloudFrontで動的コンテンツも対応しているようですが、内容が頻繁に変わることが予想される動的コンテンツに対して使う理由がどうしてもわかりません。
ご教授いただけると幸いです。

2024/12/15 01:17

キーポイントとしては

会社は今後、Webサイトを複数言語に対応させて、 世界中に 製品を販売していく予定である。
世界中のユーザー に対して、製品カタログを 高速に配信する にはどうすればよいか。

から「世界中に」「高速に」とある部分ですかね。この時点で世界各地にキャッシュされて高速に配信されることが期待される CloudFront が正解なのかなというのは想像はつくというのはご認識されていると思います。一方でこの問題の回答に対する疑問として「動的コンテンツ」を CloudFront で扱う理由がわからないということなのだと思うのですが、まず今は多くの CDN (Contents Delivery Network) で動的コンテンツの配信をサポートしています。参考 URL の1つ目もそうですが、他にもありますね。

https://aws.amazon.com/jp/cloudfront/dynamic-content/
https://www.cloudflare.com/ja-jp/learning/cdn/caching-static-and-dynamic-content/
https://www.stream.co.jp/blog/blogpost-36616/
https://learn.microsoft.com/ja-jp/azure/cdn/cdn-dynamic-site-acceleration
https://www.fastly.com/jp/blog/serving-truly-dynamic-content-with-a-modern-cdn-and-edge-first-delivery

理由としては本当にシンプルで「動的に生成するコンテンツのためにオリジンに取りに行っていては遅くて仕方がない」から、ですかね。いかにオリジンにデータをとりにいかず、ユーザーにはエッジからの配信だけで完了させるかが高速化のポイントなので、CloudFront を含む CDN がサポートしているのにその機能を使わないのはもったいないとも言えるかなって感じですね。


コメント

r rysk777

2024/12/16 21:57

ご丁寧な回答誠にありがとうございます。以前はできなかった動的サイトのキャッシュができるようになり、高速化のために動的サイトもCDNを使うこと理解しました。 しかし、一点どうもわからない部分があります。例えば今回の例だと在庫情報ですが、在庫数が変わった直後はどうなるのでしょうか? オリジンサーバーに最新の在庫データがあり、ユーザーはキャッシュされている古い在庫数を見ることになるのでしょうか。リアルタイムに変更されるわけではなく、ある程度ラグがあると考えて良いのでしょうか?

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

2024/12/16 21:57

ご丁寧な回答誠にありがとうございます。以前はできなかった動的サイトのキャッシュができるようになり、高速化のために動的サイトもCDNを使うこと理解しました。

しかし、一点どうもわからない部分があります。例えば今回の例だと在庫情報ですが、在庫数が変わった直後はどうなるのでしょうか?
オリジンサーバーに最新の在庫データがあり、ユーザーはキャッシュされている古い在庫数を見ることになるのでしょうか。リアルタイムに変更されるわけではなく、ある程度ラグがあると考えて良いのでしょうか?


コメント

I IppaiManabe

2024/12/17 22:04

在庫情報は動的なコンテンツを提供するアプリケーションサーバーの背後に位置するDBサーバ上にあるため動的なコンテンツであると言えます(エッジにキャッシュされない) 動的なコンテンツはエッジロケーションにキャッシュされません。 CloudFrontが動的なコンテンツを高速で配信する仕組みは、通信が安定しないインターネット上ではなく、各AWSデータセンターやエッジロケーションを結ぶAWSのグローバルネットワークインフラストラクチャを介して配信することによります。 そうすることで不安定なインターネットを用いて通信する区間をユーザーとエッジロケーション間に抑えることができ、動的なコンテンツを高速で配信することができるのです。

I IppaiManabe

2024/12/17 22:05

長くなりましたが、回答としてはCloudFrontを用いて動的コンテンツ(今回は在庫情報)にアクセスしてもリアルタイムの情報を得ることができます。

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

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