【AWS】CloudFormerの使い方

####＜2019.12.27 追記＞
CloudFormerと同様の機能を備える、
「**Former2**」というサービスが存在しているようです。

https://github.com/iann0036/former2
# はじめに
本記事は、2018年夏頃に試した内容になります。
現在のUIから変更されている可能性がありますので、ご了承ください。

# CloudFormerとは
既存のAWS環境のリソース情報からCloudFormationテンプレートを自動で作成してくれるツール。
現段階では正式なサービスではなくベータ版ですが、十分に使える機能のため使い方をご紹介します。

#### ＜ 作業手順 ＞
 1. 実行環境の作成
 2. 各リソースの設定
 3. テンプレートの作成
 4. スタックの削除

# ■ 1. 実行環境の作成
まずは、CloudFormerの実行環境をCloudFormationで作成するという流れになります。

① CloudFormationのページから［スタックの作成］をクリック。
![CloudFormer1.png](https://qiita-image-store.s3.amazonaws.com/0/239026/7e95dea9-673c-c0c8-81bc-0baf1d2f5626.png)

②［サンプルテンプレートの選択］でリストから「CloudFormer」を選択する。
![CloudFormer2.png](https://qiita-image-store.s3.amazonaws.com/0/239026/afbea025-9326-b01d-3c29-93587f04ef5c.png)

③「スタック名」、「ユーザ名」、「パスワード」を設定する。
（ユーザ名・パスワードはあとで使います。）
![CloudFormer3.png](https://qiita-image-store.s3.amazonaws.com/0/239026/28717b64-3b9a-1099-9caf-734f95db98e0.png)


④［次へ］で進んでいき、最後に［作成］をクリックします。

⑤ スタックが作成されるまで待ちます。
（私の場合は、5分30秒後に［CREATE_COMPLETE］となりました。）
![CloudFormer4.png](https://qiita-image-store.s3.amazonaws.com/0/239026/7989d10e-4d2c-d50e-b616-e049a2ef94e6.png)


（ちなみに、このスタックで作成されるリソースは以下の通りです）
![CloudFormer5.png](https://qiita-image-store.s3.amazonaws.com/0/239026/42cf696d-c2af-3e7c-cd49-f2314e595a7e.png)

# ■ 2. 各リソースの設定

ここからは、テンプレート化したい対象リソースを選択していきます。
ただ、CloudFormerではAWSの全てのリソースに対応している訳ではないので注意が必要です。

① 作成したスタックを選択し［出力］タブをクリックします。
　下記のようにURLの記載があるため、そちらをクリックします。
![CloudFormer2-1.png](https://qiita-image-store.s3.amazonaws.com/0/239026/61bda1ba-db99-9686-c543-eba5118b568b.png)

② 認証画面が表示されるので、（1-③で設定した）ユーザ名とパスワードを入力します。
![CloudFormer2-2.png](https://qiita-image-store.s3.amazonaws.com/0/239026/78bb3bd7-8cc3-69d6-15be-de87930f11a0.png)


③ ログイン後、CloudFormerトップ画面が表示されます。
![CloudFormer2-3.png](https://qiita-image-store.s3.amazonaws.com/0/239026/2d243be5-4653-38c2-1cfa-c2f57ec8d570.png)


④ あとは、画面に沿ってテンプレート化したいリソースを選択していきます。
### ・Intro（テンプレートの説明など）
![CloudFormer2-4.png](https://qiita-image-store.s3.amazonaws.com/0/239026/8f5e5244-f2d2-a565-00dc-450dcc30f811.png)

### ・DNC（Route53の設定）
![CloudFormer2-5.png](https://qiita-image-store.s3.amazonaws.com/0/239026/3b81cc22-6ef6-7cbd-89e9-ef82de7cf84a.png)

### ・VPC （VPCの設定）
![CloudFormer2-6.png](https://qiita-image-store.s3.amazonaws.com/0/239026/3a4795bd-5e40-1b8e-15e9-3858d025cb27.png)

### ・VPC Network（Subnet、IGW、VPNなどの設定）
![CloudFormer2-7.png](https://qiita-image-store.s3.amazonaws.com/0/239026/226be494-9b85-8f62-e56b-755d6db68e37.png)

### ・VPC Security（NetworkACL、RouteTableの設定）
![CloudFormer2-8.png](https://qiita-image-store.s3.amazonaws.com/0/239026/df782a5d-de37-b285-c11c-1c9c0c5ac170.png)

### ・Network（ELB、EIP、ENI、CloudFrontの設定）
![CloudFormer2-9.png](https://qiita-image-store.s3.amazonaws.com/0/239026/90130e0d-7547-7481-9459-b4fe2bed96b5.png)

### ・Managed Services（Auto Scaling、Elastic Beanstalk、OpsWorksの設定）
![CloudFormer2-10.png](https://qiita-image-store.s3.amazonaws.com/0/239026/df499ba2-941a-427f-cac0-ba944ea58bb6.png)

### ・Managed Config（Auto Scaling、Elastic Beanstalk、OpsWorksの詳細な設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/40268008-5821-63e8-b689-36c9b693f7dc.png)

### ・Compute（EC2 instanceなどの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/00872d67-def6-de8a-1140-1db7939cb33b.png)

### ・Storage（EBS、RDS、S3などの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/99f80f8d-792a-dd1e-7b91-261cded6d261.png)

### ・Storage Config（RDS Subnet Groupなどの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/5cc555b5-32f4-83e6-ae3c-49200ee6017c.png)

### ・App Services（SQS、SNS、Kinesisの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/55ca8a2a-a7a1-b628-c972-88c34bc8c7a8.png)

### ・Security（Security Groupなどの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/dd3e027c-ebdd-ab05-ba82-71e9028dd17d.png)

### ・Operational（CloudTrailなどの設定）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/819a0e55-2a6a-2660-dbc2-ae2ad76bde15.png)

### ・Summary（確認画面）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/68721802-9c6b-c622-32f7-5f70f1b97ae0.png)

# ■ 3.テンプレートの作成

① 確認画面の後、S3のバケットを指定します。
　「Save Template」をクリックすると、S3にテンプレートが保存されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/239026/dfcf5982-d9b6-885f-2050-c0c6dc537450.png)

# ■ 4. スタックの削除
テンプレートの作成はこれで完了になります。
無駄な課金が発生してしまうのを防ぐため、作業後はCloudFormerスタックを削除しましょう。

# 参考

・CloudFormer を使用して既存の AWS リソースから AWS CloudFormation のテンプレートを作成する
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html