AWSの既存環境をIaC化したく、いろいろ手法を探していると、former2にたどり着きました。
former2 自体はコンテナイメージとして提供されており、ローカル環境でデプロイすることができるということで、EC2インスタンス上のdockerで起動させることにしました。
以下、いろいろ躓いたので備忘録です。
はじめに
以下のサイト様を参考にさせて頂きました。
実際にやってみると2023年5月現在では躓いたところもあったので、それらを踏まえて備忘録します。
【AWSの呼吸 漆ノ型】Former2を使って既存環境をCFnのテンプレートに変換する~成功編~ - ailes blog
目次 目次 はじめに 環境概要 構成 シークレットアクセスキー払い出し Former2インストール gitインストール dockerインストール docker-composeインストール former2のソースをgit clone former2のディレクトリに移動 Former2設定 待ち受けIPアドレスの変更 Fo...
EC2を活用したFormer2の利用手順 - Qiita
Former2とは最初からCloudFormationを使って環境構築を行っていればいいのですが、手組みで行ったPoC環境や既存の環境が存在していた場合、CloudFormationのテンプレート…
環境/構成
- AMI:
Amazon Linux 2
- 注意:最新の Amazon Linux は
Amazon Linux 2023
ですが、こちらはdocker立ち上げようとすると以下のエラーになったので断念しました。
どうやら、バージョン2023にアップデートしたタイミング?で、python 環境回りに変更があったみたいです。調査するのも今回のやりたいこととは違うので、いったん former2 を動かすことを目標として
- 注意:最新の Amazon Linux は
Error loading Python lib '/tmp/_MEIg3aUk9/libpython3.7m.so.1.0': dlopen: libcrypt.so.1: cannot open shared object file: No such file or directory
- サブネット:とりあえず策っと動かしたかったので、パブリックに配置しました
- セキュリティグループ: 自環境からのIPアドレスのアクセスのみを許可して、sshとhttpを許可しました
事前条件
- アクセスキーIDとシークレットアクセスキーの払い出しをしておく必要があります
手順
パブリックサブネットにEC2インスタンスの起動
以下の設定でEC2インスタンスを起動します。
- AMI:
Amazon Linux 2
- これが重要。
Amazon Linux 2023
は前述の通りうまく動かなかった
- これが重要。
- サブネット:パブリック
- パブリックIPの自動割り当て:有効化
- EIPを設定してもいいですが、当方環境ではEIPが枯渇気味なので自動割り当てにしました
- インスタンスタイプ: t3.small
- EBSボリューム: 30GB
EC2インスタンス内で各種設定
EC2インスタンス起動後、SSHで接続し、下記を実施します。
- git インストール
$ sudo yum install git
- docker インストール
$ sudo yum install docker
- docker のサービス有効化/自動起動化など
# 起動
$ sudo systemctl start docker
# サービス登録
$ sudo systemctl enable docker
# ec2-userにdockerグループを追加
$ sudo usermod -a -G docker ec2-user
-
SSH のログアウト→ログイン
- 上記で ec2-user が docker コマンドを使用できるようにしました。これを有効化するために明示的なログアウト→ログインが必要みたいです
- EC2インスタンスの再起動でもいいですが、Teratermとかなら再接続でいけました
- VSCode は、内部でセッション保持しているのか?再接続してもだめでした
-
docker-compose のインストール
$ 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フォルダを作って、そこにダウンロードする
$ cd ~
$ mkdir git
$ cd git
$ git clone https://github.com/iann0036/former2.git
docker-compose.yml
を書き換える- デフォルトだとローカルからしかアクセスできないので、外部からアクセスできるようにします
# docker-compose.yml
version: '3'
services:
former2:
image: nginx:stable-alpine
ports:
+ - "80:80"
- - "127.0.0.1:80:80"
volumes:
- .:/usr/share/nginx/html
- docker-compose を起動させる
$ cd former2
$ docker-compose up -d
動作確認
PCのブラウザで、 http://<EC2インスタンスのパブリックIPアドレス>
にアクセスします。
(例:EC2インスタンスのパブリックIPが 52.199.116.210
の場合、 http://52.199.116.210
)
上手くいっている場合、以下のような画面が表示されます。
コメント