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
ここが辛いよサーバーレス だが私は乗り越えた #builderscon
Search
Mitsuki Ogasahara
August 05, 2017
Technology
14
7.7k
ここが辛いよサーバーレス だが私は乗り越えた #builderscon
Mitsuki Ogasahara
August 05, 2017
Tweet
Share
More Decks by Mitsuki Ogasahara
See All by Mitsuki Ogasahara
コスト管理から向き合う技術的負債 / Accounting for Technical Debt Through Cost Management
yamitzky
0
9
Utility-first な CSS-in-JS 〜Tailwind CSS と Chakra UI を添えて〜 / Utility-First CSS-in-JS
yamitzky
5
1.4k
今から始める型安全 Python / Start Python Type Hints
yamitzky
13
4.8k
技術が好きで好きで好きでたまらないエンジニアが「取締役」になって思う、マネジメントキャリアパス / My Manager's Path
yamitzky
2
990
Python 3.9 時代の型安全な Pythonの極め方 / Mastering Type Safety in Python 3.9 Era
yamitzky
35
29k
なぜサーバーレスとDockerなのか 〜 インフラ運用を最小化するサービス開発 〜 / Why We Choose Serverless AND Docker
yamitzky
0
3.9k
サーバーレスを活用して少数精鋭で開発するニュースアプリ #devsumi
yamitzky
4
2.9k
会社の開発合宿で Electron-vueで Slackクライアント作ってみた
yamitzky
0
2.6k
GitLabのSlack連携を魔改造して作る開発を楽しくする仕組み
yamitzky
1
2.6k
Other Decks in Technology
See All in Technology
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
260
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
360
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
960
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7.1k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
240
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
130
Classmethod AI Talks(CATs) #17 司会進行スライド(2025.02.19) / classmethod-ai-talks-aka-cats_moderator-slides_vol17_2025-02-19
shinyaa31
0
120
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
730
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
800
分解して理解する Aspire
nenonaninu
1
110
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Docker and Python
trallard
44
3.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
GraphQLとの向き合い方2022年版
quramy
44
13k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
For a Future-Friendly Web
brad_frost
176
9.5k
Become a Pro
speakerdeck
PRO
26
5.1k
Agile that works and the tools we love
rasmusluckow
328
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Visualization
eitanlees
146
15k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Cult of Friendly URLs
andyhume
78
6.2k
Transcript
͕͜͜ਏ͍ΑαʔόʔϨε ͕ͩࢲΓӽ͑ͨ খּݪΈ͖ͭ / @yamitzky
wಋೖ wlαʔόʔϨεzͷશମਤ w+9௨৴ࣾͷαʔόʔϨεϩάج൫ͷྫ wΓӽ͑ͨฤ w͕͜͜ਏ͍Αຊ൪ͱͷࠩ w͕͜͜ਏ͍ΑϚωʔδυ wਅʹΓӽ͑ΔαʔόʔϨε ࣍
wখּݪΈ͖ͭ!ZBNJU[LZ wใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶश ΤϯδχΞ ࣗݾհ
wখּݪΈ͖ͭ!ZBNJU[LZ wใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶश ΤϯδχΞ w48 ࣗݾհ
ಋೖฤ
ࠓ͢lαʔόʔϨεzͷఆٛ
ࠓ͢lαʔόʔϨεzͷఆٛ
ࠓ͢lαʔόʔϨεzͷఆٛ wશମΛؚΊͨʹ͍ͨ͠
wϩάج൫"1*ͳͲͰ΄ͲαʔόʔϨε Λ׆༻ +9௨৴ࣾͷʮαʔόʔϨεϩάج൫ʯ
wैདྷͷΞϓϦέʔγϣϯʹൺͯɺ ΠϯϑϥʗϦιʔεʹର͢Δؔ৺͕গͳ͘ࡁΉ wϦΫΤετ࣌ʹ͚ͩϦιʔεΛ֬อ͢Εྑ͍ ͷͰɺ҆͘ͳΔ͕͋Δ wϚωʔδυΛΈ߹ΘͤͯΞϓϦέʔγϣϯΛ ΈཱͯΔ αʔόʔϨεͷಛ
αʔόʔϨεWTαʔόʔϨε͡Όͳ͍ ඇαʔόʔϨεࣄલʹܭࢉϦιʔεΛ֬อ͠ɺϓϩηεΛ্ཱ͓ͪ͛ͯ͘ αʔόʔϨεܭࢉϦιʔε֬อͤͣɺ ཁٻ͕དྷͨΒϓϩηεΛ্ཱͪ͛ɺϦιʔεΛ֬อ͠ɺ͙͢ʹϓϩηε͕ࢮ͵ $MVTUFS
ϩʔΧϧڥͱຊ൪ڥ͕ ҧͬͯਏ͍ ͕ͩࢲΓӽ͑ͨ
ྫ.BDͰֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ ·ͣিಥ͢Δ $ pip install numpy
σϓϩΠ͢Δͱى͜Δ͜ͱ
None
ྫ.BDͰֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ ·ͣিಥ͢Δ $ pip install numpy ͢Ͱʹμϝ
w'BB4ී௨-JOVYͰ࡞ΒΕ͍ͯΔ wOVNQZlίϯύΠϧz͕ඞཁͳϥΠϒϥϦ wίϯύΠϧ͕ඞཁͳͷΛ.BD8JOEPXT Ͱ࡞ͬͯ-JOVYͰಈ͔ͳ͍ ͳͥμϝͳͷ͔
w.BD্Ͱ-JOVYΛಈ͔ͤΔͷ͕͋Δ Ͳ͏͢Ε͍͍͔
wΞϓϦέʔγϣϯ%PDLFS্Ͱ࡞Γɺ ੜAEPDLFSDQAͯ͠σϓϩΠ w"QFYTFSWFSMFTTͳͲͷσϓϩΠπʔϧΛ ͏ͱΑΓྑ͍ %PDLFSΛͬͨlαʔόʔϨεޓz։ൃ docker-compose.yml
w$3VTU(PͳͲͷίϯύΠϧͨ͠ όΠφϦͰɺ-BNCEB্Ͱಈ͔ͤΔ wཁ͢Δʹ-JOVY্ͰΔͷ͕େࣄ ͜Ε͕Ͱ͖Δͱɻɻɻ
wlαʔόʔϨεzϚωʔδυΛΈ߹ΘͤΔ ຊ൪ͱϩʔΧϧͷࠩ1BSU̎
wαʔόʔϨεͰॏ׆༻͢Δl4zl%ZOBNP%#z ͳͲ044Ͱͳ͍ wˠ$*ϩʔΧϧ։ൃͰࠔΔ Ϛωʔδυͷ
ϚωʔδυΛϩʔΧϧ։ൃͰ͏ͳΒ ݁γϛϡϨʔγϣϯͨ͠044Λ͏
wϚωʔδυl͍͍ͩͨzγϛϡϨʔγϣϯͰ ͖ΔϓϩμΫτ͕ଘࡏ͢Δ w%ZOBNP%#-PDBMɺGBLFTɺFUDʜ ϚωʔδυͷγϛϡϨʔγϣϯ044
w%ZOBNP%#Λຊ൪Ͱ͏ͷͱಉ͡Α͏ͳ69͕ ಘΒΕΔ %ZOBNP%#-PDBMY(6* https://hub.docker.com/r/yamitzky/dynamodb-gui/
wςετ༻ͷ%ZOBNP%#ςʔϒϧͳͲΛ༻ҙ͠ ͯɺͬͨ΄͏͕ྑ͍͜ͱ͋Δ w͓ۚݖݶωοτϫʔΫͷؔͰ͑ͳ͍͜ ͱ͋Δ͠ɺσόοάͷ͢͠͞ͷ͋Δ ී௨ʹ%ZOBNP%#4͏ͷμϝͳͷʁ
w"1*Λ։ൃ͢Δͱ͖ʹૺ۰͢Δ wαʔόʔϨε"1*ͷlమ൘z"1*(BUFXBZ w"1*(BUFXBZϩʔΧϧʹଘࡏ͠ͳ͍ ˠαʔόʔϨεͰಈͨ͘Ίʹ࡞ͬͨ"1*Λ ϩʔΧϧͰͲ͏σόοά͢Δ͔ʁ ຊ൪ͱϩʔΧϧͷࠩ1BSU
αʔόʔϨε"1*Λ࡞ΔͳΒ ݁ࠓ·Ͱ௨Γ ϑϨʔϜϫʔΫͰ࡞Δ
͍··Ͱ௨Γ࡞Δͱ 8"' ࣗ࡞"1* ϩʔΧϧڥ 8"' ࣗ࡞"1* αʔόʔϨεڥ $ python main.py
-BNCEBͰಈ͔͢ Ξμϓλʔ
1ZUIPOͷ߹ 'MBTL%KBOHP ࣗ࡞"1* ϩʔΧϧڥ 'MBTL%KBOHP ࣗ࡞"1* αʔόʔϨεڥ 84(*Λ-BNCEB Ͱಈ͔͢Ξμϓλʔ 84(*
w1ZUIPOʹ͓͚Δʮαʔόʔʯͷඪ४ن֨ Πϯ λʔϑΣʔε ˠ3VCZʹ͓͚Δ3BDLతͳ w'MBTL%KBOHPCPUUMF84(*ͱ͍͏ඪ ४ͷ্ʹ࡞ΒΕ͍ͯΔ 84(*ͱ
w͢ͰʹϥΠϒϥϦ͕͍͔ͭ͋͘Δ wIUUQTHJUIVCDPNBXTMBCTBXT TFSWFSMFTTFYQSFTT wIUUQTHJUIVCDPNTMBOLBXTHJ wIUUQTHJUIVCDPN.JTFSMPV;BQQB w8"'ͷنΛ-BNCEBͷنʹม͢Δ͚ͩͳͷ Ͱɺ͢Ͱʹ044͕ͳͯ͘ͳΜͱ͔ͳΔ طଘͷϑϨʔϜϫʔΫPO-BNCEB
w%PDLFSΛ׆༻ͯ͠ɺαʔόʔϨεڥͱϩʔ ΧϧڥͷࠩΛݮΒͦ͏ wطଘͷϑϨʔϜϫʔΫʹ͚ͬͯ"1*Λ࡞Ζ͏ ͜͜·Ͱͷ·ͱΊ
Ϛωʔδυ͕ਏ͍ ͕ͩࢲΓӽ͑ͨ
࣭-BNCEBσϓϩΠͨ͠Βɺ ͋ͱl͓·͔ͤzͳͷ͔ʁ
ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹ-BNCEBಥવͷࢮɹʻ ʉ:?:?:?:?:?:?:?:?:?:ʉ
w8"'84(*ͷ্ʹͤΕɺ "ࣾ(ࣾ.͕ࣾϛαΠϧ߈ܸ͞ΕͯͳΜ ͱ͔ͳΔ -BNCEBಥવͷࢮରࡦ ۓٸ࣌௨ৗͷαʔόʔͰ ΞϓϦέʔγϣϯΛಈ͔͢
࣭Ϛωʔδυͬͯোͳ͍Μ͚ͩͬʁ
wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊ wࣗͷແྗ͞Λࢥ͍Δ ,JOFTJTಥવͷΤϥʔ
wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊ wࣗͷແྗ͞Λࢥ͍Δ w̍िؒفͬͨΒͬͨ ,JOFTJTಥવͷΤϥʔ
w4ʹো͕ى͖ͨΒʁ,JOFTJTʁ %ZOBNP%#ʁ wͦͷͱ͖ɺσʔλͷܽଛଘࡏ͠ͳ͍ʁ wোʹඋ͑ɺ༗ঈαϙʔτେࣄ Ϛωʔδυͷোఆ͠Α͏
ਅʹΓӽ͑Δ αʔόʔϨε
wݱ࣮ɺʮαʔόʔϨεʹΫϥυࡇΓʯ w-BNCEBʹଘࡏ͢Δ֤छ੍ wϓϥΠϕʔτωοτϫʔΫͷ੍ wύϑΥʔϚϯεͷ੍ wˠΫϥυґଘʹϚωʔδυΏ͑ʹɺ ɹΓӽ͑Α͏͕ͳ͍ɾɾɾͷ͔ɾɾɾʁ ϚωʔδυΏ͑ͷݶք
w'BB4ͬͯl-BNCEBzͱ͔l$MPVE'VODUJPOz ͚ͩͳͷ͔ʁ w'BB4lΫϥυͷձࣾz͔͠ఏڙͰ͖ͳ͍ ͷͳͷ͔ʁ wˠ࣮ɺͦΜͳ͜ͱͳ͍ ͦͦɺαʔόʔϨεͬͯ
w#VJMEJOH4FSWFSMFTT"QQTXJUI%PDLFS ࡞ΔαʔόʔϨε https://blog.docker.com/2016/06/building-serverless-apps-with-docker/ ͜͜ΛࣗͨͪͰ༻ҙ͢Δ͔ɺΫϥυ͕༻ҙ͢Δ͔ͷҧ͍
lαʔόʔϨεz࡞ΕΔ
wܭࢉϦιʔεͷϓʔϧΛΫϥυ͕࣋ͭͷ͔ɺ ࣗࣾͰ࣋ͭͷ͔ͷҧ͍ wͪΖΜɺ͕ࣗؔ৺Λ࣋ͭඞཁͷ͋Δͷ ૿͑Δ w+9௨৴ࣾͰɺ-BNCEBͱ&$4Λ͍͚ͯΔ wˠlϚωʔδυzʹͩ͜ΘΔඞཁɺ࣮ͳ͍ ࡞ΔlαʔόʔϨεz
wࠓɺlαʔόʔϨεzΛӡ༻ͯ͠ਏ͔ͬͨͱɺ ͦͷղܾࡦΛհ͠·ͨ͠ wαʔόʔϨεϚωʔδυɺࠇຐज़Ͱͳ͘ lͨͩͷ-JOVYzlͨͩͷίϯςφٕज़zͱଊ͑ɺΓӽ͑Δ wϚωʔδυͷαʔόʔϨεͱɺࣗࣾαʔόʔϨεɺ ͍͚͕େࣄ wใಓϕϯνϟʔʮ+9௨৴ࣾʯΤϯδχΞืूதͰ͢ʂ ·ͱΊ