はじめに
仕事で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を使って運用している方は、ぜひ利用してみてください。