動機 SPAでアプリケーション作ってS3+CloudFrontで公開することってよくありますよね? どうせならSPA側のリソースとCloudFormationのスタックを別々に管理するのではなく、例えばスタックをdeployしたらSPA側(つまりS3の中身)も同時に更新したいものです。 今までそれをやろうと思うと例えば... SPA側の最新のビルドを(CodePipelineなどを使って)どこかのバケット(ビルドバケットと呼ぶ)に常に置いておく CloudFormation側にCustom Resourceを定義して、ビルドバケットからデプロイ用のバケットにsyncする しかもLambda側からは普通にaws s3 syncが呼べないためawsclidriverのwrapperとか用意しなきゃいけない... ということで、面倒で仕方無いわけです。 そんなことを思いながら、先日(もう古い?)
![AWS CDKの'aws-s3-deployment'を使ってクライアントサイドも一緒にデプロイする - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/732617d8ab0030abd6d010c539d50d481cbc14bd/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QVdTJTIwQ0RLJUUzJTgxJUFFJTI3YXdzLXMzLWRlcGxveW1lbnQlMjclRTMlODIlOTIlRTQlQkQlQkYlRTMlODElQTMlRTMlODElQTYlRTMlODIlQUYlRTMlODMlQTklRTMlODIlQTQlRTMlODIlQTIlRTMlODMlQjMlRTMlODMlODglRTMlODIlQjUlRTMlODIlQTQlRTMlODMlODklRTMlODIlODIlRTQlQjglODAlRTclQjclOTIlRTMlODElQUIlRTMlODMlODclRTMlODMlOTclRTMlODMlQUQlRTMlODIlQTQlRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWY3MzQ1Mjc2YjcyMTU0ZDEzODY3N2ZkYzY2MzUzODQy%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0ZXRzdXlhLXphbWEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWFjZTRiNWRhM2M5NTg0Y2NjNDdmMmFjYWRiMTk1ZjVm%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Db08c4b757e256ee89b095612743e8f2b)