CloudFormationで自動化する際の過程メモ2(Amazon Linux)
以下の続き
cloudformationで生成しているec2のインスタンスをAmazon Linux 2に変更。
image idの調べ方まだあまり分かっておらず、以下の記事を参考にさせて頂いた。
そこからuserDataで欲しいパッケージをamazon-linux-extrasを用いてインストールするよう書き換え。
毎回cloudformation修正してトライアンドエラーするのは手間なのでdockerでamazon linux 2のイメージを落としてそこで実行して動作検証する。
https://hub.docker.com/_/amazonlinux
毎回docker-composeコマンド叩いているので単体のコンテナへの操作地味に忘れる
Amazon Linux 2でサーバ作成 (Apache2.4+PHP7.2+MariaDB) - Qiita
userDataを修正した後cloudformationを実行するが、CREATE_COMPLETEとなっているのにEC2が立ち上がってこない
(インスタンスは生成されているがsoppedになっている)。
どこかにログのようなものが出ていないか探してみるが見つからない。
EC2はそもそも立ち上がっていないのでログが吐かれておらず(今思うとこれ自体がヒントだったかも)
Cloudwatchとか正しく使えば見れるのかもしれない。
手動でEC2 の起動を行うとstatus が一時pending になるものの、すぐに stoppedの状態になった
前回RedHatのインスタンスは作れていたので権限の問題とは違うかなとあてをつける。
以前ECSでマシンのスペック不足で落ちまくってはまった経緯があったのでインスタンスタイプを変更してみると無事に立ち上がった
TODO
・秘密鍵のkeyNameがベタ書きになっているのでそれの修正
keyNameってそもそも機密情報なのかなとか思っていたけどベタが気にするとテンプレート使いまわしづらくなるから結局ベタ書きにしないほうがいい
以下の記事が参考になりそう
dev.classmethod.jp
・インバウンドの設定がまだ自動化できていない(マイIPは自動化できるのだろうか?最悪パラメータで入れられる形で収めたい)
その他
・cloudformationでトライアントエラーしているときに以下のエラーがでた(前のリソースが消えてない状態で作ろうとしてエラーなったのだと思うけど細かい挙動を把握できていない。あとで読みたい
aws.amazon.com
・cloudwatchの使い方(というか今回のようなエラーのログ情報など取る方法)
こういうのとか使えるかも
・cloudformationでトライアントエラーしていると時間食うので時間短縮したい。ファイル分割して必要なものだけ(例えば今回はEC2のスタックだけ生成できるようにとかすればいいのだろうか)