AWSで作るIaaS 2000 overのCloudFrontを 管理するための試行錯誤

>100 Views

October 11, 25

スライド概要

JAWS Festa 2025での登壇資料です

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

JAWS Festa 2025 in ⾦沢 AWSで作るIaaS 2000 overのCloudFrontを 管理するための試⾏錯誤 DigitalCube 岡本秀⾼ 2025. 10. 11 © DigitalCube Co. Ltd.

2.

はじめに 今⽇知ってほしいこと ● SaaS 開発における技術選択の難しさ ● IaC化を後回しにすると、何が起きるか ● 中⻑期的改善に向けたコミュニティの活かし⽅ © DigitalCube Co. Ltd. 22

3.

⾃⼰紹介 ● 地元企業を2社ほど転々 ● DigitalCube - アプリケーション開発者 ● Stripe - Developer Advocate ● DigitalCube - 事業戦略室 ( BizDev ) AWS Samurai 2017 / Alexa Champions / AWS Community Builders / JP_Stripes Connect 2019 / WordCamp Kansai 元実⾏委員⻑ Okamoto Hidetaka 岡本 秀⾼ © DigitalCube Co. Ltd. 3

4.

Shifter: WordPressを「静的サイト」に変える SaaS https://ja.getshifter.io © DigitalCube Co. Ltd.

5.

Shifterにおけるコンテンツの配信⽅法 WordPressサイトを、静的サイトとして配信する © DigitalCube Co. Ltd. 55

6.

マルチテナントIaaSを AWSでどう構成するか? © DigitalCube Co. Ltd.

7.

技術的な背景 2017年には存在しなかったもの ● SaaS Builder Toolkit: 2024年 ● Amazon EventBridge: 2019年 ● AWS CDK: 2018年 ● AWS Amplify: 2017年下半期にgen1 © DigitalCube Co. Ltd. 77

8.

結論: 頑張って作る CloudFrontは 利用開始までに 20分程度かかる → 事前に在庫を作って解決 © DigitalCube Co. Ltd. 8

9.

そして2025年 © DigitalCube Co. Ltd.

10.

© DigitalCube Co. Ltd.

11.

ユーザー数‧サイト数増加に伴う運⽤トラブル この数のCloudFront、 どうやって運⽤するんの? ● 構成をコードで管理(IaC)していない ● 作成スクリプトを変更しても、 既存のリソースは変わらない ● 3000件のCloudFrontを 更新するバッチを書いたことは? © DigitalCube Co. Ltd. 1111

12.

気合いの アップデート スクリプト ・Configを取得し、 差分を更新して Update ・Tagベースで更新対象を特定 ・AWS APIのスロットリング回避で 逐次実行 → つまり実行にすごく時間がかかる © DigitalCube Co. Ltd. 12

13.

負荷軽減策: CloudFront Functions ・2021年ごろ登場 ・Lambda@edgeはUpdateDistribution ・こっちはfunctions更新で一括反映 ・全サイト適用系と 軽量なカスタマイズを CFFに集約 © DigitalCube Co. Ltd. 13

14.

IaaSでのCDNカスタマイズ要件の例 エッジ関数でやっていること(⼀例) ● S3へのリクエストパス調整 ● Basic認証( functions のつけ外しで対応) ● サイトに対する表⽰制限 ○ 料⾦の未払い / プラン利⽤枠の超過 © DigitalCube Co. Ltd. 1414

15.

今、同じような IaaSを作るならどうするか © DigitalCube Co. Ltd.

16.

IaaSでのCDNカスタマイズ要件の例 静的サイトホスティングを今作るなら ● CloudFrontをマルチテナントで構築 ○ キャッシュポリシーやエッジ関数を集約管理 ○ CDNはテナントとして管理する ● 個別カスタマイズはCloudFront KV Storeを利⽤ © DigitalCube Co. Ltd. 1616

17.

IaaSでのCDNカスタマイズ要件の例 CloudFront マルチテナントDistribution https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html © DigitalCube Co. Ltd. 1717

18.

IaaSでのCDNカスタマイズ要件の例 マルチテナント化による設定のTiering ● プランなどによる設定の差別化 ○ WAF / キャッシュ設定 / エッジでの最適化 ● Tierごとにディストリビューションを作成 ○ プラン変更時、テナントを移動させる © DigitalCube Co. Ltd. 1818

19.

Tieringの 詳細はZennへ https://zenn.dev/digitalcube/articles/c505ebea9471d7 © DigitalCube Co. Ltd. 19

20.

IaaSでのCDNカスタマイズ要件の例 CloudFront KeyValue Store https://github.com/aws-samples/amazon-cloudfront-functions/blob/main/kvs-key-value-pairs/kvs-key-value-pairs.js © DigitalCube Co. Ltd. 2020

21.

IaaSでのCDNカスタマイズ要件の例 CloudFront Functions X KVSによるカスタマイズ ● Basic認証や閲覧制限などの設定をKVSへ保存 ● CF FunctionsはKVSの情報を元にリクエストを処理 ● コントロール層はユーザー操作やイベントに応じて KVS APIを利⽤して設定を更新する © DigitalCube Co. Ltd. 2121

22.

IaaSでのCDNカスタマイズ要件の例 SBTを利⽤して、アプリと制御層を分離する? https://aws.amazon.com/jp/builders-flash/202410/multi-tenant-saas-pattern/ © DigitalCube Co. Ltd. 2222

23.

IaaSでのCDNカスタマイズ要件の例 まとめ ● 最近のアップデートにより、 AWSで IaaS / SaaS はかなり作りやすくなった キーワード: CloudFront マルチテナント / KVS / SBT ● 情報洪⽔に溺れないために、JAWS-UGを活⽤しよう © DigitalCube Co. Ltd. 2323