addictionwhite’s diary

考え中のことを整理と忘備録のために綴ります。ここに書かれている考えは翌日には変わる可能性があります

CloudFormationで自動化する際の過程メモ2(Amazon Linux)

以下の続き

addictionwhite.hatenablog.com

 


cloudformationで生成しているec2のインスタンスAmazon Linux 2に変更。
image idの調べ方まだあまり分かっておらず、以下の記事を参考にさせて頂いた。

dev.classmethod.jp

そこからuserDataで欲しいパッケージをamazon-linux-extrasを用いてインストールするよう書き換え。
毎回cloudformation修正してトライアンドエラーするのは手間なのでdockerでamazon linux 2のイメージを落としてそこで実行して動作検証する。

https://hub.docker.com/_/amazonlinux

毎回docker-composeコマンド叩いているので単体のコンテナへの操作地味に忘れる

qiita.com

Amazon Linux 2でサーバ作成 (Apache2.4+PHP7.2+MariaDB) - Qiita


userDataを修正した後cloudformationを実行するが、CREATE_COMPLETEとなっているのにEC2が立ち上がってこない
インスタンスは生成されているがsoppedになっている)。
どこかにログのようなものが出ていないか探してみるが見つからない。
EC2はそもそも立ち上がっていないのでログが吐かれておらず(今思うとこれ自体がヒントだったかも)
Cloudwatchとか正しく使えば見れるのかもしれない。

手動でEC2 の起動を行うとstatus が一時pending になるものの、すぐに stoppedの状態になった


dev.classmethod.jp

前回RedHatインスタンスは作れていたので権限の問題とは違うかなとあてをつける。
以前ECSでマシンのスペック不足で落ちまくってはまった経緯があったのでインスタンスタイプを変更してみると無事に立ち上がった


TODO
秘密鍵のkeyNameがベタ書きになっているのでそれの修正
keyNameってそもそも機密情報なのかなとか思っていたけどベタが気にするとテンプレート使いまわしづらくなるから結局ベタ書きにしないほうがいい

以下の記事が参考になりそう
dev.classmethod.jp
・インバウンドの設定がまだ自動化できていない(マイIPは自動化できるのだろうか?最悪パラメータで入れられる形で収めたい)

 

その他
・cloudformationでトライアントエラーしているときに以下のエラーがでた(前のリソースが消えてない状態で作ろうとしてエラーなったのだと思うけど細かい挙動を把握できていない。あとで読みたい
aws.amazon.com

・cloudwatchの使い方(というか今回のようなエラーのログ情報など取る方法)

こういうのとか使えるかも

dev.classmethod.jp

 

・cloudformationでトライアントエラーしていると時間食うので時間短縮したい。ファイル分割して必要なものだけ(例えば今回はEC2のスタックだけ生成できるようにとかすればいいのだろうか)