はじめに
仕事でAWSにWordPressのサイトを立ち上げる作業を行ったのですが、手作業で作ったということもあり、コード化されていなかったので、せっかくなので「AWS Black Belt Online Seminar AWS CloudFormation deep dive」でも紹介されていたFormer2を使ってコード化してみました。
-【前】CloudFormationをゼロから勉強する。(その8:スタックのネスト)
Former2とは
AWSの自アカウントにあるリソースを検索し、選択したリソースをCloudFormationやTerraformなどの形式でコード化してくれるブラウザベースのサービスです。
Former2はサードパーティー製のツールとなり、AWS公式としてはCloudFormerが同様のコンセプトのツールですが、ここの記事を見ると「CloudFormerは今後アップデートされないので、出来がいいFormer2を使ってね」だそうです。
中の人がそんなこと言っちゃうんですね(笑)
前準備
Former2を使うだけなら自分のアカウントでもできますが、使用するためにはFormer2のサイトにアクセスキーとシークレットアクセスキーを渡す必要があります。
権限ある鍵情報を渡すのはさすがに気が引けるので、Former2用のアカウントを作成する方法で進めていきます。
Former2用アカウント作成
IAMから新規でIAMユーザを作成します。
リソース取得用に使うだけなのでマネジメントコンソールアクセスにチェックは不要です。
「既存のポリシーを直接アタッチ」を選択し、ReadOnlyAccessのみチェックを行います。
タグなどは任意で設定してcredentialsのCSVをダウンロードしたら完了です。
プラグインのインストール
Former2のWebページにアクセスし、Setup→Introductionを選択すると使用ブラウザ用のプラグインをインストールする旨の内容が表示されるため、プラグインをインストールします。
Credentials情報の入力
Setup→Credentialsを選択して、先ほど作成したFormer2ユーザのCredentials情報を入力します。
Session Token、Assumed Role ARNは空欄のままでOKです。
スキャンの実行
Parametersは今回は何も入力せずに次へ進むとSettings画面が表示されるため、画面右上のリージョンをスキャンしたいリージョンに合わせてScan Accountをクリックします。
コード化したいリソースの選択
Scan Accountを行うことで、指定のIAMアカウントでリソース情報の取得が始まります。
左ペインのCATEGORIESからリソースを選ぶとAWS上に構築されているリソースが表示されるため、コード化したいリソースを選択し、Add Selectedを選択→リソースを選択→Add Selectedを選択を繰り返します。
リソースのコード化
リソースを選択し終わったら、画面上のGenerateボタンをクリックすることで、以下の画面のようにコード化されます。
今回はOutput設定をCloudFormationとして生成したため、CloudFormationの形式で出力されましたが、Terraformなど他の出力方式にすれば、指定の出力方式で出力されます。
終わりに
実際に触ってみましたが、これは確かにAWSの中の人が勧めてしまうのもわかります。
良いと感じたところを羅列。
- 事前に準備することが少ない(取得用アカウントを作る程度)
- ログイン等必要なく、ブラウザで直感的に操作できる
- 対応リソース数が多いため、一般的な運用で困ることはなさそう
- 一度Former2用IAMアカウントを作っておけば、すぐにスキャンできるので、手動作成したリソースを後からコード化するのも簡単
- リソース等も
!Refや!GetAtt等の組み込み関数で指定されるので、使いまわししやすい
「AWS Black Belt Online Seminar AWS CloudFormation deep dive」でも紹介されていた通り、既存リソースとの紐付けなどは手動で行う必要がありますが、使ったことが無いサービスで、先にGUIで作ったけどコードとして残したい場合に便利です!
AWSを使って運用している方は、ぜひ利用してみてください。






