Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Lambda PHPのProduction利用を続ける僕がAWS App Runne...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shiro seike
PRO
March 23, 2023
Technology
2.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Lambda PHPのProduction利用を続ける僕がAWS App Runnerの可能性を探る
PHPerKaigi 2023
https://phperkaigi.jp/2023/
shiro seike
PRO
March 23, 2023
More Decks by shiro seike
See All by shiro seike
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
320
Architecture as SteeringOn-Ramp to AI-DLC
seike460
PRO
0
30
Why Continue AWS Community Builders
seike460
PRO
0
75
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
190
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
290
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
1.7k
今さら聞けないサーバーレスのいいところ 〜運用から解放される世界を目指して〜 / The Benefits of Serverless You Might Be Too Embarrassed to Ask About Now — Aiming for a World Free from Operational Burdens
seike460
PRO
0
110
AWS Lambda Durable Functions のユースケースを探る / Exploring Use Cases for AWS Lambda Durable Functions
seike460
PRO
0
99
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
540
Other Decks in Technology
See All in Technology
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
920
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
1
100
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
140
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
180
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
160
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.1k
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
330
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
110
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.5k
KiCAD講習会②
tutcreators
0
100
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
440
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
Facilitating Awesome Meetings
lara
57
7k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
170
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Scaling GitHub
holman
464
140k
Side Projects
sachag
455
43k
The Spectacular Lies of Maps
axbom
PRO
1
850
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
210
How to train your dragon (web standard)
notwaldorf
97
6.7k
Technical Leadership for Architectural Decision Making
baasie
3
440
Transcript
AWS Lambda PHP Production AWS App Runner PHPerKaigi 2 0
23 2 0 23 . 3 . 25 @seike 4 60 1
@seike 460 - - @seike 46 0 - Fusic -
/ - / / - - PHP ( ) - PHPerKaigi( 201 9 2 0 2 3 ) - AWS - - 2023 6 24 PHP 2023 2
Agenda 1 . AWS Lambda PHP 2 . AWS App
Runner 3 . AWS App Runner PHP 8 . 1 4 . AWS Lambda PHP AWS App Runner 5 . 3
01 AWS Lambda PHP
AWS Lambda - AWS - - 5
AWS Lambda PHP PHP AWS PHP 6 AWS Lambda PHP
OSS Project Bref PHP Laravel Symfony
Amazon S 3 Select で バ 7
02 AWS App Runner
AWS App Runner っ VPC ELB Fargate CodeBuild CD
App Runnner っ っ AWS App Runner っ Docker Docker ECR Python Node.js Ruby Java .NET 9
AWS App Runner PHP 8 . 1 PHP 8 .
1 AWS App Runner PHP 10
- Amazon VPC - Elastic Load Balancing - AWS App
Runner - CodeBuild GitHub - Amazon CloudWatch Logs AWS VPC https ELB <-> App Runner 11
Route 5 3 https://XxxxxxxxxX.ap-northeast- 1 .awsapprunner.com SSL 12
RDS Cache AWS Secrets Manager Web Cron RDB
VPC Amazon RDS Cache Redis Amazon ElastiCache API AWS Secrets Manager 13
AWS WAF Public 14 AWS WAF IP
http->https
GitHub 15
03 AWS App Runner PHP 8 . 1
-> Example 17 command: php -S 0 . 0 .
0 . 0 : 8 0 80 -t . Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y
18 Nextat (@n_ 12 15 ) AWS App Runner
PHP Apache + PHP-FPM https://nextat.co.jp/staff/archives/ 3 03
335 83 8 599 203 .dkr.ecr.ap-northeast- 1 .amazonaws.com/awsfusionruntime-php 81 :
8 . 1 . 1 4 19
command っcommand nginx httpd 20
command っpre-build っbuild っpost-build build command $
for x in ${PATH//:/ }; do ls - 1 $x; done | sort | uniq apache 2 httpd nginx yum command Install 21
22
3 17 1 23 🎉
24 nginx(https) php-fpm Startup.sh wait DocumentRoot /app/public index.php
Framework Laravel
25 .env PHP URL Git Clone URL https://github.com/seike
4 60 /laravel-lambda-app-runner
supervisord 26 Example Supervisord Supervisord build
27 ΧελϚΠζͷՄೳੑ͋Γͦ͏ ▪php-fpm include=/etc/php-fpm.d/*.conf ▪nginx include /etc/nginx/default.d/*.conf ▪httpd IncludeOptional conf.d/*.conf
→/etc/httpd/conf.d
04 AWS Lambda PHP X AWS App Runner PHP
Pickup
30 t3.medium
AWS Lambda 1 0 0 Client 10 0 Request 31
っ 100 Client 1 00 Request Requests per second: 2 6 . 89 [#/sec] (mean) This is ApacheBench, Version 2 . 3 <$Revision: 1 90 3 6 18 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com (be patient).....done Server Software: Server Hostname: XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com Server Port: 44 3 SSL/TLS Protocol: TLSv 1 . 2 ,ECDHE-RSA-AES 1 2 8 -GCM-SHA 2 56 , 20 4 8 , 12 8 Server Temp Key: ECDH P- 25 6 2 56 bits TLS Server Name: XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com Document Path: / Document Length: 2 7 49 6 bytes Concurrency Level: 10 0 Time taken for tests: 3 . 7 1 8 seconds Complete requests: 1 0 0 Failed requests: 0 Total transferred: 29 51 0 00 bytes HTML transferred: 274 9 6 0 0 bytes Requests per second: 2 6 . 89 [#/sec] (mean) Time per request: 371 8 . 1 86 [ms] (mean) Time per request: 37 . 18 2 [ms] (mean, across all concurrent requests) Transfer rate: 77 5 . 07 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 6 1 6 9 2 4 . 5 163 19 4 Processing: 36 1 2 60 5 12 . 0 14 63 1999 Waiting: 36 1 2 5 7 51 0 . 9 1 462 1 8 03 Total: 195 142 9 51 6 . 0 1640 20 05 Percentage of the requests served within a certain time (ms) 5 0 % 1640 6 6 % 1658 7 5 % 1680 8 0 % 1695 9 0 % 1723 9 5 % 1744 9 8 % 1907 9 9 % 2005 1 00 % 2 0 05 (longest request)
AWS App Runner 1 0 0 Client 10 0 Request
32 This is ApacheBench, Version 2 . 3 <$Revision: 1 90 3 6 18 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com (be patient).....done Server Software: envoy Server Hostname: YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com Server Port: 44 3 SSL/TLS Protocol: TLSv 1 . 2 ,ECDHE-RSA-AES 1 2 8 -GCM-SHA 2 56 , 20 4 8 , 12 8 Server Temp Key: ECDH P- 25 6 2 56 bits TLS Server Name: YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com Document Path: / Document Length: 2 7 49 6 bytes Concurrency Level: 10 0 Time taken for tests: 2 . 5 6 7 seconds Complete requests: 1 0 0 Failed requests: 0 Total transferred: 28 62 1 36 bytes HTML transferred: 274 9 6 0 0 bytes Requests per second: 3 8 . 96 [#/sec] (mean) Time per request: 256 7 . 0 16 [ms] (mean) Time per request: 25 . 67 0 [ms] (mean, across all concurrent requests) Transfer rate: 10 88 . 83 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 2 4 1 9 9 35 . 4 20 6 2 19 Processing: 1012 18 8 3 3 35 . 4 20 0 5 230 3 Waiting: 16 78 1 372 . 9 902 130 5 Total: 1 047 2 0 82 35 6 . 8 2210 2 5 14 Percentage of the requests served within a certain time (ms) 5 0 % 2210 6 6 % 2218 7 5 % 2311 8 0 % 2328 9 0 % 2418 9 5 % 2506 9 8 % 2509 9 9 % 2514 1 00 % 2 5 14 (longest request) っ 100 Client 1 00 Request Requests per second: 3 8 . 96 [#/sec] (mean) CPU AWS App Runnner
AWS Lambda 1 0 0 0 Client 1 0 000
Request 33 っ 100 0 Client 10000 Request Failed requests: 0 RPS 540 560 580 This is ApacheBench, Version 2 . 3 <$Revision: 1 903 6 18 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com (be patient) Completed 100 0 requests … Completed 100 0 0 requests Finished 1 0 0 0 0 requests Server Software: Server Hostname: XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com Server Port: 44 3 SSL/TLS Protocol: TLSv 1 . 2 ,ECDHE-RSA-AES 1 2 8 -GCM-SHA 2 5 6 , 2 0 4 8 , 1 28 Server Temp Key: ECDH P- 2 56 2 5 6 bits TLS Server Name: XxxxxxxxX.execute-api.ap-northeast- 1 .amazonaws.com Document Path: / Document Length: 27 496 bytes Concurrency Level: 1 0 0 0 Time taken for tests: 1 7 . 814 seconds Complete requests: 1 0 000 Failed requests: 0 Total transferred: 295 1 0 0 0 0 0 bytes HTML transferred: 27496 0 00 0 bytes Requests per second: 5 6 1 . 3 5 [#/sec] (mean) Time per request: 17 81 . 4 3 0 [ms] (mean) Time per request: 1 . 781 [ms] (mean, across all concurrent requests) Transfer rate: 1 6 17 7 . 0 9 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 0 1000 3 01 . 5 103 2 1 7 4 0 Processing: 1 26 66 2 2 85 . 4 61 1 1 80 7 Waiting: 3 0 2 5 6 1 55 . 3 227 12 03 Total: 9 9 1 16 6 3 193 . 7 1 6 03 3 2 0 1 Percentage of the requests served within a certain time (ms) 5 0 % 1 60 3 6 6 % 1 66 4 7 5 % 1 72 6 8 0 % 1 75 0 9 0 % 1 89 0 9 5 % 2 05 4 9 8 % 2 25 2 9 9 % 2 29 5 100 % 3 2 0 1 (longest request)
AWS App Runner 1 0 00 Client 1 00 0
0 Request 34 This is ApacheBench, Version 2 . 3 <$Revision: 1 903 6 18 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com (be patient) Completed 100 0 requests … Completed 100 0 0 requests Finished 1 0 0 0 0 requests Server Software: envoy Server Hostname: YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com Server Port: 44 3 SSL/TLS Protocol: TLSv 1 . 2 ,ECDHE-RSA-AES 1 2 8 -GCM-SHA 2 5 6 , 2 0 4 8 , 1 28 Server Temp Key: ECDH P- 2 56 2 5 6 bits TLS Server Name: YyyyyyyyyY.ap-northeast- 1 .awsapprunner.com Document Path: / Document Length: 27 496 bytes Concurrency Level: 1 0 0 0 Time taken for tests: 5 2 . 278 seconds Complete requests: 1 0 000 Failed requests: 1 84 5 (Connect: 0 , Receive: 0 , Length: 1 8 4 5 , Exceptions: 0 ) Non- 2 xx responses: 1 8 4 5 Total transferred: 233 8 9 7 6 8 0 bytes HTML transferred: 22431 4 89 7 bytes Requests per second: 1 9 1 . 2 8 [#/sec] (mean) Time per request: 52 27 . 8 1 6 [ms] (mean) Time per request: 5 . 228 [ms] (mean, across all concurrent requests) Transfer rate: 4 3 69 . 2 4 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 8 2 2 2 5 3 8 . 9 1 4 1 8 5 2 Processing: 1 002 41 7 2 2 7 5 5 . 8 3 4 8 4 24 1 1 7 Waiting: 3 22 6 8 1 50 7 . 8 2308 1 8 1 10 Total: 101 1 4395 274 6 . 8 3 69 1 2 4 13 1 Percentage of the requests served within a certain time (ms) 5 0 % 3 69 1 6 6 % 4 29 1 7 5 % 4 81 2 8 0 % 6 38 0 9 0 % 8 81 5 9 5 % 9 32 8 9 8 % 9 79 1 9 9 % 1 2 9 4 4 100 % 2 41 3 1 (longest request) っ 100 0 Client 10000 Request 200 Failed requests 1845 Failed requests 0 280 320 AWS Lambda
35 - AWS Lambda AWS App Runner × Bref
り り FaaS PayLoad 6 MB × Web cron み り 1-2 み り $13 AWS み
AWS App Runner PHP 36
05
38 AWS App Runnner Web Point 1 PHP 8 .
1 Point 2 PHP Point 3 OSS Point 4
Thank You We are Hiring ! https://recruit.fusic.co.jp/