AWS CloudFormationのクォータ制限(本文サイズ,リソース数,パラメータ数)が拡張されました

1つの CloudFormation テンプレートで、より多くのAWSリソースの管理が可能となりました。
2020.10.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS チームのすずきです。

AWS CloudFormation のクォータが拡張されるアップデートがあり、 1つの CloudFormation テンプレートでより多くのAWSリソースの管理が可能となりましたので、紹介させて頂きます。

AWS CloudFormation now supports increased limits on five service quotas

拡張されたクォータ

下記5項目について、1つのCloudFormationテンプレートごとの上限が拡張されました。

クォータ項目 英文表記
テンプレート本文のサイズ(Amazon S3利用時) Template body size in an Amazon S3 object 1MB 450KB
リソース数 Resources 500 200
パラメータ数 Parameters 200 60
出力数 Outputs 200 60
マッピング数 Mappings 200 60

他のクォータ項目については、公式ドキュメントをご確認ください。

AWS CloudFormation quotas

まとめ

CloudFormation のテンプレートに Lambda 関数のコードや、EC2用の UserData 設定などを埋め込む場合、 テンプレートのサイズ上限が問題となる事がありましたが、2倍強に拡張された事で制限に抵触しにくくなりました。

また、パラメータ、出力数が拡張された事で、スタック間のリソース参照を利用した詳細な IAM やポリシー設定なども実現しやすくなると思われます。

CloudFormation のベストプラクティスとして小規模なテンプレート利用が推奨されていますが、 一つのテンプレートで完結する方が管理上望ましい場合もあります。ユースケースに応じた適切な利用をお試しください。

AWS CloudFormation のよくある質問

Q: スタック内で作成できるリソースの数に制限はありますか? ベストプラクティスとして、小規模なテンプレートとスタックを作成し、複数のスタック間でアプリケーションをモジュール化することをお勧めします。大規模なグループよりも小規模なグループの方が依存関係が複雑でないため、このようにすることで、リソース変更に伴う影響範囲を最小限に抑えることができ、複数のリソース間の依存関係に関する問題をよりすばやく解決できます。