Former2とは
最初からCloudFormationを使って環境構築を行っていればいいのですが、手組みで行ったPoC環境や既存の環境が存在していた場合、CloudFormationのテンプレートを作るのはなかなか面倒くさかったります。こんなときにサクッと構成をエクスポートできたらなと思いますよね。はい、というわけでFormer2の出番です。
Former2でエクスポート可能なテンプレート形式は以下のとおりです。
- CloudFormation
- Terraform
- CDK
- CDK(Terraform)
- Pulumi
- Diagram
- Raw Output(Debug)
今流行りのCDKがサポートされているのは非常にアツイですね。
設定方法
former2のサイトにアクセスしてサービスとして利用することも可能ですが、外部のサービスから社内環境にアクセスしてデータを引き抜かれるのは何かと心配なものです。そこで、今回は対象AWSアカウントのVPC内にEC2を立てて、そこにFormer2のdockerを起動する方法について記載します。
-
EC2を作成する。
- SecurityGroupを作成するところまでは画面通り。
- SecurityGroupで許可するSSHはアクセス元をに絞っておくこと。
- アクセスキーは新規につくればOK。既存のキーペアを持っているならそちらでも。
-
EC2にログインする。
- Teratermを用意。設定→プロキシを以下に設定しして保存しておく。
- Type HTTPを選択
- Hostname プロキシのURLを入力
- Portnumber 8080
- Teratermを用意。設定→プロキシを以下に設定しして保存しておく。
-
EC2にログインする際は、Teratermのホスト名にEC2のパブリックDNS名をコピペして利用する。
- ユーザ名:ec2-user
- RSA/DSA/ECDSA/ED25519鍵を使う → 秘密鍵にEC2を作成したときのキーペアを選択
(補足)Teratermが面倒であれば CLoudShellでもOK)
CloudShellのグローバルIPを調べてセキュリティグループに設定する。
curl https://ifconfig.io
ダウンロードしたキーペア(pemファイル)をCloudShellにアップロードして、pemファイルのパーミッションを変更する。
chmod 400 hogehoge.pem
ssh -i hogehoe.pem ec2-user@ec2-xxxxxx.ap-northeast-1.compute.amazonaws.com
Are you sure you want to continue connecting (yes/no)? yesを入力すると、EC2にログイン成功。
- EC2にGitをインストールする。
$ sudo yum update
$ sudo yum install git
$ git version
- EC2にDockerをインストールする。
$ sudo yum -y install docker
$ sudo systemctl start docker
$ sudo systemctl enable docker
- EC2に docker-compose をインストールする。
バージョンは以下で確認する。最新でいいはず。
https://github.com/docker/compose/releases
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
- former2を入手する
$ git clone https://github.com/iann0036/former2.git
- docker-composeを実行する
$ cd former2
$ sudo /usr/local/bin/docker-compose up -d
動作確認
$ sudo docker ps ※実行中のコンテナ
$ sudo docker images ※存在しているコンテナ
-
former2はデフォルトで127.0.0.1:80で起動するのでSSH転送する。
# ポートとか変えたいなら、docker-compose.ymlの中身を変更- TeratermでSSH転送の設定を行う。設定→SSH転送、追加を選択。
- ローカルのポート:適当。自分のPCであいているポートを指定。
- リモート側のポートは、デフォルトだと80を指定
-
自分のブラウザから「localhost:ローカルのポート」 でアクセスすればEC2上のformer2へのアクセスが可能。
-
ReadOnlyAccessのIAMユーザーを新規に作成してセキュリティ認証情報を利用
- IAM ユーザ(former2)を作成。
- ポリシーに、ReadOnlyAccessをアタッチ。
- IAMユーザのアクセスキーとシークレットアクセスキーを入力。