※※※すでにS3バケットがCloudFormationで管理されている場合スタックの削除時やってみるテンプレート(抜粋)事前準備AWSコンソールからインポートを実施します。S3#AWS梶原大使2021.02.16この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。AWS事業本部の梶原@福岡オフィスです。S3バケットのストレージクラス分析を設定する機会がありましたので、CloudFormationでの設定実施に寄せてみました。CLIでもいいですが、有効、無効の状態管理できなくなる、有効にしたバケットを大量のバケットの中から見つけるのももちょっとやだなといったモチベーションでCloudFormationでの管理に寄せてます。ストレージクラス分析自体が最初の表示が48時間後、正確な情報表示には30日前後かかるとのことで、実行管理にも役立ることもできるかと思ってます。ストレージクラス分析以外にも、CloudFormationのインポート機能を使うとこで、0からの作成でなくて、ちょっとした設定にも活用できるかと思います。いうことで、サクサク行きます。分析のストレージクラス分析を使用することにより、ストレージアクセスパターンを分析し、適切なデータをいつ適切なストレージクラスに移行すべきかを判断できます大体1か月くらいかな、えいや!となりがちな、ライフサイクル設定の指標となる情報を提示してくれます。いう場合には、コストを最適化する際に役に立つかと思います。スタックへの既存リソースのインポートすでに、あるリソースをCloudFormationのスタックに取り込みことができ、スタックの管理下に置くことができます。既存のS3バケットを一度、CloudFormationの配下におき、そのあとストレージクラス分析を有効にします。既存のスタックに対して、変更を加えてください。今回、インポートを行っているため、DeletionPolicyがRetain(スタック削除時に保持する)となっています。して、スタックを更新し、解析設定を削除したた後に、スタック削除を実施してください。やってみるテンプレート(抜粋)実際のテンプレートは最後に記載しています。今回は、余計な設定をつけると既存のリソースの設定に影響がでるため、解析設定の部分だけの最低限の設定を記述したテンプレートを使用します。IF条件を使用して、インポート時には無効にしています。無ければそのバケットはスタックと紐づいていません。AWSコンソールからインポートを実施します。リソースを識別インポートするリソースを指定します準備しておいたS3バケット名を入力しますこれで、テンプレートのS3定義と既存のリソースを紐づけますスタックの詳細を指定スタックの名前を入力しますEnableAnalyticsConfigurationをNoを選択してくださいYesの場合、現在のバケットの解析設定とズレてしまい、正常に状態の紐づけが行われません。インポートの最終確認[リソースをインポート]を選択して、インポートを実施しますインポートが正常に行えますとスタックのステータスがIMPORT_COMPLETEになるかと思います。解析対象をTagで絞り込む場合のValueを指定します変更セットのプレビューアクションがModify置換がFalseであることを確認し、[スタックの更新]を選択しますスタックが更新され、ストレージ解析が設定されます。>に遷移します設定直後はデータがなにもないですが、48時間後にデータ表示されますので、解析データを参考にライフサイクル設定等を実施しますまとめS3バケットの解析設定はコンソールだと、S3バケットのコンソールの深いところなので、CloudFormationでやってみました。1つのバケットであれば、特にコンソールでやってしまって問題ないとは思いますが、複数のバケットを実施する場合につまりそうなので、便利に使いたいと思います。テンプレート小ネタ集CloudFormationでスタック毎に一意な値を設定したい場合UniqueIdはAWSが提供しているサンプルテンプレートなどでよく使われています。TagFilterValueCloudFormationでIF条件の中にリストを書きたい場合の書き方-ハイフンがならぶのが、どうしても慣れないですね。知らないとまずわかんないです。