Slide 1

Slide 1 text

Web ~ ~ ServerlessDays Tokyo 2 023 2 0 23 . 9 . 23 @seike 4 60 1

Slide 2

Slide 2 text

@seike 46 0 - - @seike 46 0 - AWS Community Builder Serverless - Fusic - / - / - - ServerlessDays Tokyo 2 022 Virtual - - ServerlessDays Fukuoka 2 019 Co-Chairs - ServerlessDays Tokyo 2 019 , 2 022 , 2023 2

Slide 3

Slide 3 text

Agenda 1 .AWS Lambda 2 .Web AWS Lambda 3 . 4 . 5 . 3

Slide 4

Slide 4 text

01 AWS Lambda

Slide 5

Slide 5 text

AWS Lambda Lambda 
 Lambda 
 VPC ⾒ Lambda VPC VPC Lambda 
 Lambda SecretManager 
 AWS CloudWatch Logs CloudWatch Metrics Lambda 5

Slide 6

Slide 6 text

02 Web AWS Lambda

Slide 7

Slide 7 text

Laravel PHP Web AWS ⾒ S 3 DynamoDB Eloquent ORM Laravel Laravel API Passport Sanctum API API Laravel API JSON Laravel 7

Slide 8

Slide 8 text

Laravel 8

Slide 9

Slide 9 text

Bref Bref PHP OSS AWS Lambda PHP AWS Lambda PHP PHP 
 PHP Bref PHP PHP AWS Lambda Developer Community Laravel Symfony PHP CLI 9

Slide 10

Slide 10 text


 
 Developer Community AWS Lambda PHP PHP 
 PHPer 
 Bref Serverless Framework 10 service: app-php-serverless provider: name: aws region: ap-northeast- 1 plugins: - ./vendor/bref/bref functions: api: handler: index.php description: '' runtime: php- 8 2 -fpm timeout: 28 events: - httpApi: '*' # Exclude files from deployment package: patterns: - '!node_modules/**' - '!tests/**' $ composer require bref/bref $ vendor/bin/bref init $ serverless deploy

Slide 11

Slide 11 text

11 Bref AWS Lambda API Gateway 
 
 Bref API Gateway AWS Lambda Bref Laravel Bridge Laravel Bref Lambda

Slide 12

Slide 12 text

Laravel Bref 12 Laravel Bref PHP 
 AWS Lambda PHP AWS Lambda AWS Lambda Laravel PHPer

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

AWS Lambda 14 Lambda 
 Lambda 
 VPC ⾒ Lambda VPC VPC Lambda 
 Lambda SecretManager 
 AWS CloudWatch Logs CloudWatch Metrics Lambda

Slide 15

Slide 15 text

Lambda Amazon Web Services Operating Lambda: Part 3 -Lambda - - - - - - Laravel - Laravel 15 URL:https://aws.amazon.com/jp/blogs/news/compute-operating-lambda-anti-patterns-in-event-driven-architectures-part- 3 / Operating Lambda: Part 3

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Point

Slide 18

Slide 18 text

03 


Slide 19

Slide 19 text

PHP Ruby AWS AWS Lambda Web Web - PHP Laravel CakePHP - Ruby Ruby on Rails 19

Slide 20

Slide 20 text

Python 
 API EC 2 API API Gateway -> Lambda -> S 3 Json EC 2 cron 20 Python Python -> Go

Slide 21

Slide 21 text

AWS Amplify Web 
 ECR AWS Batch Step Functions AWS Amplify 21

Slide 22

Slide 22 text

Ruby AWS Lambda 22

Slide 23

Slide 23 text

Point

Slide 24

Slide 24 text

Laravel Laravel Laravel Web 24

Slide 25

Slide 25 text

PHP AWS Lambda PHP 2018 PHP Conference 201 9 AWS Lambda PHP 25

Slide 26

Slide 26 text

AWS Dev Day 2 022 AWS Dev Day 2 02 2 Amazon S 3 Select で バ https://speakerdeck.com/seike 460 /serverless-high-load-site-realized-with-amazon-s 3 -select 26

Slide 27

Slide 27 text

AWS Lambda x Bref x Laravel 27 
 - AWS Lambda - AWS S 3 Select - S 3 JSON SQL 
 PHP AWS Lambda Laravel

Slide 28

Slide 28 text

Web AWS Lambda AWS Lambda 28

Slide 29

Slide 29 text

Point AWS Lambda

Slide 30

Slide 30 text


 30

Slide 31

Slide 31 text


 
 31

Slide 32

Slide 32 text

AWS ⾒ 
 AWS Lambda 32

Slide 33

Slide 33 text


 
 33

Slide 34

Slide 34 text

Laravel 34 Web AWS Lambda Laravel

Slide 35

Slide 35 text

Point

Slide 36

Slide 36 text

deploy PHP 36 Deploying bref-natural to stage dev (ap-northeast-1) ✔ Service deployed to stack bref-natural-dev (30s) endpoint: ANY - https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com functions: api: bref-natural-dev-api (260 kB) Want a better experience than the AWS console? Try out https://dashboard.bref.sh 30 260kB

Slide 37

Slide 37 text

deploy Laravel 37 Deploying bref-laravel to stage dev (ap-northeast-1) ✔ Service deployed to stack bref-laravel-dev (52s) endpoint: ANY - https://yyyyyyyyyy.execute-api.ap-northeast-1.amazonaws.com functions: web: bref-laravel-dev-web (32 MB) artisan: bref-laravel-dev-artisan (32 MB) Want a better experience than the AWS console? Try out https://dashboard.bref.sh 30 -> 52 260kB -> 3 2 M

Slide 38

Slide 38 text

[#/sec] PHP 38 $ ab -n 20000 -c 10 https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/ ~ Requests per second: 303.30 [#/sec] (mean) Requests per second: 349.55 [#/sec] (mean) Requests per second: 351.93 [#/sec] (mean) ~ EC 2 Apache Bench 351 . 93 [#/sec] 3

Slide 39

Slide 39 text

[#/sec] Laravel 39 $ ab -n 20000 -c 10 https://yyyyyyyyyy.execute-api.ap-northeast-1.amazonaws.com/ ~ Requests per second: 240.62 [#/sec] (mean) Requests per second: 244.52 [#/sec] (mean) Requests per second: 262.52 [#/sec] (mean) ~ EC 2 Apache Bench 351 . 93 [#/sec] -> 262 . 52 [#/sec] 3

Slide 40

Slide 40 text

40

Slide 41

Slide 41 text

Point Monolith First Serverless Development

Slide 42

Slide 42 text

Monolith First Serverless Development 42 URL : https://speakerdeck.com/_kensh/monolith-first-serverless-development?slide= 55 @_kensh Monolith First Serverless Development

Slide 43

Slide 43 text

Role APIGateway ⾒ 43 functions: web: handler: public/index.php runtime: php- 82 -fpm timeout: 28 events: - httpApi: '*' admin-web: handler: public/index.php runtime: php- 82 -fpm timeout: 28 role: api-admin-role events: - httpApi: method: '*' path: /admin $ serverless deploy function --function admin-web Deploying function admin-web to stage dev (ap-northeast- 1 ) ✔ Function code deployed ( 42 s) Function configuration did not change, and the update was skipped. If you made changes to the service configuration and expected them to be deployed, it most likely means that they can only be applied with a full service deployment. ( 42 s)

Slide 44

Slide 44 text

04

Slide 45

Slide 45 text

: : Laravel : : : AWS 45

Slide 46

Slide 46 text

: : Laravel : : : AWS 46

Slide 47

Slide 47 text

AWS Lambda x Bref x Laravel 47 Web 
 AWS Lambda PHP ⾒ 0 Laravel Laravel Laravel AWS ⾒

Slide 48

Slide 48 text

: : Laravel : : : AWS 48

Slide 49

Slide 49 text

49

Slide 50

Slide 50 text

50 Point 1 Point 2 Monolith First Serverless Development (@_kensh) or Point 3 Point 4

Slide 51

Slide 51 text

Thank You We are Hiring ! https://recruit.fusic.co.jp/