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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
520
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
370
Architecture as SteeringOn-Ramp to AI-DLC
seike460
PRO
0
40
Why Continue AWS Community Builders
seike460
PRO
0
80
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
190
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
300
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
1.9k
今さら聞けないサーバーレスのいいところ 〜運用から解放される世界を目指して〜 / 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
100
Other Decks in Technology
See All in Technology
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
120
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
130
タクシーアプリ『GO』の実践的データ活用〜位置情報データの収集とStreamlitでの可視化〜
mot_techtalk
2
190
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
190
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
3
280
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1.2k
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
200
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
300
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
270
Retriever と Reranker、結局どうする?
kazuaki
2
610
AIが自社のTableauを操作する世界へ:Tableau MCP超入門
tbtykk
0
110
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
110
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Are puppies a ranking factor?
jonoalderson
1
3.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Accessibility Awareness
sabderemane
1
170
Marketing to machines
jonoalderson
1
5.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
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/