28
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel Vapor を使って Serverless な Laravel アプリケーションをデプロイする

Last updated at Posted at 2019-09-08

Laravel Vapor とは

image.png

Laravel を AWS Lambda 上で動作させることができる 有料 のツールで、
Serverless な Laravel アプリケーションを構築することができ、
さらには、S3、RDS、ALB、 等のWebアプリケーションに必要な各種AWSのサービスと連携することができます。

以下のサイトから利用を開始することができます。
https://vapor.laravel.com

利用料金は以下のようになっています。
image.png

ダッシュボード
image.png

構築について

基本的には公式からドキュメントが提供されているので、その手順を参考に今回アプリケーションをデプロイしました。
有料のため様子見てる方や、どのように使うのか気になる方向けに構築手順を記載します。

環境

Vapor requires that your application be compatible with PHP 7.3+ and Laravel 6.0+.
上記が公式が要求する必要環境で、 PHP7.3以上、Laravel6.0を必要とします。

今回自分が構築に使用した環境は以下です。
php : 7.3.9
composer : 1.8.0
Laravel : 6.0

事前準備

事前に、Vapor への登録と、AWSのIAMユーザーの作成が必要となります。
公式からは、複数のAWSサービスを扱うため、IAMユーザーのポリシーを、 AdministratorAccess で作成することを推奨しています。

作成した、AWSのIAMユーザーを、 Vaporの TEAM SETTING1 に追加します。
image.png

Laravel プロジェクトの作成

Vapor にてデプロイするプロジェクトを作成します。

composer を使って、Laravel のプロジェクトを作成します。

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

作成の際は必ず、 Laravel6.0 を使用してください。
(今回は特に設定の変更や、機能追加はせずそのままデプロイしますのでプロジェクトの作成だけします。)

Vaporのツールをインストール

作成した、Laravel プロジェクトのディレクトリの直下にて、
デプロイ時に使用するのVaporCLIをComposer でインストールします。

$ composer require laravel/vapor-cli
$ composer global require laravel/vapor-cli

※ php vendor/bin/vapor で、 VaporCLIを実行できますが、長いので、
以下の説明では、vapor='php vendor/bin/vapor' でaliasを作っています。

インストール完了後、以下のコマンドでVaporにログインします。

$ vapor login

Vaporのコアパッケージをインストールします。

$ composer require laravel/vapor-core

Vapor プロジェクト の作成

作成した、Laravel プロジェクトのディレクトリの直下にて、コマンドを実行しVapor プロジェクトを作成します。

$ vapor init

実行中、プロジェクト名とデプロイするAWSのリージョン情報を求められるので入力します。

環境の作成

環境用の設定を追加するため、以下のコマンドを実行します。

$ vapor env my-environment
$ vapor env:pull production

Vapor.yml が以下のような状態になります(あくまで例)

Vapor.yml
id: 2
name: vapor-laravel-app
environments:
    production:
        build:
            - 'composer install --no-dev --classmap-authoritative'
    my-environment:
        build:
            - 'composer install --no-dev --classmap-authoritative'

デプロイ

VaporCLIを使って、Laravelのプロジェクトをデプロイします。(先程作成した production 環境設定を使います)

$ vapor deploy production

結果

Project deployed successfully. (3m12s)

 =============== ===================================================== 
  Deployment ID   Environment URL (Copied To Clipboard)                
 =============== ===================================================== 
  5079            https://xxxxx-xxxx-xxxxxxx.vapor-farm-xxx.com  
 =============== ===================================================== 

確認

作成したアプリケーションを確認するには、作成時にできたURLを確認します。
image.png

Vaporのダッシュボードからも作成したプロジェクトが確認できます。
image.png

AWSのコンソールから作成されたLambda関数も確認できます。
image.png

まとめ

個人的には、とても簡単にアプリケーションのデプロイができてすごい!
とテンションが上がりました!
(Lambda上でLaravelを動かそうとして断念した過去があるからななおさら)
現在早期アクセス段階で、商用利用にはもう少しかかるかなという感じですがとても便利なツールだと思いました。
他のAWSのサービス(S3,RDS,etc) にもつなげるようなので、今後がとても楽しみなプロジェクトです。

この記事を見て、使って見ようとか、興味を持っていただけたら幸いです。

注釈

  1. クライアントまたはトピックごとにプロジェクトを整理するの方法です、Vapor作成時に自動的に作成されます。

28
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?