LoginSignup
5
2

More than 3 years have passed since last update.

Former2をローカル環境に導入し、既存のAWS環境からCloudFormationの定義を自動生成してみる

Last updated at Posted at 2021-03-07

1. はじめに

1.1 この記事の概要

former2をローカル環境に導入し、既存のAWS環境からCloudFormationの定義を作ろうというものです。

1.2 Former2をローカルに入れる動機

既存のAWS環境からCloudFormationの定義を作りたくてツールを探し、https://former2.com/というものを見つけました。
こちらのツール、会員登録等は不要なようで、AWSのアクセスキーを設定するとAWSにアクセスしてCloudFormationの設定を作ってくれる便利なサイトでした。
ただ、、、個人的に第三者が運営するサイトにアクセスキーを設定するのを躊躇してしまい、ローカルに導入できないかと調べたところ、Githubにformer2のソースを見つけたのでローカル環境に導入するものです。

2. 本編

2-1 Former2の導入

(1)前準備Ⅰ Docker環境の準備

以下の記事を参考にDockerの実行環境を用意します。
https://qiita.com/ka2taka/items/7889e9a0e01fc0824b66

(2)前準備Ⅱ AWSのアクセスキーの取得

事前にAWSのアクセスキーを作って控えておきます。
ユーザのポリシーに「arn:aws:iam::aws:policy/ReadOnlyAccess」を与えます。

IAMにアクセスする。

https://console.aws.amazon.com/iam/

②[アクセス管理]-->[ユーザ]に移動してユーザを作る。

ユーザ名を入れる

image.png

ReadOnyAccessを選択する

image.png

Step5まで次へ次へで進む。

③アクセスキーを控える。

ユーザ作成のStep5で「アクセスキー ID」「シークレットアクセスキー」を控える。

(3)former2のダウンロード

  1. ダウンロード
    以下のGithubからダウンロードします。
    https://github.com/iann0036/former2
    ZIPでダウンロードするなら以下のURL。
    https://github.com/iann0036/former2/archive/master.zip
    コマンドで実行するなら以下。
    git clone https://github.com/iann0036/former2.git .
  2. 保存先
    手順上、以下に解凍して保存します。
    C:\work\former2

(4)docker-composeで構築

docker-compose実行
C:\work\former2>docker-compose up -d
docker-compose実行結果
Creating network "former2_default" with the default driver
Pulling former2 (nginx:1.17.8-alpine)...
1.17.8-alpine: Pulling from library/nginx
4167d3e14976: Pull complete
db94a93dfca0: Pull complete
Digest: sha256:9e81b8f9cef5a095f892183688798a5b2c368663276aa0f2be4b1cd283ace53d
Status: Downloaded newer image for nginx:1.17.8-alpine
Creating former2_former2_1 ... done

ローカル環境の80番ポートを使うようにdocker-compose.ymlファイル内に定義されています。
既に80番ポートを使ってる場合は、ポート番号を変えてから実行してください。
修正例:「127.0.0.1:80:80」--->「127.0.0.1:8080:80」
「127.0.0.1:8080」の部分がWindowsホスト上のポート番号、後半の:80がdockerコンテナ内のポート番号です。この2つがマッピングされてます。

(5)Former2にアクセス

以下のアドレスをブラウザに入力して、ローカルで起動したformer2にアクセスします。
http://127.0.0.1/
former2_1.png

(6)Former2を設定

①最初の画面にあるブラウザのプラグインを入れます。
画面は前述参照。

②右上からリージョンを選択します。
former2_1.5.png

③左メニューから「セットアップ(Setup)-->資格情報(Credentials)」を選択
④IAM認証情報を入力(アクセスキーID、シークレットアクセスキー)
former2_2_800.png

設定の保存ボタンは用意が無いようで、何かメニューを押すと自動で保持されます。
Former2の振る舞いを見ていると、資格情報(Credentials)はサーバサイドに保存されないようなので、忘れないように書き留めておいてください。

2-2. Former2の操作(EC2から設定を取得してみる)

(1) EC2の設定を読み込む操作をする。

① Compute-->EC2に移動。
② リソースを選択して「Add Select」ボタンを押す。
③ 画面上部の「Generate」ボタンを押す。
former4_mod.png

(2) 表示されたCloudFormationの定義を見てみる。

AWSTemplateFormatVersion: "2010-09-09"
Metadata:
    Generator: "former2"
Description: ""
Resources:
    EC2Instance:
        Type: "AWS::EC2::Instance"
        Properties:
            ImageId: "ami-#################"
            InstanceType: "t2.micro"
            KeyName: "#########################"
            AvailabilityZone: !Sub "${AWS::Region}a"
            Tenancy: "default"
            SubnetId: "subnet-###################"
            EbsOptimized: false
            SecurityGroupIds: 
              - "sg-#################"
            SourceDestCheck: true
            BlockDeviceMappings: 
              - 
                DeviceName: "/dev/xvda"
                Ebs: 
                    Encrypted: false
                    VolumeSize: 8
                    SnapshotId: "snap-#####################"
                    VolumeType: "gp2"
                    DeleteOnTermination: true
            Tags: 
              - 
                Key: "Name"
                Value: "bastion################"
            HibernationOptions: 
                Configured: false
            EnclaveOptions: 
                Enabled: false

後始末

dockerで作った環境を削除
C:\>cd \work\former2
C:\>docker-compose down --rmi all --volumes --remove-orphans

最後に

まとめ

1からCloudFormationの設定を作るよりは楽なのではないでしょうか?

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2