Amazon Lightsail に Laravel環境を作ってみた

大阪オフィスのYuiです。

1/22(水)に行われた#大阪Laravel勉強会で「Amazon Lightsail に Laravel環境を作ってみた」というタイトルのLTをしてきました。 そのときの内容を記事にしました。

Laravelとは

PHPのオープンソースで作られたWebアプリケーションフレームワーク。開発スピードが速く、機能が豊富で世界的にも人気のフレームワークです。

なぜこのテーマにしたか

LTをやるにあたって、せっかくならAWSに絡めたいのと、Lightsailは興味はあるけど触ったことのないサービスだったので、この機会に触ってみようと思いました。

Amazon Lightsailとは

  • AWSが提供するVPS ( Virtual Private Server )
  • 料金は月額制でスペックによりプランを選択する
  • OSのみやLAMP/WordPressなどがあらかじめセットアップされたインスタンスがある
  • シンプルなWebサイトの構築に向いている
  • ボタンを数回クリックするだけで構築完了

柔軟なアクセス制御やネットワーク設定、運用監視が必要なサービスには向いていませんが、サクッと検証環境を作りたい時や小規模なWebサイトを構築する場合はEC2よりもお手軽に使うことができます。

Laravel環境を作ってみた

Lightsailのトップページはこんな感じ。めっちゃかわいい。

「インスタンスの作成」をクリックするとインスタンスの設定を選択する画面が出てきます。
ここでWindows/LinuxやOSのみ/アプリケーション+OSを選択することができます。選択できるアプリケーションが多くてスゴイ。
今回はLaravelなのでLAMP環境(Linux+Apache+MySQL+PHP)の最小サイズでやってみました。

無事セットアップが完了し、Laravelプロジェクト作成のためのコマンドを叩きました。

$ composer create-project --prefer-dist laravel/laravel laravel

ところが・・・

Composerのアップデートやプロジェクト作成時にメモリを食うらしく、最小サイズの512MBでは足りず、エラーになってしまいました。調べてみると最低1GBくらいあれば大丈夫とのことだったので、一つ上のインスタンスを選択して再度挑戦。。

インスタンスが起動するとブラウザ上でインスタンスにSSH接続できるので、いろいろコマンドを叩いてみます。

インストールするディレクトリに移動する。

$ cd /opt/bitnami/apache2/htdocs/

Laravelプロジェクト作成

$ composer create-project --prefer-dist laravel/laravel laravel

/opt/bitnami/apache2/conf/bitnami/bitnami.conf 内に記述されているドキュメントルートを変更する。

DocumentRoot "/opt/bitnami/apache2/htdocs/laravel/public"
<Directory "/opt/bitnami/apache2/htdocs/laravel/public">

Laravelプロジェクトの権限を変更する

$ sudo chown -R bitnami:daemon laravel/*

apache再起動

$ sudo /opt/bitnami/ctlscript.sh restart apache

いけました...!!

今まであまり意識したことがなかったですが、環境を用意するにあたり、メモリやスペックを見積もる必要性を痛感しました。

まとめ

  • Laravelのプロジェクトを作成する場合、最小構成のインスタンスでは厳しそう
  • とにかく早く作れるのがスゴイ(実際にインスタンスを作成してからLaravelのウェルカムページを出すまでに10分かかりませんでした。)

最後に

LTは半年ぶり人生で2回目だったので緊張しました。これから登壇の機会が何度かあるのでもっといい発表ができるように頑張っていきたいなと思いました!登壇・LTの皆さんのLaravel力、発表力が高く、とても楽しい勉強会でした。Laravelもっと触っていきたい! 主催者の方が勉強会の登壇資料をまとめてくださっているので興味のある方はのぞいてみてください。 →大阪でLaravelの勉強会を開催しました。

以上、大阪オフィスのYuiでしたっ(`・ω・´)

登壇資料

参考記事

Amazon Lightsail(LAMP)でLaravelを動かす