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
はじめてのSPAを サーバーレスで作る with AngularJS + S3 + Lambd...
Search
Yonashiro Yuu
August 20, 2016
Technology
1
3.9k
はじめてのSPAを サーバーレスで作る with AngularJS + S3 + Lambda + API Gateway + Route 53
JAWS-UG沖縄 真夏の熱すぎるサーバレス祭り! 2016年08月 の発表資料です。
Yonashiro Yuu
August 20, 2016
Tweet
Share
More Decks by Yonashiro Yuu
See All by Yonashiro Yuu
明日からの話し合いとかで使えるかもしれない イベントや打ち合わせとかの 多人数でのコミュニケーションをスムーズにする心掛け
cloneko
0
610
ボクがハカチャンのボラスタるワケ(ハッカーズチャンプルー2018前夜祭LT)
cloneko
0
600
沖縄からAWS認定試験への道? LT - JAWS-UG on AWS Cloud Roadshow 2017 Osaka
cloneko
0
1.4k
ハッカーズチャンプルーでの LTのやり方、 そしてLTをすることによるその効果
cloneko
0
180
効果的な導運用のための Amazon Web Services 活用入門 を読んだ感想 - JAWS-UG 沖縄 2017/01 LT -
cloneko
0
170
F + IT から生まれる 距離と時間を越えた コラボレーション
cloneko
0
6.7k
DigiLab Okinawa 2015 LT Session -○○のトイレめ! → いろいろな「表現のしかた」を身に付けよう!-
cloneko
1
140
2015-03-18-katayabira-sampling-yonayuu
cloneko
0
120
ネットワーク対戦型タイピングを作って、プログラム(とか)について考えてみた
cloneko
0
4k
Other Decks in Technology
See All in Technology
Building GoReleaser - from shell script to paid product
caarlos0
0
270
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
11
1.7k
2025/07/22_家族アルバム みてねのCRE における生成AI活用事例
masartz
2
110
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
180
TypeScript 上達の道
ysknsid25
16
2.8k
「現場で活躍するAIエージェント」を実現するチームと開発プロセス
tkikuchi1002
6
1k
RapidPen: AIエージェントによる高度なペネトレーションテスト自動化の研究開発
laysakura
1
390
Kiro Hookを Terraformで検証
ao_inoue
0
100
怖くない!GritQLでBiomeプラグインを作ろうよ
pal4de
1
130
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
karamem0
0
200
QAを早期に巻き込む”って どうやるの? モヤモヤから抜け出す実践知
moritamasami
2
180
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
220
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Become a Pro
speakerdeck
PRO
29
5.4k
RailsConf 2023
tenderlove
30
1.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
850
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Balancing Empowerment & Direction
lara
1
500
Building Adaptive Systems
keathley
43
2.7k
Navigating Team Friction
lara
187
15k
Transcript
͡Ίͯͷ41"Λ αʔόʔϨεͰ࡞Δ :POBTIJSP:VVBLB!DMPOFLP BU+"846(0LJOBXB
ࣗݾհ w ᢛಹ༤BLB!DMPOFLP w Πϯϑϥ͞Μ͘Β͍ͱ ઐֶߍͷߨࢣ͘Β͍ ͬͯ·ͨ͠ɻ ։ൃܦݧͳ͠ w
͖ͳ"84ͷαʔϏε 4ͱ3PVUFɻ
ࠓͷྲྀΕ w 8FCΞϓϦΛ࡞Δ࣌ͷߏ#FGPSF"GUFS w 41"ΛαʔόʔϨεͰ࡞ͬͯΈͨ w "84ΛͬͯϋϚͬͨͱ͜ w ࡞ͬͯΈͯࢥͬͨ͜ͱ
8FCΞϓϦΛ࡞Δ࣌ͷߏ #FGPSF"GUFS
8FCΞϓϦ࡞Δ࣌ʹඞཁͳḉ ඦઓ࿉ຏͳօ༷ʹ؆୯͗͢Δ͓ͩͱࢥ͍·͕͢ʜ w ϦΫΤετ͞ΕͨϑΝΠϧΛఏڙ͢Δαʔόʔ w ϦΫΤετʹԠͯ͡ϓϩάϥϜΛ࣮ߦ͢Δ@@@@αʔόʔ w ໊લղܾͷͨΊͷαʔόʔ
8FCΞϓϦ࡞Δ࣌ʹඞཁͳḉ ඦઓ࿉ຏͳօ༷ʹ؆୯͗͢Δ͓ͩͱࢥ͍·͕͢ʜ w ϦΫΤετ͞ΕͨϑΝΠϧΛఏڙ͢Δ8FCαʔόʔ w ϦΫΤετʹԠͯ͡ϓϩάϥϜΛ࣮ߦ͢Δ"1αʔόʔ w ໊લղܾͷͨΊͷ%/4αʔόʔ
8FCΞϓϦͷΞΫηεͷྲྀΕ ྫ5XJUUFSʹΞΫηεͯ͠ΈΔ %/4αʔόʔ UXJUUFSDPNͷ*1ΞυϨεڭ͑ͯΑ ͔ ͩΑ 8FCαʔόʔ UXJUUFSDPNͷίϯςϯπ͍ͩ͘͞ ͍Αͬ
8FCΞϓϦͷΞΫηεͷྲྀΕ ྫ5XJUUFSʹΞΫηεͯ͠ΈΔ 8FCαʔόʔ UXJUUFSDPNͷίϯςϯπ͍ͩ͘͞ ͍Αͬ ͋ͬɺ!DMPOFLP͞Μͩɻ !DMPOFLP͞Μ༻ͷ5-࡞Δ ϓϩάϥϜ࣮ߦͯ͠͞ͳ ͖Ό
Ͱը૾ͱ͔อଘͯ͋͠ Δͷͦͷ··ͪ͠Ό͑ 0,ͩΑͶ ϓϩάϥϜͰ࡞ͬͨσʔλ ੩తϑΝΠϧ
8FCΞϓϦ࡞Δ࣌ʹඞཁͳḉ ඦઓ࿉ຏͳօ༷ʹ؆୯͗͢Δ͓ͩͱࢥ͍·͕͢ʜ w ϦΫΤετ͞ΕͨϑΝΠϧΛఏڙ͢Δ8FCαʔόʔ w ϦΫΤετʹԠͯ͡ϓϩάϥϜΛ࣮ߦ͢Δ"1αʔόʔ w ໊લղܾͷͨΊͷ%/4αʔόʔ
αʔόʔͰಈ͔࣌͢ͷߏ w ϦΫΤετ͞ΕͨϑΝΠϧΛఏڙ͢Δ8FCαʔόʔ w "QBDIF)5514FSWFSOHJOY.JDSPTPGU**4FUDʜ w ϦΫΤετʹԠͯ͡ϓϩάϥϜΛ࣮ߦ͢Δ"1αʔόʔ w $(*͍ͬͯ͏ͷ͕͋ͬͨؾ͕͢ΔʜNPE@YYY ಛʹQIQ
5PNDBUͳͲαʔϒϨοτίϯςφ +BWBͱ͔ ଞ͍Ζ͍Ζ w ໊લղܾͷͨΊͷ%/4αʔόʔ w CJOE6OCPVOE/4%EKCEOTͬͯͷ͕͋ͬͨؾ ͕͢Δʜଞ͍Ζ͍Ζ
ΞϓϦ࡞ͬͯಈ͔͍ͨ͠ʜ ͦΕ͚ͩͳΜͩ w αʔόʔͷηοτΞοϓͱ͔·͊ɺ࡞ͬͨΞϓϦ ಈ্͔͢ͰઈରඞཁͰ͢ΑͶʜ w ͚ͩͲɺαʔόʔͷҡ࣋ɾӡ༻ͷͨΊͷࣝษڧ ͠ͳ͖Ό͍͚ͳ͍ʜͷ w
νʔϜͷதʹઐͷਓ͕͍ΔͳΒ͍͍͚Ͳʜ
αʔόʔϨεͳΒ
αʔόʔϨεʹͳΔͱมΘΔ͜ͱ w αʔόʔͷηοτΞοϓͱ͔·͊ɺ࡞ͬͨΞϓϦಈ্͔͢Ͱ ઈରඞཁͰ͢ΑͶʜ w ηοτΞοϓͱ͔ݮΒͤΔɻ ͕ɺಈ͔͢ڥʹ߹ΘͤͨΞϓϦͷ։ൃΛ͠ͳ͍ͱ͍͚ͳ͘ͳΔ ·͊ͲΜͳΞϓϦͰ ಉ͡Ͱ͕͢
w ͚ͩͲɺαʔόʔͷҡ࣋ɾӡ༻ͷͨΊͷࣝษڧ͠ͳ͖Ό͍ ͚ͳ͍ʜͷ w ಈ͔͢ڥͷಛੑΔඞཁ͋Δ͕ɺ΄ͱΜͲཧ͠ͳͯ͘ྑ͘ͳΔʜͱ͍͍ͳ͊ʜ w νʔϜͷதʹઐͷਓ͕͍ΔͳΒ͍͍͚Ͳʜ w ˢͱಉ͡ײ͡
αʔόʔϨεͷߏ "84റΓ w ϦΫΤετ͞ΕͨϑΝΠϧΛఏڙ͢Δ8FCαʔόʔ w 4 w ϦΫΤετʹԠͯ͡ϓϩάϥϜΛ࣮ߦ͢Δ"1αʔόʔ w -BNCEB
"1*(BUFXBZ w ໊લղܾͷͨΊͷ%/4αʔόʔ w 3PVUF
41"ΛαʔόʔϨεͰ࡞ͬ ͯΈͨ
ͦͦ41"ͬͯ ඦઓ࿉ຏͳօ༷ʹ؆୯͗͢Δ͓ͩͱࢥ͍·͕͢ʜ w 41 8FC "ͷུশͰ͢ɻ
ͦͦ41"ͬͯ ඦઓ࿉ຏͳօ༷ʹ؆୯͗͢Δ͓ͩͱࢥ͍·͕͢ʜ w 4JOHMF1BHF 8FC "QQMJDBUJPOͷུশͰ͢ɻ
Ͱɺ4JOHMFͳΜͱ͔ͬͯԿΑ w ௨ৗͷ8FCΞϓϦը໘ͷભҠͷࡍʹϖʔδશମ ΛαʔόʔʹϦΫΤετ͠·͢ɻ w ͬͯͳΔͱ)5.-Β+4Β$44Βը૾Β શ෦ϩʔυ͠ͳ͓͠͠ͳ͖ΌͳΒͳ͍ɻ w ޮѱ͘ͳ͍
41"͡Όͳ͍ྫ 8JLJQFEJB ίϯςϯπͷ෦Ҏ֎ڞ௨͡ΌͶ ίϯςϯπͷ෦͚ͩσʔλऔಘͯ͠ॻ͖͑ͨΒϦΫ ΤετݮΒͤΔΜ͡ΌͶ ˠϢʔβʔͷମײతʹշ దʹͳΔΜ͡ΌͶ
41"ʹ͢Δͱ w ͚ࠩͩऔ͖ͬͯͨΓɺใΛΞϓϦଆʹૹͬͨ࣌ ʹͯ͢ͷཁૉ )5.-ࣗମɾ+4ը૾$44 ΛΛऔ ಘ͠ͳ͍͍ͯ͘ͷͰɺແବͳϦΫΤετ͕ݮΔ w Ϣʔβʔͷମײ্͕͕Δ w
αʔόʔͷෛՙݮΒͤΔ దʹ࡞ΕͯΕ Ͷʜ
Ͱɺ࡞ͬͯΈ·ͨ͠ w $#5 $PNQVUFS#BTF5FTUJOH ΞϓϦDMPCVUBΛ ։ൃͯ͠Έ·ͨ͠ɻ
DMPCVUBͬͯԿ w $#5 $PNQVUFS#BTF5FTUJOH γϛϡϨʔλʔ w Α͏ٖࢼݧΛίϯϐϡʔλʔͰΔౕ w ͱͱ$6*ͷͷ͕͋ͬͨͷΛ8FCͰͰ͖ΔΑ͏ʹ͠ ͔ͨͬͨɻ
w IUUQCVUBDMPOFLPDPNͰΞΫηεͰ͖·͕͢ɺಈ͖·ͤ Μ ޙड़ w ΫϥΠΞϯτଆͷίʔυ(JUIVCʹ͋Γ·͢ɻ IUUQTHJUIVCDPNDMPOFLPEBZT@OE
αʔόʔϨεଆڥ w ੩తϑΝΠϧͷ৴4 w σʔλͷ৴ ޙड़ "1*(BUFXBZܦ༝-BNCEB Ͱ4ʹ͋Δ+40/σʔλΛऔಘ w %/4αʔόʔ3PVUF
ΫϥΠΞϯταΠυ w ZFPNBOͷ"OHVMBS+4ͷδΣωϨʔλʔͰܗੜ w $P⒎FF4DSJQUͰهड़ w HSVOUͰσϓϩΠ༻σʔλͷੜ4ͷసૹ
ͬͯΔ͜ͱ w Γ͍ͨࢼݧΛબͨ͠Βσʔλ +40/ Λऔ ಘͯ͠ࢼݧͬͯɺ࠾͍ͯ͠Δ͚ͩͰ͢ɻ
ͬͯΔ͜ͱ w Γ͍ͨࢼݧΛબͨ͠Βσʔλ +40/ Λऔ ಘͯ͠ࢼݧͬͯɺ࠾͍ͯ͠Δ͚ͩͰ͢ɻ
"1*(BUFXBZ -BNCEBͰ ͬͯΔ͜ͱ w ࣄલʹύεϫʔυΛͬͯΔਓʹ͔͠σʔλͷ ϦΫΤετΛฦ͞ͳ͍Α͏ʹ"1*(BUFXBZܦ༝ͷ -BNCEBͰύεϫʔυνΣοΫΛߦͳ͏ɻ w ਖ਼͍͠ύεϫʔυ͕ϦΫΤετʹؚ·Ε͍ͯΕ σʔλ͕อଘ͞Ε͍ͯΔ4όέοτ͔Β+40/
ϑΝΠϧΛऔಘͯ͠ฦ٫͢ΔΑ͏ʹ͍ͯ͠Δɻ w ਖ਼ɺˢͷࣄ͕ແ͚Ε4Ͱ݁͠·͢ɻ
ྲྀΕ σʔλͷϦΫΤετ *% ύεϫʔυ *% ύεϫʔυ ύεϫʔυ͕ਖ਼͚͠Ε σʔλ +40/ ΛϦΫΤετ
σʔλ+40/ σʔλ+40/ σʔλ+40/ ͜Ε͕Γ͍͚ͨͩͳͷʹαʔόʔ্ཱͪ͛Δͷഅࣛഅࣛ͠ ͍Ͱ͢ΑͶ
"1*(BUFXBZ -BNCEBͰ Γ͍ͨ͜ͱ w Λσʔλϕʔεʹ֨ೲͯ͠ੳ͍ͨ͠ w Ͳͷ͕Αؒ͘ҧ͍ͬͯΔ͔ͱ͔ੳ͍ͨ͠ʜ w ઈࢍอཹதͰ͢PS[
"84ΛͬͯϋϚͬ ͨͱ͜Ζ
"84"1*(BUFXBZΛ ͬͯϋϚͬͨͱ͜Ζ
͠ΐͬͪΎ͏Εͯө͞ΕͶʔͬͯΩϨͯΔʜ
͍Ζ͍Ζղܾࡦ͋Δʜ w ઌఔͷηογϣϯͰग़ͨ4JNQMF"1*(BUFXBZͱ͔ 4FSWFSMFTT'SBNFXPSL͑Ͱ͖ΔΜʜPS[ w ౡ͞ΜͷηογϣϯIUUQXXXTMJEFTIBSFOFU,PJDIJSP/JTIJKJNB BXTMBNCEBJOHPMBOH w র͞ΜͷηογϣϯIUUQXXXTMJEFTIBSFOFUOBPUPUFSVZB TFSWFSMFTTGSBNFXPSLOPEFKT
͕ฦͤͳ͍ʜ w ౷߹ϨεϙϯεͰύεϫʔυ͕ ؒҧ͍ͬͯΔ࣌ʹ 'PSCJEEFO Λฦͦ͏ͱࢥͬ ͯΛฦ͢Α͏ʹઃఆ͢Δͱ Λฦ͞ͳ͍ ฦ͢
ʜ w Ҏ֎ͩͱͪΌΜͱಈ͍ͨ ͷͰɺෆຊҙ͚ͩͲʹ͠ ͯ·͢ʜ
αʔόʔϨεͬͯΈ ͯࢥͬͨ͜ͱ
αʔόʔͷҡ࣋͠ͳ͍͍ͯ͘ʜ w Πϯϑϥ͞Μతʹࢮ׆ࢹͨ͠Γɺαʔόʔͷε ςʔλεࢹͨ͠Γ͍Ζ͍Ζߟ͕͑ͪʹͳ͚ͬͯͨ Ͳɺ΄΅Կؾʹ͠ͳ͍͍ͯ͘ͷָɻ w ·͊ɺམͪͯͯͦΜͳʹจ۟ݴ͏ਓ͍ΔΑ͏ͳ ΜͰͳ͍͔ΒͶʜ w
%/4αʔόʔࣗͰ࣋ͭΑΓ3PVUFʹ·͔ͤͯ Δ΄͏͕ѹతʹָɻ͏Μɻ
ಛੑ͖ͪΜͱΒΜͱਏ͍ w -BNCEB·ͩૉͳײ͡ɻ w "1*(BUFXBZͳΜ͔͠ΐʔͳ͍ͱ͜Ͱͻ͔͔ͬΔɻ w ͋ͱṖɻཧղͰ͖ͳ͍͜ͱͳ͍͚Ͳɻ w "1*(BUFXBZ͍ͬͯ͏͘Β͍ͳͷͰ"1*Ҏ্ͷ͜ͱΛ͞ ͤΔͷଟແཧͳΜͩΖ͏ͳɻ
w 41"ͱ૬ੑ͍͍͔ɻ
·ͱΊ
·ͱΊ w αʔόʔϨεɺӡ༻ָɻख์͠Ͱͳ͍͚Ͳɻ w 41"ͱαʔόʔϨεͷ૬ੑΑͦ͞͏ɻ͚ͩͲ͏ ڥͷ͜ͱͪΌΜͱ͓ͬͯ͘ඞཁ͋Δɻ