Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
サーバーレスピタゴラスイッチ
Aipa
May 29, 2020
Technology
0
22
サーバーレスピタゴラスイッチ
Aipa
May 29, 2020
Tweet
Share
More Decks by Aipa
See All by Aipa
pyconjp 2021 振り返り
commander_aipa
0
29
ジュラシック・アイパー 2022 怒りのデスフライト
commander_aipa
0
120
(せーのっ)「いますぐはじめるえむえるおぷす」
commander_aipa
0
130
Gitlab-RunnerからDockerコンテナを起動して テストする構成を用意した
commander_aipa
0
88
#club_家庭菜園_進捗報告LT
commander_aipa
0
40
BigQueryで金を溶かさない知識
commander_aipa
0
370
mlflowをwindowsで起動するのはめんどくさい
commander_aipa
0
660
ゾンビでわかる分類評価指標
commander_aipa
1
110
LT作成を手伝った話(愚痴)
commander_aipa
0
600
Other Decks in Technology
See All in Technology
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
200
ソフトバンクでのMECの取り組みについて
sbtechnight
0
310
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
oracle4engineer
PRO
0
170
Simplify Cloud Native Security with Trivy
knqyf263
0
530
eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF
tobachi
PRO
5
1.6k
DeepDive into Modern Development with AWS
mokocm
1
330
もうつまらないとは言わせない!「わかりやすい」プレゼンを作るために気をつけたいこと
torisoup
4
1.3k
ソフトバンクaPaaS領域への挑戦
sbtechnight
0
300
Power Automate for desktopで 配信環境を改善してみた話
akiika
0
220
セキュキャンを卒業してその後
kurochan
0
140
AutoMLを利用した機械学習モデル構築時に意識すること
sbtechnight
0
150
私のAWS愛を聞け! ~ここが好きだよStep Functions~ #devio2022
kongmingstrap
0
280
Featured
See All Featured
Become a Pro
speakerdeck
PRO
3
900
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
4 Signs Your Business is Dying
shpigford
169
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Bash Introduction
62gerente
598
210k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.3k
Testing 201, or: Great Expectations
jmmastey
21
5.5k
How to train your dragon (web standard)
notwaldorf
60
3.9k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Atom: Resistance is Futile
akmur
255
20k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
αʔόʔϨε ϐλΰϥεΠον ΞΠύʔୂˏϥϯνษڧձ
None
͏͚͝ʔʂ 63-͘Εʔ
-BNCEB%FTUJOBUJPOT 63-ˠ)5.-อଘ
-BNCEB5SJHHFS )5.-͔Β4DSBQ KTPOϑΝΠϧอଘ
-BNCEB5SJHHFS KTPOϑΝΠϧ͔Β NQMJOLऔಘ ˠμϯϩʔυ NQϑΝΠϧอଘ
-BNCEB5SJHHFS ಛྔ࡞ KTPOϑΝΠϧอଘ
-BNCEB5SJHHFS σʔλอଘ
-BNCEB5SJHHFS )5.-ςϯϓϨʔτऔಘ )5.-࡞ )5.-อଘ
4TUBUJDXFCTJUFIPTUJOH
αʔόʔϨε ϐλΰϥεΠον
ࠓͷͷछ ࣗͷษڧํ๏ • ຊΛಡΈͳ͕Β࣮ • αʔϏεΛ࡞Δʢ։ൃ͢Δʣ
AWSษڧ͢ΔͨΊʹɺ˓ϩαΠτ࡞Ζ͏ͱࢥͬͯ ࠓྲྀߦΓԿ͔ͳʁͬͯௐͨ݁Ռ IUUQTUXJUUFSDPNBTBHJSJKPFTUBUVT
ٹ͏ͧ
Ϟνϕʔγϣϯ
Ϟνϕʔγϣϯ • AWSͷࢼݧʹ߹֨͢ΔͨΊʹษڧ͍ͨ͠ • AWSΛษڧ͢ΔͨΊʹɺͰ͖Δ͚ͩ։ൃͤͣ AWSͷαʔϏεΛར༻ͯ͠αʔϏεల։Ͱ͖ ΔΑ͏ʹ͢Δ • AVۀքΛٹ͏
2019/12/21 AWS ιϦϡʔγϣϯ ΞʔΩςΫτ ΞιγΤΠτɹ߹֨
Ϟνϕʔγϣϯ͕ݮΔ • AWSͷࢼݧʹ߹֨͢ΔͨΊʹษڧ͍ͨ͠ • AWSΛษڧ͢ΔͨΊʹɺͰ͖Δ͚ͩ։ൃͤͣ AWSͷαʔϏεΛར༻ͯ͠αʔϏεల։Ͱ͖ ΔΑ͏ʹ͢Δ • AVۀքΛٹ͏
ٹ͏ͧ ʁʁʁ
ຊฤ
͢͜ͱ • ࡞ͬͨͷͰͦΕͰֶΜͩ͜ͱΛڞ༗͠·͢ • ϝΠϯLambda
Lambdaͷ
Lambdaͱʁ • αʔόͷ༻ҙɾཧͤͣͱίʔυ͚ͩొ͢Ε࣮ߦͰ͖Δ ίϯϐϡʔςΟϯάαʔϏε • APIͷΑ͏ʹୟ͖͍ͨͳΒAPI GatewayͱηοτͰར༻ɺόονॲཧͷ Α͏ʹͱ͋Δ࣌ؒʹ࣮ߦ͍ͨ͠ͱ͔ͳΒCloud Watch EventsͰ࣮ߦ
etc… • ͍ͬͦ҆͘ʢ࣍ϖʔδʣ • 1,000,000݅/݄ͷϦΫΤετແྉ • 400,000GBඵ/݄·Ͱແྉʢ࣌ؒʹ͢Δͱ1ʣ
Lambda ྉۚ • ؔʹ 512 MB ͷϝϞϦΛׂΓͯɺ3,000,000 ճ࣮ߦ͠ɺຖճͷ࣮ߦ͕࣌ؒ 1 ඵؒͩͬͨ
߹ • ߹ܭྉۚɿίϯϐϡʔςΟϯάྉۚ ʴ ϦΫΤετྉۚ → 18.34 USD ʴ 0.40 USD = 18.74 USD/݄ → 2000ԁ • ίϯϐϡʔςΟϯάྉۚɿ3,000,000 × 512 MB ÷ 1024 → 1,500,000 - 400,000 GB-ඵ (ແྉ) → 1,100,000 GB-ඵ × 0.00001667 USD → 18.34 USD • ϦΫΤετྉۚɿ3,000,000 - 1,000,000(ແྉ) → 2,000,000 × 0.2 USD ÷ 1,000,000 → 0.40 USD
ͭ·Γʁʁʁ
Lambda Functionઃఆը໘ ؔͷςετ -BNCEB5SJHHFS -BNCEB%FTUJOBUJPOT
Lambda Functionઃఆը໘ ͍ΖΜͳݴޠαϙʔτ
Lambda Functionઃఆը໘ ࠷େͰ(#ͷϝϞϦΛ ༩͑Δ͜ͱ͕Մೳ
LambdaͷؔΞοϓϩʔυ • ίʔυΛΠϯϥΠϯͰฤू • ։ൃͨ͠ίʔυΛίϐϖ͢Δ͔ɺLambda্Ͱ ։ൃ͢Δ
LambdaͷؔΞοϓϩʔυ • zipʹͯ͠Ξοϓϩʔυ • ॻ͍ͯ͋Δͱ͓Γ10MBͷ੍ݶ͕͋Δ Ҿ͔͔ͬΔͳΒS3Λར༻͢ΕΑ͍
LambdaͷؔΞοϓϩʔυ • CIͰΔͳΒGitϦϙδτϦ͔ΒCodeBuild͠ ͯCloudformationCodeDeployΛͬͯσ ϓϩΠํ๏͋Γ·͢ɻͥͻௐͯΈͯͶ
LambdaͷؔΞοϓϩʔυ
Lambdaͷ੍ݶ • ؔλΠϜΞτ 15ʢ900ඵʣ • ༻Ͱ͖ΔLambdaϨΠϠʔͷʢ5ʣ • σϓϩΠͰ͖ΔzipαΠζʢ50MBʣ • ղౚޙʁ
ʢ250MBʣ
Lambda Application • αʔόʔϨεΞϓϦέʔγϣϯΛ࡞Ͱ͖Δ • ۩ମతʹLambdaؔɺTriggerͱ͔ͷ Έ߹Θͤɺ·ͨίʔυϏϧυɾσϓϩΠͳ Ͳͻͱ·ͱΊʹͨ͠ͷ • ςϯϓϨʔτ͕͍͔ͭ͘༻ҙ͞Ε͍ͯΔ
Lambda Application
আΊΜͲ͍ खಈআ
Lambda Layer • ෳLambdaؔؒͰϥΠϒϥϦΛڞ௨ԽͰ͖Δػೳ • Lambda1ɺLambda2ͷؔͰ༻͢ΔϥΠϒϥϦA ͕͋ͬͨ߹ɺ1ͱ2ͲͪΒʹύοέʔδϯάͯ͠σ ϓϩΠ͢Δඞཁ͕͋ͬͨ • ͭ·ΓΊΜͲ͍͘͞
• ↑Λղܾ͢Δͷ͕Lambda Layer
Lambda Layer
Lambda Trigger • LambdaΛݺͼग़ͨ͢ΊͷԿ͔
Lambda Trigger • ΊͬͪΌ͋Δ • ࠓճར༻ͨ͠ͷS3ͱCloudWatch Events
Lambda Trigger Cloud Watch Events • cronΈ͍ͨͳ͜ͱ͕Ͱ͖Δ • ϑΥʔϚοτcronͱRateͱݺΕΔԿ͔͕͋Δ •
ྫʣcronͷ߹: ຖޕલ 10:15 (UTC) → cron(15 10 * * ? *) • ଞʹϧʔϧλΠϓͰΠϕϯτύλʔϯ ʢEC2ͷεςʔλεมԽʣΛTriggerʹ͢Δ͜ͱ͕Ͱ͖Δ
Lambda Trigger Cloud Watch Events
Lambda Trigger S3 • S3όέοτʹର͠ɺΦϒδΣΫτ࡞আͷΠϕϯτͰTriggerʹ͢Δ͜ͱ ͕Մೳ
Lambda Trigger S3
Lambda Trigger S3 (MBDJFSͷΠϕϯτ 5SJHHFSͷର
Lambda Destinations • Lambdaͷ࣮ߦ݁ՌʹΑͬͯɺ࣍ͷΞΫγϣϯΛࢦఆ͢Δػೳ • 2019/11/25͙Β͍ʹൃද • Lambdaͷ࣮ߦ͕ޭɾࣦഊͰॲཧઌΛมߋͰ͖Δ • Lambda,SNS,SQS,EventBridge(?)ΛબͰ͖Δ
• ҙͱͯ͠LambdaͷςετͰಈ͔ͳ͍ͷͰɺԿ͔ TriggerΛsetͯ͠ςετ͍ͯͩ͘͠͞ʢϋϚϦϙΠϯτʣ
Lambda Destinations
Lambda Destinations ૹ৴ઌͷ-BNCEBͷ "3/Λೖྗ
LambdaͰΫϩʔϥʔ • μϯϩʔυॲཧͱεΫϨΠϓॲཧΛ • εΫϨΠϓॲཧͰࣦഊͯ͠μϯϩʔυ ͠͞ͳͯ͘ྑ͍ʢෛՙΛ༩͑ͳ͍େࣄʣ XFC͔ΒIUNMΛμϯϩʔυ T͔ΒIUNMμϯϩʔυ IUNMΛอଘ
S3 static website hosting • S3ΛWebαΠτͱͯ͠ެ։Ͱ͖Δػೳ • ੩తͳϦιʔεͳΒEC2ৗ࣌ىಈͰͳ͘ S3ͷ΄͏͕ίεύ࠷ߴ •
ͪΖΜRoute53ΛͬͯಠࣗυϝΠϯΛ ༻͢Δ͜ͱՄೳ
S3 ϥΠϑαΠΫϧϙϦγʔ • Lambda͕ಈ࡞͢ΔதͰॲཧ͢Δதؒσʔλ Γଓ͚ΔˠϦιʔε͏ͷͰ՝ۚ͞ΕΔ • ͍ͬͨͳ͍͕আΊΜͲ͍ →ઃఆͰ͖Δ
S3 ϥΠϑαΠΫϧϙϦγʔ
S3 ϥΠϑαΠΫϧϙϦγʔ
S3 ϥΠϑαΠΫϧϙϦγʔ
ࡶײ
ࡶײ • Lambdaϐλΰϥྑ͍ • αΠζ৺͚ͩͬͨͲOpenCVಈ͍͓ͨ • ࿈ܞ෦։ൃͤͣͱಈ͘ͷͰྑ͍
ࠓޙ
ࠓޙ • σϓϩΠ͕ͩΔ͍ • LambdaͷΈ߹ΘͤɺS3ͷΠϕϯτઃఆɺϒϥβ͔Βϙν ϙνͰ͖Δ͚ͲԿճΔͷΊΜͲ͍ • CodePipelineͰࣗಈσϓϩΠʹ͍ͨ͠ • GitHub,
CodeBuild, CloudFormationΛΈ߹ΘͤΔ • ΤϥʔϋϯυϦϯά͍ͨ͠ • Ͳ͔͜ͷॲཧͰϛεͬͨΒSNSͰϝʔϧ or ॲཧΛϦτϥΠ