Laravelのポートフォリオをデプロイ vol.1【準備編】【Laravel】【Git】【AWS Lightsail】

作ったポートフォリオのデプロイをしていきます。
デプロイについては環境によって必要な作業が変わってきます。
同じLaravelであってもバージョンの違いや、インストールしたライブラリの違いも影響してくる可能性があります。

今回の環境

今回の環境はこちら

  • Laravel 9 ※ブログ記事で実装
  • AWS Lightsail
  • git

開発環境からgit経由でソースを持ってくることを想定するため、開発方法に関係なく同じような手順でデプロイが出来ると思います。

AWS Lightsailを使用する理由ですが、

  • 無料期間が存在する(執筆時点(2023/10/2)で一部のインスタンスが3ヵ月無料)
  • LAMPテンプレートの使用により手順が簡略化できる

という点が挙げられます。スペックに対してのコストは高いかもしれませんが、学習目的であったり、一時的な利用であれば無料期間の存在は非常に大きいと思います。

ソースをGitにアップする

ブログ記事で実装したシステムはGit管理を行っていないので、こちらをGit管理していきます。

まずはGithubでリポジトリを作成します。
リポジトリ名だけ指定して、Private設定でリポジトリを作成。

続いて、作成したプロジェクトディレクトリをリポジトリと連携します。

まずはgitの初期化とコミット。
ついでに「config –global core.autocrlf」を実行して改行コードの変換について確認しています。
私はinputで普段作業をしています。Windowsを使用している方は意識しておいた方が良いので、確認しましょう。
参考(外部リンク)

続いてリモートリポジトリの紐づけを行ってpushします。
URL部分は各自のGithubで確認しましょう。Githubの慣例に従って、ブランチ名をmainに変更しています。
※途中の無駄改行は癖なので、お気になさらず

この辺の工程はGithubのリポジトリページの下の方にも記載されているので確認してみてください。

さて、作業結果はこんな感じ

しっかり失敗していますね。
Githubは鍵ファイルによる認証を追加しないと、コマンドラインからのリポジトリ操作が行えません
鍵ファイルを設定していきます。Github Desktopが使える環境であれば、個人的にはそちらをおススメします。変更点も見やすいです。
普段は私もGithub Desktop派です。見やすさは事故防止にもつながりますからね。

今回は鍵の設定を行う方はこちらを参考に。参考(外部リンク)

ssh -T git@github.com

このコマンドを実行して「Hi [名前]! You’ve successfully authenticated, but GitHub does not provide shell access.」と出力されれば接続OKです。この後のトラブルを避けるためにも確認しておきましょう。
接続確認を行えたら「git push -u origin main」でpushします。
作業ディレクトリがソースディレクトリ以外になっている場合は、ソースディレクトリに戻ってコマンドを実行しましょう。
push後、ブラウザでGithubを確認するとリポジトリにソースが存在することが確認できます。

今後、アプリケーションの追加実装を行った場合もcommit→pushでリポジトリに最新の状態をアップしていきましょう。
デプロイ後であっても、git経由でデプロイ先のソースを最新化していきます。

Lightsailのサーバー準備

続いてAWS Lightsailのサーバーを準備します。
AWSにログインし、Lightsailサービスを開きます。

Create instanceからインスタンスの作成を行います。

platformは「Linux/Unix」、blueprintは「Apps + OS」「LAMP」を選択します。

「instance plan」については、今回は「$5」のものを選択します。
スペック的には軽量アプリケーションは動作しますし、料金的にも無料期間ありの「$5/月」なので、多少無料期間を超過しても許せる範囲です。
もちろん、スペックを上のものにする分には困ることはないので、コストと相談しましょう。これより下のものはスペック的に不安があります。
私はデフォルトのまま進めてしまいましたが、「Identify your instance」でインスタンス名を付けることが出来ます。基本的には設定をおススメします。
Create instanceよりインスタンスを作成します。

Lightsailの画面にインスタンスが表示されればOKです。
次回はこのインスタンスにデプロイをしていきます。
GitからLaravelプロジェクトをcloneしてきた際に必要な作業や、XAMPPなどで環境構築をしていると意識していなかったインストールや設定があります

それでは、また次回。