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
LambdaカスタムランタイムでPHPでもサーバーレス!
Search
taiko19xx
July 19, 2019
Technology
0
76
Lambdaカスタムランタイムで PHPでもサーバーレス!
taiko19xx
July 19, 2019
Tweet
Share
More Decks by taiko19xx
See All by taiko19xx
Bedrockで遊ぼう! 短期間で色々開発してみた
taiko19xx
1
130
Incident Managerでインシデント発生時のエスカレーションを自動化する
taiko19xx
0
240
IoTっぽいアプリをk3s+Raspberry Piで実行する
taiko19xx
0
330
ハニーポットから見たWebサーバへの攻撃
taiko19xx
0
2.8k
PHPなプロダクトをAmazon ECSで開発運用してる話
taiko19xx
0
1.2k
RaspberryPi+AWSでIoT(っぽ い)GPSロガーを作ってみた
taiko19xx
0
1.5k
PHPからWin32APIをいじってみた
taiko19xx
0
1.7k
Other Decks in Technology
See All in Technology
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
370
Javalinの紹介
notoh
0
100
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
2.1k
What's new in OpenShift 4.19
redhatlivestreaming
1
220
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1k
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
0
130
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.1k
AIコーディング新時代を生き残るための試行錯誤 / AI Coding Survival Guide
tomohisa
9
12k
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
180
doda開発 生成AI元年宣言!自家製AIエージェントから始める生産性改革 / doda Development Declaration of the First Year of Generated AI! Productivity Reforms Starting with Home-grown AI Agents
techtekt
0
130
vLLM meetup Tokyo
jpishikawa
1
200
Securing your Lambda 101
chillzprezi
0
250
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
How STYLIGHT went responsive
nonsquared
100
5.6k
How to Ace a Technical Interview
jacobian
276
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
Making Projects Easy
brettharned
116
6.2k
Optimizing for Happiness
mojombo
379
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Documentation Writing (for coders)
carmenintech
71
4.9k
Designing for Performance
lara
609
69k
For a Future-Friendly Web
brad_frost
179
9.8k
Transcript
Lambdaカスタムランタイムで PHPでもサーバーレス︕ JAWS-UG TOHOKU フリーテーマでAWSを語る会@2019/07/19 @taiko19xx / ⽊村 俊彦
いきなりですが Lambda好きな⽅︖
PHP好きな⽅︖
今⽇は LambdaとPHPを組み合わせて 使おうという話です
もくじ • Lambdaのおさらい • Lambdaカスタムランタイムについて • カスタムランタイムの構築について • ローカル実⾏について •
まとめ
Lambdaのおさらい • とても便利で使いやすいサーバーレス実⾏環境 • 実⾏できる⾔語(ランタイム)に限りがあるのが難点・・・︖ • Node.js/Python/Ruby/Java/Go • .NET Core利⽤のC#/PowerShell
• 少しずつ増えてきている • 書き慣れていない⾔語で書く場合は学習コストがかかる • Lambdaカスタムランタイムで解決できるかも︖
Lambdaカスタムランタイムとは • Lambda関数を好きな⾔語で実⾏できる • Linux(Amazon Linux/Amazon Linux 2)で実⾏できるものなら実⾏可 • 使い勝⼿は普通のLambda関数と同様
• X-Rayとかも使える • https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes- custom.html
カスタムランタイムの動作の流れ • ランタイム設定が「provided」に設定されている必要がある • 関数を実⾏すると「bootstrap」のファイルが実⾏される • 「$ ./bootstrap」 的な感じで実⾏されるイメージ •
ファイルが無いとエラー • bootstrap内で各種バイナリを呼び出したり実⾏する • ハンドラの名前や各種設定は環境変数で渡される
カスタムランタイムの構築
実⾏環境の作成 • 実⾏バイナリやライブラリをzipで固めなければならない • かつ、Amazon Linux上でコンパイルされている必要がある • 取得する⼿段 • EC2インスタンスで取得
• インスタンスを⽴ち上げる必要がある • Amazon LinuxのDockerコンテナを起動して取得 • ローカルで完結 • Dockerを実⾏できる環境が必要 • Dockerの知識も必要
None
None
None
None
実⾏環境のデプロイ • 関数スクリプトと共にデプロイ • ⼀緒にデプロイできるので楽 • 実⾏環境に変更がある度にデプロイする必要がある • Layerとしてデプロイ •
スクリプトパッケージサイズが⼩さくできる
Layerとは • 既存のコードとは別に、追加のコードやコンテンツをアーカイブとし て設定できるもの • 1つの関数に最⼤5つ設定できる • 関数と、関数に設定したLayerが全てマージされた上で実⾏されると いうイメージ •
メリット • 関数のデプロイパッケージを⼩さくする事ができる • 複数の関数間でライブラリを共有できる • https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration- layers.html
ローカルで実⾏
カスタムランタイムをローカルで実⾏ • もちろん可能 • AWS CLIとSAM CLIが必要 • Dockerも必要 •
LambdaのDockerイメージを利⽤して実⾏するため • Layerを設定している場合は、実⾏時にAWSからダウンロードして くる • Windows 10+Docker DesktopだとSAM CLIのバグがあり動かない • https://github.com/awslabs/aws-sam-cli/issues/1014
SAM(Serverless Application Model)とは • AWS上でサーバーレスアプリケーションを構築するためのフレー ムワーク • CloudFormationを拡張したYAML/JSONで記述 • 関数の作成に加え、API
Gateway/DynamoDBの設定も簡単にできる • 複雑な設定をする場合は結局CloudFormationっぽくなってしまう
DEMO
まとめ • 良いところ • 使い慣れた⾔語で関数を記述できる • ≒メンテナンスが楽になる • 悪いところ •
環境構築が少し⼤変 • Lambda以外の知識がそれなりに必要 • DockerとかLinuxとか
⾃⼰紹介 • ⽊村俊彦(@taiko19xx) • 株式会社SRIA 制作部 リーダー • PHP/Node.jsを使ったバックエンド構築 •
AWS/Azure/GCPの設計構築 • 技術同⼈誌サークル「杜の都の開発室」主宰 • 技術書典で2冊本を出しています • 次も出す予定
ありがとうございました