問題
新旧の個人用サイトを並行で動かそうとしたところ、CloudFrontの作成でエラー発生(CNAMEAlreadyExists)。
module.personal_website_frontend.aws_cloudfront_distribution.front_cdn: Creating...
╷
│ Error: error creating CloudFront Distribution: CNAMEAlreadyExists: One or more of the CNAMEs you provided are already associated with a different resource.
│ status code: 409, request id: d5f61e56-8789-4443-bd73-5928d7f0f2de
│
│ with module.personal_website_frontend.aws_cloudfront_distribution.front_cdn,
│ on ..\modules\personal-website-frontend\main.tf line 45, in resource "aws_cloudfront_distribution" "front_cdn":
│ 45: resource "aws_cloudfront_distribution" "front_cdn" {
│
╵
CloudFrontは同じCNAMEを使ったDistributionを作成するのはダメな仕様らしい。
しかしそれではダウンタイムなしに切り替えができない。
解決
この辺やClassMethodさんにダウンタイムなしでの実行方法があった。
ただ、かなり複雑な作業なので、客先の本番環境で動いているサービスにこれを実行するのはかなりの慎重さがいりそう。
意外な弱点があるもの。