コード管理しているとハマりそうなのでメモ。
CannotUpdateEntityWhileInUse
- Terraform で作成した VPC Origin を付け替えようとした際に発生したエラー
operation error CloudFront: UpdateVpcOrigin, https response error StatusCode: 409, CannotUpdateEntityWhileInUse: The specified VPC origin is currently associated with one or more distributions. Please disassociate the VPC origin from all distributions before updating or deleting.
エラーメッセージ通りですが、CloudFront Distribution に関連付けられている状態の VPC Origin 設定は変更できません。
直接の更新は行えないため、新たにVPC Origin を作成して切り替える必要があります。
公式ドキュメントの “VPC オリジンを更新する” に更新手順があります。
更新する VPC オリジンを選択し、[削除] を選択します。これにより、VPC オリジンとディストリビューションの関連付けが解除されます。ステップ 2~7 を繰り返して、VPC オリジンと他のディストリビューションとの関連付けを解除します。
VPC Origin リソースは Origin リソースとセットで管理すると考えるのが良さそうです。
VPC Origin とは
公式ブログとドキュメント
- Amazon CloudFront VPC オリジンの紹介: アプリケーションのセキュリティ強化と運用の合理化 | Amazon Web Services ブログ
- AWS オリジンへのアクセスを制限する - Amazon CloudFront
利点
- Origin への直接アクセスを制限できる
- ALBやPublicIPの料金削減が行える
- VPC Origin リソースに料金は掛からない
注意点
既に様々な利用パターンの記事が公開されており、参考にさせていただきました。ありがとうございます。
- Amazon CloudFront VPC オリジンの魅力と WAF バイパスからの脱却 - カミナシ エンジニアブログ
- CloudFrontでEC2にドメインをつける (VPCオリジン)
- Cloudfront VPC オリジン背後のprivate ALBにはHTTPで接続しても問題ない - Buri Memo:
- 【やってみた】Amazon CloudFrontのVPCオリジンを活用して、パブリックIPを持たないAmazon EC2を外部公開してみる | NHN テコラス Tech Blog | AWS、Google Cloudなどのインフラ技術ブログ
- [アップデート]CloudFront VPC origins とは #AWS - Qiita