こんばんは。高知からインターンしている森田ドラゴンです。最近はプログラミングする時間がなかったので、プログラミングに集中できる、インターンの日が楽しみでしょうがなかったです。
今日はタイトルにある通り、前回に引き続きCloud Formation で VPCからELBの負荷分散までをコードで設定しました。色々なエラーが出ましたが、このエラーには4時間ぐらいかかったと思います。
思い込みは危険
UserDataが実行されないエラーはこの日の作業の中で一番時間がかかりました。それまで出たエラーは、CloudFormationの文法エラーや記入漏れが原因で、まさか UserData内でエラーが起こっているとは思いませんでした。
最初はSecurity Groupか UserDataのエンコードミスだろうと見当をつけて作業していましたが、5時間立ったところで諦めてアドバイスをもらいました。そうするとメンターの方々が
「アレがないね」「そう、アレがない」とslack内で頷き合い始めました。
「え、アレってなんですか?」と置いてきぼりくらいそうになりましたが、ログを見たり、文法を見直したりして見て、やっとエラーの原因がわかりました。
yum -y install httpd #この -y がなかった!
UserData:
Fn::Base64: !Sub | このSubがなかった! これは直ぐに気づけた
-y オプションをつけて install 時の yes / no クエスチョンにyesと答えさせないとダメだったみたいです。とりあえずlogを見るのって大事ですね。UserDataが実行される前に、エラーが吐かれているから、ec2のlogには出力されていないだろうと思いこんでいました。
中途半端に理解できるようになった分、目算つけて作業してしまうので、初心に戻って頑張りたいです。
ALB > public IP
「よし、完璧」と思ってチェックして貰ったのですが、「ALBがあるならec2にpublic ipいらないよね」との指摘が。残念ながら今日中には終わりませんでしたが、来週はそこも修正します。
趣味で作業していると、細かいチェックが甘くなりがちなので、指摘していただける今の環境は本当にありがたいです。