AWSでお手軽デプロイ〜Elastic BeanstalkでLaravelアプリをデプロイしてみた

大阪オフィスのYui(@MayForBlue)です。

Elastic Beanstalk、よく聞くけど触ったことないしなんもわからん・・・だったので、公式チュートリアルを参考に、趣味で使っているLaravelを使ってアプリのデプロイをやってみました。

目次

Elastic Beanstalk とは

インフラを意識せずにアプリケーションのデプロイ・管理ができるAWSのサービスです。
以下の図のように、一から環境を作る場合とElastic Beanstalkを使用した場合で管理が必要な部分が大きく変わります。
一から環境を作る場合

Elastic Beanstalkを使用した場合
https://d1.awsstatic.com/webinars/jp/pdf/services/20170111_AWS-Blackbelt-Elastic-Beanstalk.pdfより)

詳しくはコチラ

Laravelアプリをデプロイしてみた

前提

  • PHPがインストールされていること
  • Composer(PHPのライブラリ管理ツール)がインストールされていること

Laravelアプリケーションを作成する

以下のコマンドでLaravelアプリケーションを作成する

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

プロジェクトフォルダに移動して、アプリケーションのzipファイル(ソースバンドル)を作成する

$ cd eb-laravel
$ zip ../laravel-default.zip -r * .[^.]* -x "vendor/*"

これで、プロジェクトフォルダの一つ上の階層にlaravel-default.zipが作成されます。

ソースバンドルをElastic Beanstalkにアップロードする(=Laravelアプリケーションのデプロイ)

マネジメントコンソールのElastic Beanstalkの画面で「今すぐ始める」をクリック

ウェブアプリケーションの作成の画面で以下の作業を行います。

  1. アプリケーション名(ここでは「TestApp」としました)を入力
  2. プラットフォームに「PHP」を選択
  3. アプリケーションコードに「コードのアップロード」を選択
  4. アップロードボタンをクリックして、さっき作成したソースバンドル(zipファイル)を選択する

zipファイルを選択したら「アップロード」をクリックする

アプリケーションを作成して、画面にOKのマークが表示されたらデプロイ完了です。

アプリを確認する

アプリケーションのURLが画面に表示されるので、アクセスしてアプリケーションを確認します。

ところが、Laravelの場合、デフォルトのページ(index.php)が/public配下にあるのでそのままアクセスするとエラーになってしまいます。

URLのトップにアクセスしてデフォルトページが表示されるように、設定を変更します。
「設定」から「ソフトウェアの変更」を選択して、ドキュメントルートに「/public」を入力して適用をクリックする。

変更が完了したら、もう一度URLにアクセスしてみます。

Laravelのデフォルトページが表示されました!

最後に

Elastic Beanstalkを今回初めて触ったのですが、デプロイまでのスピードが本当に早くてびっくりしました。 色々なものが隠蔽されている分、扱いには注意が必要な部分もありそうですが、インフラを意識しなくていいのでアプリの開発に注力できるのがいいですね。
この記事がどなたかのお役に立てば幸いです。

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