
自己紹介
初めまして。2025年4月に新卒で入社した亀山遥貴(かめやま はるき)です!
今回は、簡単な自己紹介と学校でアプリをAWSにデプロイしたときの経験談を少し語ろうかなと思います。
プロフィール
- 出身地: 愛知県一宮市(モーニング発祥地を名乗ってるところです。ちなみに自分はあまり行きません)
- 出身校: 名古屋工学院専門学校
- 趣味: 電車に乗ること(巷でいう乗り鉄っていうやつです)・パソコン修理・アニメ鑑賞・旅行など)
動機
では、さっそくなんですが、学生のときの話をしていこうと思います。きっかけは学校の文化祭でベビーカステラの模擬店をクラスで行おうとなったときに自分の友人が、
「今回の模擬店は注文とかをシステム化したらいいんじゃね?」
と言ったことでした。
前回の文化祭でも自分たちのクラスでは飲食店の模擬店をやっており、その際に注文や受取の際にかなりバタバタした経験があったため、今年の文化祭ではこれらの手間がかかったりするものまとめてシステム化して効率よく捌いていこうとということで簡単なシステムを制作することになりました。また友人が、今回システムの開発は自分がするからデプロイをやってほしいと言ってくれたので、今回自分はシステムのデプロイをメインで行うことになりました。
使ったクラウドサービスは学校の授業でも習ったAWSを用いて行いました。はじめは「授業でもやったことあるし、自分でも少しだけ触ったことあるからすんなりと終わるやろ」とかなり高をくくっていましたが、実際のところ様々なところで大苦戦してしまいました。
システムの概要
今回、下記の技術を用いてこのシステムを制作しました。
- フロントエンド: Typescript・React
- バックエンド: Laravel
- データベース: MySQL
苦労したところ
次に苦労したところを簡単に2つほど上げていきたいなと思います。
苦労したところその1:ブラウザでフロントエンド側のサーバーにアクセスできない!
ということで友人が作ってくれたシステムを早速デプロイしていこうとなり、下記の図のような構成にすることになりました。
(プロの方々からみたらツッコミどころ満載な構成となっておりますが、そこはご愛敬ということで....)
構成を考えたので、さっそくVPCやEC2の設定をして早速表示されるか試してみると...
ページが表示されない!!
まあページが出ないことは、今までの経験上何度もあったので、思いつく解決策を試してみるも...
やっぱりページが出ない!!
ということで完全手詰まりになってしまったので、色々調べてみました。
そしたら、原因は、自分のセキュリティグループの設定が足りなかったのが原因でした
詳しく説明すると、インバウンドルールにHTTPを追加する必要があったのですが、SSHしか追加していなかったというオチです。
(なんと初歩的ミスでアホらしい笑)
というこで早速セキュリティグループにHTTPを追加したところ
無事に表示されました!!(トップバーしか出ていないのは仕様です。)
苦労したところその2: PHP周りの設定がうまくいかない
次に、苦労したところはバックエンド側のPHPの設定です。
まず、EC2インスタンスを立ち上げ、PHPなどの設定を行っていざフロントエンド側で確認してみると...
データがバックエンド側から持って来れてないようでした。
一度確認のためブラウザできちんとデータがJSONで表示されるか確認したところ、
あれ?そもそもサーバーが立ち上がってない??
ということで、早速Webサーバーのnginxのログを確認してみました。
connect() to unix:/var/run/php-fpm.sock failed (2: No such file or directory) while connecting to upstream
どうもログを見ると、PHP用のsock(ソケットの出入り口)というものがないためにエラーが出てるようでした。詳しい設定内容は割愛しますが、しっかりと設定を行って再度接続を試みたところ、
また、502 Bad Gatewayと出てしまいました....
ということで再度ログを調べてみると、以下のようなエラーログが、
unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied)
出たな!Permisson denied!!
ということでLinux系お馴染みの権限エラーが出ていたので、sockファイルの権限を変更して再度接続を行ってみました。
結果は、変わらず権限エラーで起動しません。
ここから何が原因で権限エラーが出ているのがか分からず2日ほど色々試したり、調べたりしていたら、とある記事にphp-fpmの設定ファイル内にあるownerの設定を変えるといいと書いてありました。
listen.owner = nginx
listen.group = nginx
というわけで変更したところ...
無事にLaravelの画面が表示されました!!
その後は、フロントとバックの接続やHTTPS化の際の証明書の発行の際などでも苦戦することはありましたが、無事にしっかりとシステムをデプロイすることができました!!
最後に
というわけで、クラウドというより、インフラよりのお話になってしまいましたが、最後にこれらの経験を活かしていきながらこれからFIXERの一社員としてクラウドなどの知識をたくさん身につけていけたらいいなと思います!これからもどうぞよろしくお願いします。