質問: cloudformation で作成したリソースは、作成された後は、 cloudformation とは無関係に操作することができます。 なにかしら急ぎの対応が必要だったので、その場に限り(後で戻す前提で)一時的にリソースの状態を変更することは、運用していく中で発生しうるかと思っています。 そのように行ったリソースに対する変更、ないしそれを元に戻す操作を行った後に、対象のリソースが cloudformation template の状態に戻っているかどうか確認したいな、と思いました。 ### 質問 * aws cloudformation の stack に対して、そのリソースたちが stack の template から乖離しているかどうかの検知を行うための方法/ツールなどはありますでしょうか。
回答: そのものズバリのツールなどは確認できませんが、アイデアとしては構成可視化ツールを使って CloudFormation のデザイナーと比較するという方法が考えられるかと思います。 * Cloudcraft – Draw AWS diagrams * duo-labs/cloudmapper: CloudMapper helps you analyze your Amazon Web Services (AWS) environments. * AWS CloudFormation デザイナー とは - AWS CloudFormation 他には API でスタックのリソース一覧を取得して差分を確認するという方法もあるかもしれません。 * describe-stack-resources — AWS CLI 1.15.59 Command Reference 補足ですが CloudFormation はベストプラクティスにもあるように手動変更をオススメしないようです。 > > スタックを起動した後、AWS CloudFormation コンソール、API、または AWS CLI を使用して、スタック内のリソースを更新します。スタックのリソースを AWS CloudFormation 以外の方法で変更しないでください。変更するとスタックのテンプレートとスタックリソースの現在の状態の間で不一致が起こり、スタックの更新または削除でエラーが発生する場合があります。 > > > 実質的な dry-run である変更セットもありますし、個人的にはスタックの更新/削除エラーの可能性を考えると小さな変更でもテンプレート経由の方がリスクが低くていいのかなと考えています。 * 変更セットの作成 - AWS CloudFormation