なに?
今年の4/28にでた新機能
https://aws.amazon.com/jp/blogs/news/reduce-your-operational-overhead-today-with-amazon-cloudfront-saas-manager/
ざっくり数千単位のテナント(ドメイン)を単一のインフラで管理するために、CloudFrontの機能を拡張したもののようです。
shopifyみたいな、顧客ごとにホストするサイトがあって、独自のドメインがあって、それが数千単位であってみたいなSaaSをターゲットにしているようです。
管理コストがかなり削減できるみたいです。
SaaS をターゲットにしていますが、ドメインが複数ある環境なら検討する価値のある便利な機能なので紹介します。
SaaS Manager とは
Multi-tenant Distribution と、それに紐づくテナント(ドメイン)で構成されます。
Connection Group はあまり大事じゃないですがややこしいので、興味があったら以下のブログを参考にしてください。
https://qiita.com/3yuu3/items/6ca1ea91bd8f1116b53b
Multi-tenant Distribution の設定がテンプレートとして、ドメインを定義する各テナントに引き継がれます。
そしてテナントでは、以下設定をテンプレートから上書きできます。
- 証明書
- WAF
- キャッシュ無効化パス
- オリジン
※オリジンのタイプ(ALBかS3かなど)は基本変更できません。やりようはありますが実用的ではないです。詳細は以下のブログで検証しています。
https://qiita.com/3yuu3/items/91f941289d34e288a930
つまり、重複する設定を一箇所で管理し、違うとこだけ上書きする形で使えます!!
これは別に、SaaS に限らず、ドメインが何個かある環境なら割と使えると思いませんか?
さらに、運用代行のような業態の場合、ディストリビューションごとに、月額いくらというような値付けをしているかと思います。
そのため、「ドメインが違うだけで後同じ設定なのにディストリビューション変えなくちゃいけないけど、その分月額費用かかるのか、、、」などあり提案しづらい場面もあったと思います。
SaaS Manager を使えば、ディストリビューションは1つで済むので、コストを抑えた提案ができそうです!
使ってみる
テンプレートディストリビューション作成
ディストリビューション作成画面で、Multi-tenant architectureというのが選べるようになっています。これです。

ここからがテンプレートの設定です。
↓以下オリジンの設定で、普通のCloudFront と同様に設定ができます。
ここで指定したものがテナントに引き継がれます。

ここでパラメータというものが使えます。
{{}}で囲った部分がテナント側で上書き可能になります。
図のように、テナントごとに違うオリジン、違うパスを設定できます。

WAFも設定可能で、テナントで上書きできます。
カスタムヘッダーやオリジンプロトコルポリシーはテナントごとにカスタマイズできません。
そのほか、上書きができない設定としてビヘイビア、ログ設定、カスタムエラーレスポンスなどがあります。
テナント作成
作成したテンプレートディストリビューションから「ディストリビューションテナントを作成」をクリックします。

証明書を指定します。
指定しなければ、デフォルトが適用されます。
ここで証明書がないドメインを登録すると自動でACMの発行とHTTP検証を行なってくれます。(すごい!)
更新も自動で行われるため、発行から管理までの手間がかなり削減されます。
詳細は以下のブログで検証しています。
https://qiita.com/3yuu3/items/939f8295913dda97453d

次に、テンプレートで設定したパラメータを指定します。
以下のようにオリジンALBのドメイン名を指定できます。

これで完成です。
そのほか良い点
ドメインごとのキャッシュクリア
FQDNに対してキャッシュクリアをしたい場合があると思います。
従来であれば、パスは指定できてもFQDNは指定できなかったため、ディストリビューションを分けるしかありませんでした。
SaaS Manager は、テナントにarnが割り振られているため、単一のディストリビューションでFQDNごとにキャッシュクリアが可能です!
詳細は以下ブログで検証しています。
https://iret.media/157184
惜しい点
- Lambda@Edge をテナントごとに変えられるといいのに
- そもそも、リダイレクトを標準機能でサポートしてほしい
- 名前で損してる。ドメインが複数ある環境ウェブサイトだったら一旦検討していい。
- 全部の設定パラメータでテナントごとに変えられたらいいのに
- Terraform は未対応です(2025/10/20時点)
さいごに
ドキュメントを読む感じ、SaaS事業者をターゲットとして「SaaS顧客ごとのCDN・証明書運用」を統一化・自動化することによる管理コストの削減がAWS的訴求ポイントなのかなと思いました。
しかし、設定をテンプレート化し、証明書やオリジンをカスタマイズできるというのは、ドメインが複数ある環境であればかなり刺さるケースが多いと思います。
ぜひ CloudFront SaaS Manager を検討してみてください。
参考
AWS公式ブログ
https://aws.amazon.com/jp/blogs/news/reduce-your-operational-overhead-today-with-amazon-cloudfront-saas-manager/
製品ページ
https://aws.amazon.com/jp/cloudfront/features/saas-manager/
公式ドキュメント
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html
CLIリファレンス
https://docs.aws.amazon.com/cli/latest/reference/cloudfront/#cli-aws-cloudfront


