次から次へとエラーは訪れる。AWSのALB設定の次はサーバーエラー500
前書き
webアプリを作っております。
早いところリリースしなきゃしなきゃと思っていたところ、妊娠がわかりました!w
とにかく出産までに〜と思っていたけど、自分の技術レベルでは難しそうと判断し、クラウドワークスでエンジニアさんを募り、お仕事として開発をお願いいました。
Nuxt.jsとLaravelで作っているアプリなのですが、どちらもできるエンジニアさんが運良く見つかり、依頼しました。(2019年12月頃)
VueとLaravelはその時期、どちらもできる人はたくさんではないので、個人でやっているエンジニアさんで、技術レベルが高そうで、自分との間にスムーズな会話が成り立ちそうで、出産までの日程でやれそうな日数の取れそうな人を探しました。
ベトナムの会社などで、どちらのエンジニアもいます! みたいなところもあったのですが、対話に懸念がありました。
また、土日を中心とした副業の方も、技術レベルや対話のしやすさでうまくいきそうな方がいらっしゃったのですが、締め切り(出産)があったので、結構やりとりをさせていただいた上で、また機会があれば何か別の仕事をお願いします! と関係だけ繋いでおいて、今回は選びませんでした。
今思うと、その副業の方でも、よかったかも。
日頃ユーザーと対話する立場で仕事しているとのことで、コミュニケーションはこの方が一番取れそうでした。
締め切りは大事ですが、スピードを重視しすぎるのはよくないですね。
結果として、クラウドワークスをベースに、ほぼ個人(+仲間)で一応株式会社も立てるというエンジニアさんにお願いすることになりました。
とても優秀なエンジニアさんで、技術の幅が広く、VueもLaravelも使いこなし、「自分が面白そうな案件しかやらない。やりたくないことをやらなくても稼いで行くのに困っていない」と豪語する、剛腕の持ち主でした。
「ここも見積もりに入れてないけど、やっときますね〜!」みたいな感じで、小さい修正などはサクサク直してくれました。
一点、コミュニケーションが少し取りづらいことがあったのが、最後まで積み重なるときつかったなという感想でした。
私はエンジニアとして日が浅いのは承知の上で、それでも会社でLaravel書いていた時に、そこまで周りのメンバーとコミュニケーションで遅れをとることはなかった(もちろん先輩方は初学者と承知の上で、言葉を選んでくださってたのでしょうが)のですが、今回はエンジニアさんの言っていることを理解するために調べたり、噛み砕いて質問したり、友人のエンジニアに質問する必要があったりしました。
ちょっと前書きが長くなっていますが、その結果産後、1年の育休を経て再度、自分のところのAWSに環境構築してもらったアプリを思い出そうと開いて見る時に、色々とエラーが起きて前に進めないという事態に見舞われているわけですw
エンジニアさん、すみません!! あなたのせいにしましたw
もちろんこの事態は自分が招いたことなので、兎にも角にも、がむしゃらにでも、頭を冷やしつつ、一手一手思い出しつつ、開発を再開して、リリースへ漕ぎつけようとしているのでした。
急いてはことを仕損じる。というか急いでなんてできるタマではなかったんです。一歩一歩いきましょう。
環境スタートさせる覚書
日記ですが、次またもし間が空いた時のための備忘としても書いておきます。
まずは、EC2をスタートさせて、ドッカーのコンテナを起動、そして、Nuxtのサーバースタートしておきましょう。
この辺りで既に時間は食ってます。(インフラ弱い人あるある)
ログイン画面のURLを何度も叩くがログイン画面が出てくる兆しなし。。。
ここの奮闘はもはや過去のものなので省略しますが、AWSのセキュリティグループなどの設定を見て、TCPポートが新たに開いていたのでそれでやっと見ることができました。
(このポートとかもエンジニアさん、特に連絡してくれてなかったし。)
やっとログイン画面見れた。やった〜〜〜〜〜〜〜〜〜〜!(この時の歓喜たるや)
よっしゃやっとログインできる! と、ログインしようと、IDとパスワードを入れて、「送信!!!」 。。。したところ、何も起きない。
・・・・・・・はい。次はなんでしょう。
Chromeのinspectコンソール開いて、NetworkのところのPOSTのURLを見ると、ロードバランサーがいた!
このあたりを一緒に検証してくれた頼りになる友人インフラエンジニアの発言「ロードバランサー、いるね」
痺れる!プロフェッショナル! この言葉私も言いたい〜〜〜〜〜。(できる人からすると大したことではないらしい)
そして、AWSのALBの設定を確認。特に問題を感じず。
実際に環境構築してくれたエンジニアさんにも連絡してみたところ、「ロードバランサーを起動して、APIへの向き先を変える必要がありますね」
とのこと。
えーっと。「ロードバランサーの起動」って何?? ロードバランサー立てた時点で、もうステータスは、「active」になってますけど・・・。
一頻り悩んだ後に、友人にそのあたり質問して、中身見てもらったところ、一瞬で解決。ALBのインバウンドのセキュリティグループが設定されていないので、HTTPの通信受けられてないです、とのことでした。。。。
まずドメインからALBへはRoute53で向けられています。そして、ALBから該当するEC2へはListnerに登録されています。以上、OK!!!じゃないの!?!?!?! ALBのListnerのところを見ると、HTTP80となっていてインターネッツからの接続許可しているよ!?!?!?!?
・・・・はい、違いました。間違ってました完全に。
Listenerのところに、小さい黄色い三角がいたんですよ。注意書きみたいなやつ。そこをマウスオンすると、セキュリティグループが付与されていなくて、このListenerは有効になってません、的なことが書かれていたんです。
セキュリティグループでHTTPでanyを受け入れるルールをADDして、ここに付与→Listnerが有効になって、ログイン画面から、ログインが通りました〜〜〜〜〜!!!!!!!
・・・はあ。。。ここまでくるのにこんだけかかるって、どんだけなんだ。でもこれが事実。このスピードでも、一歩一歩進めていくしかないし、こんなもんなんじゃないかな、って思ってきました。いちいち疲れたり気落ちすることが意味ない。
とにかく一歩一歩です。
次はこのサーバーエラー500に向き合わなければないません〜。
こないだふと、「あ! エンジニア始めた時と比べて、だいぶベースがわかってきた! サクサク進む〜!!!」なんて思っていたんですが、まだまだまだまだでした。
これからもおそらく私はかなり長い間、初心者な気分を保ち続けて、人に聞いたり調べまくったりしながらその時は自分でも感じられないほどののんびりな速度で成長していくしかないんだなぁと思いました。
振り返ったら結構進んでるんじゃん! 楽しい!! って思えるように・・・・。
前を向いて前進あるのみです〜〜〜。
(何回「一歩一歩!」って言ってんだYO!! と見返して思った。2020年5月。ロックダウン解除が近いハワイの夕方w)