Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel Vapor Serverless Laravel

akki
September 25, 2019

Laravel Vapor Serverless Laravel

akki

September 25, 2019
Tweet

More Decks by akki

Other Decks in Programming

Transcript

  1. Laravel Vapor
    Serverless Laravel
    2019/09/25 PHP勉強会
    秋葉 誠一
    @akki_megane

    View Slide

  2. 自己紹介
    名前:秋葉 誠一
    生年月日:1993/12/17
    会社:株式会社ニジボックス
    趣味:スノボ、サバゲー、野球(NPB,MLB)
    @akki_megane

    View Slide

  3. ● サーバーレスとは
    ● Laravel Vapor とは
    ● Laravel Vapor 使ってみて
    ● まとめ
    Agenda

    View Slide

  4. サーバーレスとは
    ※本題ではないのでざっくり説明します

    View Slide

  5. サーバーレスとは
    サーバーレス

    View Slide

  6. サーバーレスとは
    サーバーレス
    サーバーレス・コンピューティング

    View Slide

  7. サーバーレスとは
    クラウド・プロバイダーがアプリケーションに必要なマシン・リ
    ソースの割り当てを動的に管理し、
    事前に購入されたことに基づく請求ではなく、
    各アプリケーション要求を満たすために使用される個々のリ
    ソース量に基づいた請求を行うような
    クラウド・コンピューティングの実行モデルである
    ユーティリティ・コンピューティングの一形態である

    View Slide

  8. サーバーレスとは
    物理サーバーがアプリケーション・コードを提供するユー
    ザーの視点から完全に抽象化されているため、「サーバー
    レス・コンピューティング」という名前が使用される。
    出典:wikipedia

    View Slide

  9. サーバーレスとは
    FaaS
    Function as a Service

    View Slide

  10. サーバーレスとは

    View Slide

  11. サーバー管理レス
    柔軟なスケーリング
    従量課金

    View Slide

  12. サーバーレスとは
    ざっくり説明あとは自分で調べてね

    View Slide

  13. Laravel Vapor とは

    View Slide

  14. Laravel Vapor とは

    View Slide

  15. Laravel Vapor とは
    2019/07/24-25
    Lraracon US にてLaravel6
    と一緒にお披露目されました

    View Slide

  16. Laravel Vapor とは

    View Slide

  17. Laravel Vapor とは

    View Slide

  18. Laravel Vapor とは
    作者:Taylor Otwell
    Founder of Laravel
    9〜10ヶ月 週40時間
    かけて作った

    View Slide

  19. Laravel Vapor とは
    Laravel用 の サーバーレス展開・管理プラットフォーム
    Vaporは Laravel アプリケーションを、AWS Lambdaに展開
    し、S3、RDS、ALB 等の
    Webアプリケーションに必要な各種AWSのサービスと連携す
    ることができます。

    View Slide

  20. Laravel Vapor とは
    Laravel で作った、アプリケーションを
    AWS Lambdaに乗っけて、動かす
    ための機能を提供してくれるサービス(SaaS)

    View Slide

  21. いくつかの機能 with 公式ドキュメント(Google 翻訳)

    View Slide

  22. View Slide

  23. Laravel Vapor とは
    有料

    View Slide

  24. Laravel Vapor とは
    有料
    AWSの料金

    View Slide

  25. Laravel Vapor 使ってみて

    View Slide

  26. View Slide

  27. 環境
    ● PHP:7.3以降
    ● Laravel:6.0以降

    View Slide

  28. 事前準備
    ● Laravel Vapor への登録
    ● AWSのIAMユーザーの連携

    View Slide

  29. デプロイしてみよう
    Laravelのプロジェクト作る
    - このときVaporだということを意識することはない
    - (今の所)

    View Slide

  30. デプロイしてみよう
    ツールのインストール
    - vapor-cli
    - CLIから操作できるようにするためのツール
    - vapor-core
    - Lambdaで動かせるようにするためのツール
    入れとくだけ

    View Slide

  31. デプロイしてみよう
    vapro.yml(設定ファイル)の編集
    - Vaporに関する設定はこの ファイルだけあればいい

    View Slide

  32. デプロイしてみよう
    デプロイコマンド実行
    - $ vapor deploy production

    View Slide

  33. デプロイしてみよう

    View Slide

  34. デプロイ解説
    ※公式で詳しい解説がないので、
    AWSにできてるものと、ソースから追いました。
    間違えてる箇所もあると思いますので、
    ざっくり解説なので、
    大目にみていただけると幸いです。

    View Slide

  35. デプロイ解説
    CLI AWS CLI

    View Slide

  36. upload
    Laravel のソース

    View Slide

  37. View Slide

  38. View Slide

  39. 個人的ツボ

    View Slide

  40. 個人的ツボ
    Lambda 及び、API Gateway は1つしか作られないので、
    Lambda内部のLaravel をつかってルーティングしている

    View Slide

  41. かなり簡単にデプロイまでいける!

    View Slide

  42. かなり簡単にデプロイまでいける!
    しかもサーバーレス!

    View Slide

  43. DBにもつなぎたいよね!

    View Slide

  44. VPC 作成 (CLIからでも作れる)

    View Slide

  45. RDS 作成 (CLIからでも作れる)

    View Slide

  46. DB補足
    固定サイズの
    RDS MySQL 8.0
    自動スケーリング
    Aurora MySQL 5.6

    View Slide

  47. vapro.yml 編集

    View Slide

  48. vapro.yml 編集
    DB情報
    DBマイグレーション

    View Slide

  49. 後はデプロイするだけ

    View Slide

  50. とっても簡単!

    View Slide

  51. まとめ

    View Slide

  52. 感想
    ● すげー!と思った
    ● Lambdaでごにょごにょしてた身としてはとにかく驚き
    ● なんだか革新的な感じがした
    ● フルスタックなフレームワークでこれをやるのか

    View Slide

  53. 感想
    ただ一番思ったのが

    View Slide

  54. 感想
    帯に短し 襷に長し
    なんだか中途半端に感じだなー

    View Slide

  55. インスタンス立てれば?
    LambdaのAPIにわざわざLaravel 使わなくても、、
    オートスケールしたならコンテナでいいんじゃ、、
    感想

    View Slide

  56. 疑問
    Taylor Otwell はなにを思って
    Laravel Vaporを作ったのか?

    View Slide

  57. 海外のPodcast で答えていました
    https://www.serverlesschats.com/7

    View Slide

  58. Q. なぜLaravel Vapor を作ったのですか?

    View Slide

  59. A.
    サーバーについて二度と考えたくないからです。
    そのために Laravel Forge を作りました。
    ただそれでも、サーバーについて考える必要がありまし
    た。

    View Slide

  60. A.
    サーバーについて考えなくていいように、
    完全にサーバレスにするために、
    Laravel Vapor を作りました

    View Slide

  61. Q. Laravel が将来的に
    サーバレスに向かっているということですか?

    View Slide

  62. A.
    間違いなく将来、大きなの割合を占めるものだと思いま
    す。そして、サーバーレスの哲学とLaravelの哲学は非常
    に似ていると思います。
    目標は、価値を提供し、ビジネスに意味のある
    ロジックを書くことに集中できるということです。
    それらはうまく調和すると思います 。

    View Slide

  63. A.
    将来、複雑さが増し、構成ファイルが増え、
    もっと変な
    コンテナ オーケストレーションですか?
    人々が自然に引き寄せられるような未来が
    これだとは思いません。

    View Slide

  64. A.
    人々はもっとシンプルなものが欲しいと思う。そして、
    結局のところ、サーバーレスの方が簡単だと思いま
    す。
    プラットフォームが良くなるにつれて、ツールが良くなる
    につれて、よりシンプルになるだけです。

    View Slide

  65. 今後Laravel はどうなっていくのか?
    サーバレスは本当に未来なのか?
    なんだか面白いな!

    View Slide

  66. ご清聴ありがとうございました

    View Slide