Slide 1

Slide 1 text

Origin 負荷軽減の観点で⾒る CloudFront - オプション機能から Originless 設計まで - 〜NRI ネットコム TECH AND DESIGN STUDY #21〜 2024年01⽉30⽇ NRIネットコム株式会社 基盤デザイン事業部 ⻄ 洋平

Slide 2

Slide 2 text

1 Copyright(C) NRI Netcom, Ltd. All rights reserved. n ⻄ 洋平 (NISHI Yohei) l NRI ネットコム株式会社 基盤デザイン事業部 (@Osaka) n Web システム開発運⽤チームのインフラ担当 l IaC や SaaS による運⽤とシステム改善 l たまにサーバレスアプリケーション開発 ⾃⼰紹介 https://tech.nri-net.com/entry/learn_with_pictures_cloudfront_lntroduction https://tech.nri-net.com/entry/cloudfront_api_operation_pictures https://jawsug-asa.connpass.com/event/291918/

Slide 3

Slide 3 text

2 Copyright(C) NRI Netcom, Ltd. All rights reserved. n AWS マネージドなグローバル展開されている CDN サービス n 世界中に存在する Edge による⾼信頼 / 低遅延なコンテンツ配信を実現 Amazon CloudFront (CloudFront) 概要

Slide 4

Slide 4 text

3 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CDN に期待される役割として主なもの CloudFront (CDN) に期待される役割

Slide 5

Slide 5 text

4 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CDN に期待される役割として主なもの CloudFront (CDN) に期待される役割 キャッシュ技術でコンテンツ配信を⾼速化

Slide 6

Slide 6 text

5 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CDN に期待される役割として主なもの CloudFront (CDN) に期待される役割 キャッシュ技術でコンテンツ配信を⾼速化 Origin の保護レイヤとして活⽤

Slide 7

Slide 7 text

6 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CDN に期待される役割として主なもの CloudFront (CDN) に期待される役割 キャッシュ技術でコンテンツ配信を⾼速化 Origin の保護レイヤとして活⽤ Edge による Origin への負荷軽減

Slide 8

Slide 8 text

7 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CDN に期待される役割として主なもの CloudFront (CDN) に期待される役割 キャッシュ技術でコンテンツ配信を⾼速化 Origin の保護レイヤとして活⽤ Edge による Origin への負荷軽減 今⽇はこの話

Slide 9

Slide 9 text

8 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront は世界中のキャッシュ⽤拠点を利⽤して Viewer へコンテンツを⾼速で配信する n 拠点は多段構成で Viewer から近い順に Edge location と Regional edge cache が存在する Edge location / Regional edge cache

Slide 10

Slide 10 text

9 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront は世界中のキャッシュ⽤拠点を利⽤して Viewer へコンテンツを⾼速で配信する n 拠点は多段構成で Viewer から近い順に Edge location と Regional edge cache が存在する Edge location / Regional edge cache

Slide 11

Slide 11 text

10 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront は世界中のキャッシュ⽤拠点を利⽤して Viewer へコンテンツを⾼速で配信する n 拠点は多段構成で Viewer から近い順に Edge location と Regional edge cache が存在する Edge location / Regional edge cache 規模は Edge location < Regional edge cache

Slide 12

Slide 12 text

11 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront は世界中のキャッシュ⽤拠点を利⽤して Viewer へコンテンツを⾼速で配信する n 拠点は多段構成で Viewer から近い順に Edge location と Regional edge cache が存在する Edge location / Regional edge cache コンテンツは Viewer からの⼈気に応じた場所でキャッシュされる → より多くのコンテンツを Viewer に近い場所で配信可能 規模は Edge location < Regional edge cache

Slide 13

Slide 13 text

12 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront の機能の⼀つで Regional edge cache と Origin の間にキャッシュレイヤを追加できる n Origin Shield によるキャッシュヒット率向上や Origin 負荷軽減が可能 Origin Shield

Slide 14

Slide 14 text

13 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Viewer / Edge からのリクエストやそれに対するレスポンスをトリガーに Edge 上で軽量なスクリプトを実⾏できる n CloudFront では Lambda@Edge と CloudFront Functions (CF2) が利⽤可能 Edge computing (Edge 関数)

Slide 15

Slide 15 text

14 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Viewer / Edge からのリクエストやそれに対するレスポンスをトリガーに Edge 上で軽量なスクリプトを実⾏できる n CloudFront では Lambda@Edge と CloudFront Functions (CF2) が利⽤可能 Edge computing (Edge 関数) Origin Shield や Edge 関数を活⽤することで Origin への負荷をさらに軽減可能

Slide 16

Slide 16 text

15 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Viewer / Edge からのリクエストやそれに対するレスポンスをトリガーに Edge 上で軽量なスクリプトを実⾏できる n CloudFront では Lambda@Edge と CloudFront Functions (CF2) が利⽤可能 Edge computing (Edge 関数) Origin Shield や Edge 関数を活⽤することで Origin への負荷をさらに軽減可能 これらを活⽤するケースについて詳しく⾒ていきます

Slide 17

Slide 17 text

16 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Origin Shield を追加した場合 Origin への全リクエストが Origin Shield を経由するようになる n Origin Shield のキャッシュにないコンテンツへのリクエストは、同オブジェクトに対する他リクエストと 1 つにまとめられる Origin Shield による Origin 負荷軽減

Slide 18

Slide 18 text

17 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Origin Shield を追加した場合 Origin への全リクエストが Origin Shield を経由するようになる n Origin Shield のキャッシュにないコンテンツへのリクエストは、同オブジェクトに対する他リクエストと 1 つにまとめられる Origin Shield による Origin 負荷軽減 e.g. 新規の同⼀コンテンツに対する⼤量のリクエストが殺到した場合 リクエストは Edge location → Regional edge cache へと到達していく

Slide 19

Slide 19 text

18 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Origin Shield を追加した場合 Origin への全リクエストが Origin Shield を経由するようになる n Origin Shield のキャッシュにないコンテンツへのリクエストは、同オブジェクトに対する他リクエストと 1 つにまとめられる Origin Shield による Origin 負荷軽減 Origin Shield まで到達すると……

Slide 20

Slide 20 text

19 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Origin Shield を追加した場合 Origin への全リクエストが Origin Shield を経由するようになる n Origin Shield のキャッシュにないコンテンツへのリクエストは、同オブジェクトに対する他リクエストと 1 つにまとめられる Origin Shield による Origin 負荷軽減 Origin Shield まで到達すると…… 同⼀コンテンツに関するリクエストは⼀つに集約されて Origin へ送られる

Slide 21

Slide 21 text

20 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Origin Shield を追加した場合 Origin への全リクエストが Origin Shield を経由するようになる n Origin Shield のキャッシュにないコンテンツへのリクエストは、同オブジェクトに対する他リクエストと 1 つにまとめられる Origin Shield による Origin 負荷軽減 Origin Shield まで到達すると…… 同⼀コンテンツに関するリクエストは⼀つに集約されて Origin へ送られる → ⼤量のリクエスト時も Origin の負荷を⼤きく軽減可能!!!

Slide 22

Slide 22 text

21 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 複数 CDN を併⽤する構成の場合

Slide 23

Slide 23 text

22 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 複数 CDN を併⽤する構成の場合 他 CDN を CloudFront の前段に配置 & Origin Shield 有効化

Slide 24

Slide 24 text

23 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 複数 CDN を併⽤する構成の場合 他 CDN を CloudFront の前段に配置 & Origin Shield 有効化 → 全 CDN から Origin へのリクエストを統合 (= 軽減) 可能!!!

Slide 25

Slide 25 text

24 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 Origin への回線速度に制約がある場合

Slide 26

Slide 26 text

25 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 Origin への回線速度に制約がある場合 → Origin Shield によるリクエスト統合で帯域消費を抑えられる!!!

Slide 27

Slide 27 text

26 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 他にも Origin Shield で負荷軽減が期待できるケースは様々 Origin Shield による Origin 負荷軽減 Origin への回線速度に制約がある場合 → Origin Shield によるリクエスト統合で帯域消費を抑えられる!!! キャッシュレイヤとして利⽤できるだけでなく リクエスト統合で Origin 負荷を下げられるのが Origin Shield のメリット

Slide 28

Slide 28 text

27 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~

Slide 29

Slide 29 text

28 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ パッケージサイズ 1MB 以下 / メモリ 128MB 以下/ 5~30 秒のスクリプトが実⾏可能

Slide 30

Slide 30 text

29 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ パッケージサイズ 10KB 以下 / メモリ 2MB 以下 / ミリ秒未満の軽量スクリプトが実⾏可能

Slide 31

Slide 31 text

30 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ パッケージサイズ 10KB 以下 / メモリ 2MB 以下 / ミリ秒未満の軽量スクリプトが実⾏可能 ※ Lambda@Edge と⽐較して制約は厳しいが、低コスト & デプロイ等の取り回しは⾼速

Slide 32

Slide 32 text

31 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ Viewer request / response (Viewer – Edge 間の通信) をトリガーとするケース

Slide 33

Slide 33 text

32 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ Viewer request / response (Viewer – Edge 間の通信) をトリガーとするケース → Lambda@Edge と CF2 を実⾏可能

Slide 34

Slide 34 text

33 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ Origin request / response (Edge – Origin 間の通信) をトリガーとするケース

Slide 35

Slide 35 text

34 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront では リクエスト / レスポンスの種別に応じて Lambda@Edge / CF2 のそれぞれをトリガー可能 n 各関数の制約事項から、処理内容や実⾏時間などで使い分ける必要がある Edge 関数による Origin 負荷軽減 ~ Edge 関数概要 ~ Origin request / response (Edge – Origin 間の通信) をトリガーとするケース → Lambda@Edge のみ実⾏可能

Slide 36

Slide 36 text

35 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数のユースケースとしてよく挙がるもの n Viewer からのリクエストの宛先を書き換えて他ページ (e.g. Sorry サーバ) へリダイレクトさせる機能 Edge 関数による Origin 負荷軽減 ~ リダイレクト ~

Slide 37

Slide 37 text

36 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数のユースケースとしてよく挙がるもの n Viewer からのリクエストの宛先を書き換えて他ページ (e.g. Sorry サーバ) へリダイレクトさせる機能 Edge 関数による Origin 負荷軽減 ~ リダイレクト ~ Edge 関数で S3 等へ⽤意した Sorry サーバへリダイレクト → Origin サーバの機能としてページを持っておく必要がなく、キャッシュも可能

Slide 38

Slide 38 text

37 Copyright(C) NRI Netcom, Ltd. All rights reserved. n 新しいサービス / 商品発表等のイベントでは Viewer からの新規コンテンツに対するリクエストが急増するケースがある n リクエスト待ちのための待機室を⽤意してリクエストをリダイレクトすることで Origin への流量制御が可能 → Visitor Prioritization Edge 関数による Origin 負荷軽減 ~ リダイレクト +@ ~ Sorry ページのケースと同様の構成で、待機室⽤サーバを⽤意することで実現可能

Slide 39

Slide 39 text

38 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数で Web フレームワーク⽤ライブラリを利⽤して Edge に Web サーバ / ホスティング機能を持たせる構成 n Edge での処理でレスポンスが返されるため Origin へ流れる前にリクエスト処理が完了する → Originless Edge 関数による Origin 負荷軽減 ~ Originless ~ https://qiita.com/watany/items/b86c2304832126de76e0

Slide 40

Slide 40 text

39 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数で Web フレームワーク⽤ライブラリを利⽤して Edge に Web サーバ / ホスティング機能を持たせる構成 n Edge での処理でレスポンスが返されるため Origin へ流れる前にリクエスト処理が完了する → Originless Edge 関数による Origin 負荷軽減 ~ Originless ~ Originless → Japan AWS Top Engineer の⽅の記事にて紹介されていた概念 https://qiita.com/watany/items/b86c2304832126de76e0

Slide 41

Slide 41 text

40 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数で Web フレームワーク⽤ライブラリを利⽤して Edge に Web サーバ / ホスティング機能を持たせる構成 n Edge での処理でレスポンスが返されるため Origin へ流れる前にリクエスト処理が完了する → Originless Edge 関数による Origin 負荷軽減 ~ Originless ~ Edge で実⾏できる = より⾼速なレスポンスが実現可能、というメリットが存在 Edge 関数での実⾏となるため、その制約は考慮すべき https://qiita.com/watany/items/b86c2304832126de76e0

Slide 42

Slide 42 text

41 Copyright(C) NRI Netcom, Ltd. All rights reserved. n Edge 関数で Web フレームワーク⽤ライブラリを利⽤して Edge に Web サーバ / ホスティング機能を持たせる構成 n Edge での処理でレスポンスが返されるため Origin へ流れる前にリクエスト処理が完了する → Originless Edge 関数による Origin 負荷軽減 ~ Originless ~ 例えば Lambda@Edge のスロットリング対策に CF2 を組み合わせることも (おまけ程度の⼀例です)

Slide 43

Slide 43 text

42 Copyright(C) NRI Netcom, Ltd. All rights reserved. n CloudFront の Edge では Origin Shield や Edge 関数等のオプション機能が利⽤可能 n Origin Shield を有効化することでキャッシュレイヤ追加だけでなくリクエスト統合も可能 → Origin 負荷を軽減!!! n Edge 関数 (Lambda@Edge / CloudFront Functions) による Edge 上での軽量処理が実⾏可能 n Edge 関数でのリダイレクト / Visitor Prioritization や Web ホスティングによって Originless な設計も可能!!! おわりに

Slide 44

Slide 44 text

No content