はじめに
既存の AWS リソースをを AWS CloudFormation(以降Cfn)テンプレート化する際に Former2 を使ってみました。
Former2 は Web アプリとして公開されていて、ブラウザ経由で利用することも可能ですが、利用には Cfn テンプレート化する環境にアクセスするための AWS のクレデンシャルを必要とします。
Read のみの権限であっても外部サイトにクレデンシャルを保存することに抵抗があるので、今回は Former2 を Cloud9 にホストしたいと思います。
対象者
この記事は下記のような人を対象にしています。
- 既存の AWS 環境を Cfn テンプレート化したい人
- AWS のクレデンシャルを外部に保存したくない人
手順
Docker Compose のインストール
以降の手順で、Docker Compose を利用するため、公式ドキュメントを参考に Docker Compose をインストールします。Docker Compose のv2はインストール方法がv1とやや異なるようです。今回はv2をインストールします。
下記コマンドを実行します。
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
$ mkdir -p $DOCKER_CONFIG/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
ダウンロードが完了したら、バイナリに対して、実行権限を付与します。
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
インストールできていることを確認します。
$ docker compose version
Docker Compose version v2.2.3
リポジトリのクローン
Former2 のリポジトリは公開されているので、クローンします。
$ git clone https://github.com/iann0036/former2.git
ポートフォワーディングの設定変更
今回使用する Cloud9 では使用できるポートが8080、8081、8082に限定されています。(AWS Cloud9統合開発環境 (IDE)で実行中のアプリケーションをプレビュー – AWS Cloud9)そのためクローンしたフォルダの最上位階層に存在する docker-compose.yml を編集し、ポートフォワーディングの設定を変更します。
docker-compose.yml の設定に関しては公式ドキュメント(Compose file version 3 reference | Docker Documentation)を参照してください。
version: '3'
services:
former2:
image: nginx:1.17.8-alpine
ports:
- "127.0.0.1:8080:80"
volumes:
- .:/usr/share/nginx/html
Former2 を起動
Former2 を起動します。
$ cd former2
$ docker compose up -d
[+] Running 2/2
⠿ Network former2_default Created
⠿ Container former2-former2-1 Started
Preview Running Applicationから、Former2 が起動できていることが確認できました。
おわりに
今回は Former2 を Cloud9 にホストしました。Cloud9 にホストすることで AWS のクレデンシャルを外部に保存することなく Former2 を使用できますので、セキュリティを意識する場合はこの方法を取るのが良いと思います。この記事がどなたかの参考になれば幸いです。
コメント