Slide 1

Slide 1 text

AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 2023-10-08 15:55 Track3

Slide 2

Slide 2 text

自己紹介 ちゃちい (𝕏: @chatii) 合同会社inbaa 代表社員 PHPerRoom 主宰 PHP Lovers Meetup 主宰 妻・息子・娘 + ウマ娘のトレーナー: 890 570 082 PHP 4からのPHPer AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 3

Slide 3 text

AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 4

Slide 4 text

話すこと サーバーレスと AWS Lambdaの カンタンな紹介 Brefの紹介 Brefのデプロイをデモ 時間があれば ログ、エラー、モニタリング Lambdaの制限を避ける構成 話さないこと サーバーレスの厳密な説明 Brefの仕組み PHPカンファレンス沖縄2023 清家さんの発表が参考になります (現時点非公開) AWS以外の クラウドベンダの話 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 5

Slide 5 text

Bref AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 6

Slide 6 text

Q. Brefを知っている? AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 7

Slide 7 text

Q. Brefを使ったことがある? AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 8

Slide 8 text

Q. Brefを本番環境で使ったこと がある? AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 9

Slide 9 text

Q. 選定候補にBrefを挙げたこと がある? AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 10

Slide 10 text

ご回答ありがとうございます Brefの布教が主題なので、 今どれくらい使われているかは知りたい AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 11

Slide 11 text

Brefの布教? AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 12

Slide 12 text

AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 13

Slide 13 text

AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 14

Slide 14 text

AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 15

Slide 15 text

Brefを日本で広めたい AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 16

Slide 16 text

本題 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 17

Slide 17 text

サーバーレスとAWS Lambda AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 18

Slide 18 text

サーバーレスとは サーバーの管理が不要 柔軟なスケーリング 使っていない時にはリソース不要 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 19

Slide 19 text

サーバーの存在を意識しなくてよい AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 20

Slide 20 text

AWS Lambda とは AWS のサービスの一つ イベントを起点にコードを実行する Webのリクエスト 特定の時間になったら S3にファイルが置かれたら…など 「実行時間」と「リクエスト件数」に応じ費用 "レイヤー"によるカスタマイズの他、コンテナイメージも AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 21

Slide 21 text

Lambdaが公式サポートしている言語 Lambda は、ネイティブでは、Java、Go、 PowerShell、Node.js、C#、Python、Ruby の コードをサポートしています。 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 22

Slide 22 text

また、関数の作成にその他のプログラミング言語を 使用できるようにするための Runtime API を 提供しています。 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 23

Slide 23 text

Lambdaの制限 項目 値 同時実行数(リージョンあたり) 1,000 タイムアウト 900 sec リクエスト/レスポンスのサイズ (同期リクエスト) 6 MB 環境変数のサイズ 4 KB デプロイパッケージのサイズ 250 MB コンテナイメージのサイズ 10 GB AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 24

Slide 24 text

わかりやすいLambdaの活動の図 https://serverless-visually-explained.com/ Lambdaの発火〜終了がわかりやすい AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 25

Slide 25 text

Bref AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 26

Slide 26 text

Bref Lambda のランタイム PHP 8.0 ~ 8.3RC2(2023-10-05時点) ARM/Gravitonのサポート Extentionのサポート Symfony、Laravelのサポート Serverless Framework, AWS CDK でのデプロイ CDKスキーとしては大歓喜 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 27

Slide 27 text

昨年(2022)の登壇 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 28

Slide 28 text

Brefを使った開発の進め方 ここからライブでデモをやります AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 29

Slide 29 text

時間あれば Brefのログや エラー、モニタリング AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 30

Slide 30 text

Brefならではというものはない CloudWatch Logsと仲良くする stdout , stderr めんどう…? Bref Dashboardで表示できる AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 31

Slide 31 text

DataDog CloudWatch Logsを収集してくれる New Relic CloudWatch Logsを収集するLambdaが提供されている Tideways Brefのドキュメントで紹介されているが デーモンがEC2インスタンスで必要 Sentry エラー検知のみなら AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 32

Slide 32 text

時間あれば Lambdaの制限を避ける構成 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 33

Slide 33 text

実行時間の制限を回避する リクエスト・レスポンスの制限を回避する AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 34

Slide 34 text

実行時間の制限を回避する 1. バッチ処理の開始 EventBridge Schedulerで発火 2. AWS Step Functionsの起動 1. バッチ処理対象を収集するタスク 2. 並列でバッチ処理 3. すべてが終わったらバッチ処理完了 1実行あたりの処理時間を極力減らすように作る 途中エラーがあったら巻き戻せるように作る AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 35

Slide 35 text

リクエスト・レスポンスの 制限を回避する リクエスト 大抵ファイルアップロード クライアントサイドで直接S3 にアップロード アップロード結果を サーバーサイドに知らせる レスポンス ファイルはS3に置くこと 結果が6MBを超える そんなことある?? フロントエンドの設計も必要 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 36

Slide 36 text

まとめ AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 37

Slide 37 text

メリット サーバーを管理しなくてよい 実行時間に対する課金 Symfony, Laravelへの 導入の手軽さ 既存のアプリの移行はどうかな… デメリット 同時実行数の制限 リージョンあたり1000まで 1関数ではなく、すべて 新規AWSアカウント作ると初期 値10 引き上げリクエストしないと… ローカル環境との差異 PHPが動くなら動くでしょうとい う割り切り コンテナを使おう AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 38

Slide 38 text

話せなかったこと コンテナイメージでの構築 ↑を使ったローカル環境の構築 AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3

Slide 39

Slide 39 text

ご清聴ありがとうございました AWS Lambda で PHP を動かす Bref の布教に来ました。 AWS Lambda で PHP を動かす Bref の布教に来ました。 by chatii at PHPカンファレンス2023 Track3 by chatii at PHPカンファレンス2023 Track3