AWS Cloud Formation
AWS CloudFormationテンプレートによるインフラ構築(基本概念)
AWS CloudFormation テンプレートの基礎
CloudFormationで認証情報を扱うベストプラクティス
ユビキタス
プロビジョニング(provisioning)
必要なものを準備すること
そこから転じてIT分野では、システムやサービスの需要に応じて、サーバーやネットワーク などのITインフラ設備を調達・設定することを「プロビジョニング」と呼んでいます。
AWS CloudFormationの概念
AWS CloudFormationを使用する際には、テンプレートとスタックの作業を行います。 テンプレートは、AWSリソースとそのプロパティを記述するために作成します。 スタックを作成するたびに、CloudFormationはテンプレートに記述されているリソースをプロビジョニングします。
フォーマット
CloudFormationテンプレートはJSONまたはYAML形式のテキストファイル。
change setが失敗するとき
AWS CloudFormationスタックの更新で、DynamoDBテーブル名や他の一意であるべきリソース名を変更する際には注意が必要です。一度作成したリソースは、名前が固定される場合が多く、その名前を変 更することはできません。
論理IDを変更した場合、CloudFormationは新しいリソースを作成しようとしますが、既存のリソース(このケースで言うと、DynamoDBテーブル)があると、その名前のリソースがすでに存在するためにエラーが発生します。
一般的な解決策は以下のとおりです:
-
リソース削除: 既存のリソース(このケースではDynamoDBテーブル)を手動で削除してから再デプロイします。ただし、これはテーブルのデータもすべて削除するので注意が必要です。
-
名前変更: CloudFormationテンプレートでリソースの名前を変更し、新しい名前でリソースを作成します。ただし、このアプローチでは、新旧のリソースが並存する形になります。
-
スタックの削除と再作成: もっとも単純だが危険な方法です。すべてのリソースを含むスタックを削除して、新しい論理IDでスタックを再作成します。これもすべてのデータが失われる可能性があります。
このエラーは、開発環境で頻繁に発生することがあり、リソースの命名規則や管理方法をしっかりと計画することが重要です。注意して操作してください。