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
チームの課題をサーバーレスで解決 Backlog と Zendesk の繋ぎ方
Search
Yuji Shimoda
October 11, 2019
Technology
1
1.8k
チームの課題をサーバーレスで解決 Backlog と Zendesk の繋ぎ方
AWS総合支援サービス「クラスメソッドメンバーズ」のサポートチームが抱えていた課題を、サーバーレスで解決した際のアレコレを赤裸々にご紹介します。
Yuji Shimoda
October 11, 2019
Tweet
Share
More Decks by Yuji Shimoda
See All by Yuji Shimoda
チームの課題をサーバーレスで解決 プロジェクト管理ツール「Backlog」とカスタマーサービスシステム「Zendesk」の繋ぎ方
yuji_shimoda
0
2k
Higobashi.aws 第7回 AWS コンテナ実践勉強会 低レイヤー視点から読み解くコンテナ入門
yuji_shimoda
7
2k
higobashi.aws 第1回 AWS re:Invent 2017 報告会 AWS Fargate と ECS タスクネットワークのご紹介
yuji_shimoda
0
950
Other Decks in Technology
See All in Technology
反実仮想機械学習とは何か
usaito
PRO
11
4.7k
競技としてのKaggle、役に立つKaggle
yu4u
3
1.7k
Meta Quest 3 で動く桜マシマシ WebXR アプリを IBM Cloud Code Engine と Babylon.js で作った話
1ftseabass
PRO
0
120
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
140
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
チームでロジカルシンキングに改めて向き合っている話 〜学習環境と実践⽅法〜
sansantech
PRO
3
2.6k
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
530
require(ESM)とECMAScript仕様
uhyo
3
750
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
530
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
Azureの基本的な権限管理の勉強会
yhana
0
580
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
Fireside Chat
paigeccino
21
2.6k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
It's Worth the Effort
3n
180
27k
Building Applications with DynamoDB
mza
88
5.6k
Designing for Performance
lara
601
67k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Infographics Made Easy
chrislema
238
18k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Ruby is Unlike a Banana
tanoku
96
10k
Transcript
νʔϜͷ՝ΛαʔόʔϨεͰղܾϓϩδΣΫτཧπʔϧ ʮ#BDLMPHʯͱΧελϚʔαʔϏεγεςϜʮ;FOEFTLʯͷܨ͗ํ "84ࣄۀຊ෦ɹΦϖϨʔγϣϯ෦ ొஃऀԼా༞࢜
DNEFWJP
ຊ͓͢͠Δ͜ͱɺ͠ͳ͍͜ͱ w͓͢͠Δ͜ͱ wࣾͷۀΛվળ͢ΔࡍͷΞϓϩʔνɺϚΠϯυͳͲ wαʔόʔϨε։ൃ5JQT w4FSWFSMFTT'SBNFXPSL1ZUIPOίʔυͷ؆୯ͳ࣮ྫ wαʔόʔϨε։ൃ࣌ʹૺ۰ͨ͠Τϥʔͱରॲ๏ͷ؆୯ͳ͝հ w͓͠ͳ͍͜ͱ wαʔόʔϨεͷ֓೦આ໌
w֤"84αʔϏεͷར༻ํ๏ৄࡉઆ໌ͳͲ w4FSWFSMFTT'SBNFXPSL։ൃݴޠʹؔ͢Δৄࡉͳઆ໌
8IPBSFZPV ݄Ϋϥεϝιουೖࣾ "84༻ྺɺΫϥεϝιουࡏ੶ظؒͱಉ͡ ৬ྺ ೋڃඋ࢜ʢϝΧχοΫʣ ډञళ 6/*9ͷԾԽٕज़ͷαϙʔτɾΤϯδχΞ ΦϖϨʔγϣϯ෦ॴଐ
,"*;&/5FBNϦʔμʔ ̐ࣇͷύύ ɺਓੜॳͷҭࣇٳՋऔಘࡁΈ Լాɹ༞࢜ʢ̏̕ࡀʣ
"HFOEB w֤αʔϏεͷ͝հ wνʔϜͷ՝ͱʁ w՝ղܾͷΞϓϩʔν w࣮ࡍʹͬͯΈͨ wαʔόʔϨεͰ։ൃͨ͠αʔϏεͷ͝հ wαʔόʔϨε։ൃ5JQT w։ൃ࣌ʹૺ۰ͨ͠Τϥʔͱରॲ๏
w·ͱΊ
֤αʔϏεͷ͝հ
#BDLMPHͷ͝հ wOVMBC͕ࣾ։ൃ͢Δ4BB4 w༷ʑͳۀछͰར༻͞Ε͍ͯΔϓϩδΣΫτཧπʔϧ w՝όάόʔδϣϯཧγεςϜͱͯ͠ར༻Մೳ
;FOEFTLͷ͝հ w;FOEFTL͕ࣾ։ൃ͢Δ4BB4 wΧελϚʔαϙʔτۀʹඞཁͳ͕༻ҙ͞Ε͍ͯ·͢ w;FOEFTL4VQQPSU w;FOEFTL(VJEF w;FOEFTL$IBU w;FOEFTL5BML w;FOEFTL&YQMPSF
0534ͷ͝հ w044ͱͯ͠։ൃ͞Ε͍ͯΔνέοτཧγεςϜ wϝʔϧͷো௨͍߹ΘͤͷཧγεςϜͱͯ͠ར༻ wΠϯγσϯτཧ
֤αʔϏεͰͷ͍͚ wϝϯόʔζͰఏڙ͢Δ"84αϙʔτɺجຊతʹɹɹɹΛར༻ wҰ෦ͷސ٬ΛରʹɹɹɹɹΛར༻ͨ͠αϙʔτఏڙ wϝʔϧʹΑΔ͍߹ΘͤΛཧ͢ΔͨΊʹ0534Λར༻
Ϋϥεϝιουɹϝϯόʔζͷ͝հ w"84૯߹ࢧԉαʔϏε wԁݐͯͷٻॻ͍αʔϏεʢٻߦʣ wར༻අͷׂҾ͖αʔϏεʢҰPS&$ɾ$%/ׂҾ͖ʣ w"84αϙʔτʢ֤छਃߦٕज़తͳαϙʔτʣ wϓϨϛΞϜαʔϏεʢίϯαϧςΟϯάߏஙࢧԉӡ༻ߦFUDʣ
ϝϯόʔζͷ"84αϙʔτମ੍ʢYʣ
νʔϜͷ՝ͱʁ
લఏ݅ w#BDLMPHͷ՝ߋ৽ʹΑΔϝʔϧ௨ΛશͯνέοτԽ w͍߹ΘͤҎ֎ͷ༰ଟؚΉ wͦͷνέοτΛ ໊Ͱ༗ਓࢹ wϝϯόʔζαʔϏεٸதʢલൺഒ㽉 wࢹνέοτൺྫͯ͠㽉 wνʔϜͷਓһɺαʔϏεنͷʹൺྫ͠ͳ͍
݁Ռ ༗ਓࢹνέοτͷ߹ܭ͕݅ 1700݅Λ͑Δʢ࣮ʣ
՝ղܾͷΞϓϩʔν
՝ղܾͷΞϓϩʔν ঢ়گΛѲ͢ΔͨΊʹใऩूʢϝϯόʔͷώΞϦϯάʣ σʔλʹجͮ͘ݱঢ়ੳ ՝ͷચ͍ग़͠
ऩूσʔλ͕ෆ͢Δ߹ɺԾఆʹجͮ͘՝ͰߏΘͳ͍ ͷ՝ʹجͮ͘ࢪࡦͷݕ౼ͱظ͢ΔޮՌͷ֬ೝ ͷࢪࡦʹ5SZ͢ΔɹˠʹΔ
,"*;&/5FBNͷجຊํ ࠷খݶͷίετͰ࠷େݶͷՌΛಘΔ Think Big, Start Small, Scale Fast
ݸਓతͳجຊํ ސ٬ʹՁΛఏڙ͍ͯ͠ͳ͍࡞ۀΊΔ ͦΕҎ֎ͷ࡞ۀޮԽɾࣗಈԽΛݕ౼
νʔϜͷ՝ͱʁʢԾఆʣ w༗ਓࢹʢ#BDLMPH՝ϕʔεʣͷνέοτ͕ଟ͍ wঢ়گੳɺରԠϑϩʔͷݟ͕͠Ͱ͖͍ͯͳ͍ wࢹνέοτʹຒΕͨॏཁͳ՝ͷߋ৽Λଈ࠲ʹݕͰ͖ͳ͍ wαϙʔτ࣭ͷԼʢ༗ਓࢹʹΑΔฐʣ w༗ਓࢹͷίετʢ࡞ۀෛՙʣ͕ߴ͍ wਓతࢿݯوॏʢແବݣ͍ग़དྷͳ͍ʣ
࣮ࡍʹͬͯΈͨ
࣮ࡍʹͬͯΈͨ wνʔϜϝϯόʔʹώΞϦϯά wେྔʹ͋Δࢹνέοτɺ͍͔ͭ͘ͷಛఆϓϩδΣΫτىҼ wϝʔϧ௨ઃఆͷݟ͠ʹΑΓঢ়گ͕վળ͞Εͦ͏ wࣗࣾอ༗ͷ#BDLMPHϓϩδΣΫτͰͳ͘ɺސ٬อ༗ͷͷ wʙސ٬ͷଧˍࣗࣾϓϩδΣΫτͷ୨Է͠ wސ٬ͱௐྃ͠ɺϝʔϧ௨ͷઃఆݟ͠ʹޭ w݅ˠ݅ʢࢹνέοτΛҰ୴ɺϦηοτʣ
Ұ࣌తʹվળ͕ͨ͠ɺࠜຊతͳʢ༗ਓࢹରԠʣະղܾ
࣮ࡍʹͬͯΈͨʢ͖ͭͮʣ wͦͷଞͷํ๏Λࡧ͢Δ৽ن։ൃ͕ඞཁͱ͍͏݁ʹ w1P$։ൃʹணखʢͬ͘͟Γ)͘Β͍ʣ w1P$खԠ͕͑͋ͬͨͷͰɺϓϩτλΠϓ։ൃΛਐΊΔ w4FSWFSMFTT'SBNFXPSLΧελϜυϝΠϯԽʢ)͘Β͍ʣ w࣮࣭िؒఔͰɺຊ൪ಋೖʢ༗ਓࢹରԠͱฒʣ wࣾͷސ٬αʔϏεಋೖͷ͝ҊΛૹ wࣾϑΟʔυόοΫΛݩʹαʔϏεվળΛਵ࣮࣌ࢪ
w#BDLMPH՝ͷ༗ਓࢹରԠΛશഇࢭ
݁Ռ 15/(1ਓ)ͷվળޮՌ͋Γ ܭ1࣌ؒ/(4ਓ)ͷݮʹͭͳ͕ͬͨ ͭ·Γɺ20࣌ؒ/݄ɺ240࣌ؒ/
αʔόʔϨεͰ։ൃͨ͠αʔϏεͷ͝հ
αʔϏεಋೖલ ᶃ ᶄ ᶅ ᶆ
αʔϏεಋೖલ
αʔϏεಋೖޙ ᶃ ᶄ ᶅ ᶆ ᶇ
#BDLMPHϔϧϓσεΫ࿈ܞαʔϏε w#BDLMPHͷඪ४ػೳͰ͋Δ8FCIPPL Λར༻ w #BDLMPH՝ͷߋ৽ใΛࢦఆ63-)5511045͢Δػೳ w8FCIPPLΠϕϯτΛ"1*(BUFXBZͰड͚Δ w-BNCEB 1ZUIPO
Ͱղੳ͠ɺඞཁʹԠͯ͡;FOEFTL"1*Λίʔϧ
#BDLMPHͷ8FCIPPLΠϕϯτʢαϯϓϧʣ
#BDLMPHͷ՝ʢςετىථͨ͠αϯϓϧʣ
;FOEFTLͷνέοτʢςετىථͨ͠αϯϓϧʣ
ࣾ4MBDLʢςετىථͷ௨αϯϓϧʣ
ར༻͍ͯ͠Δ"84αʔϏε w"NB[PO"1*(BUFXBZ w"NB[PO71$ w/"5(BUFXBZ&MBTUJD*171$&OEQPJOU w"NB[PO%ZOBNP%# w"NB[PO3PVUF w"NB[PO$MPVE8BUDI w"84-BNCEB
w"844FDSFUT.BOBHFS w"84$FSUJpDBUF.BOBHFS
αʔϏεߏͷৄࡉ
αʔϏεߏͷৄࡉ wίʔυنɺͬ͘͟Γߦఔʢ:".-ؚΊߦ͘Β͍ʣ
αʔϏε༷ʢϓϩτλΠϓʣ w#BDLMPH՝ͷ୲ऀ͕ಛఆϢʔβʔ ͷ߹ʹ ;FOEFTLͷνέοτΛ࡞͠ɺ#BDLMPH՝͕ྃ͢Δ·Ͱ ;FOEFTLͷνέοτΛߋ৽ʢಉظʣ͢Δɻ w
ΦϖϨʔγϣϯνʔϜ#BDLMPHϢʔβʔ ʢҎ߱ɺ$.ΦϖϢʔβʔʣ
Ҿ͖ࢉͷඒֶ ෆཁͳػೳపఈతʹ͗མͱ͢
ϓϩτλΠϓ։ൃதͷ৺ಘ w༨ܭͳػೳΛՃ͠ͳ͍ʢՃ͠Α͏ͱ͠ͳ͍ʣ wͻΐͬͱͨ͠ΒඞཁʹͳΔ͔͠Εͳ͍ػೳʢଟʣඞཁͳ͍ wᘳΛࢦ͞ͳ͍ w్தͰϦϑΝΫλϦϯάͨ͘͠ͳΔʢ͔͠Εͳ͍ʣ͚Ͳզຫ͢Δ wϓϩδΣΫτ͕࠳ͨ͠߹ɺίʔυΛࣺͯΔ͜ͱʹͳΔ͔Β wར༻ऀʢνʔϜϝϯόʔސ٬ʣͱަব͢Δ͜ͱΛڪΕͳ͍ wҙࣄ੍߲ݶΛઃ͚Δ͚ͩͰɺ༷͕γϯϓϧʹͳΔ
wͭ·Γɺ։ൃΛେ෯ʹݮͰ͖5SZͷαΠΫϧΛૣΊΒΕΔ
ϓϩτλΠϓ։ൃதʹϝϯόʔ͔Βͬͨίϝϯτ wސ٬͕#BDLMPH՝୲ऀΛࢦఆͤͣʹґཔͯ͘͠Δ͜ͱ͕͋Δ ݱঢ়ͷ༷ͩͱ͍উख͕ѱͦ͏ w#BDLMPH՝ʹෳͷґཔࣄ߲͕هࡌ͞Ε͓ͯΓɺ՝ͷ୲ऀ͕ $.ΦϖϢʔβʔͰͳ͘ɺ՝ͷຊจʹCZOBNFͰґཔ͞ΕΔ
߹ͷέΞ͕ग़དྷͳ͍ɻػೳΛՃͨ͠ํ͕ྑ͍ͷͰʁ wԼా͞Μ։ൃऀ͖͡Όͳ͍Ͱ͢Ͷʢ͍͍ҙຯͰʣ Ϛωʔδϟʔ͖Ͱ͢Ͷɻ
%POFJTCFUUFSUIBOQFSGFDU
αʔόʔϨε։ൃ Tips
ΞΫηεݩʢιʔε*1ʣΛߜΓ͍ͨ wSFTPVSDF1PMJDZΛ͏
ΫϨσϯγϟϧใͷཧʁ w"844FDSFUT.BOBHFSͬͯΔ wTFSWFSMFTTZNM[FOEFTLQZ
ΧελϜυϝΠϯ͑Δʁ wόʔδχΞ෦ VTFBTU Ͱ"$.ূ໌ॻൃߦͯ͠ "1*(BUFXBZίϯιʔϧͰΧελϜυϝΠϯ໊Λઃఆͨ͠Β Τοδ࠷దԽͷΧελϜυϝΠϯ͕͑·͢ɻ
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-edge-optimized-custom-domain-name.html
ΧελϜυϝΠϯͰෳͷ"1*͑Δʁ wϕʔεύεϚοϐϯάͷઃఆΛͨ͠Β͑·͢ɻ wIUUQTCBDLMPHTVQQPSUDMBTTNFUIPEJOGPEFW wIUUQTCBDLMPHTVQQPSUDMBTTNFUIPEJOGPDN
ϝϞϦׂͯྔͷݟੵΓͲ͏ͯ͠Δʁ w$MPVE8BUDI-PHT*OTJHIUTͰ3&1035Λ֬ೝ https://medium.com/foxintelligence-inside/how-we-reduced-lambda-functions-costs-by-thousands-of-dollars-8279b0a69931
։ൃ࣌ʹૺ۰ͨ͠Τϥʔͱରॲ๏
։ൃ࣌ʹૺ۰ͨ͠Τϥʔͱରॲ๏ w$MJFOU&SSPS wكʹ-BNCEB͕JOWPLF͞Εͳ͍
$MJFOU&SSPS wࣄɿ w;FOEFTL"1*ίʔϧ࣌ʹ$MJFOU&SSPS͕ൃੜ w%FWڥͰԿճ͔ൃੜʢ1SPEڥͰҰ͚ͩൃੜ͍ͯͨ͠ʣ w۩ମతʹɺҎԼͷΤϥʔϝοηʔδͱڞʹ"1*$BMM͕ࣦഊ͢Δ wSFRVFTUTFYDFQUJPOT)551&SSPS$MJFOU&SSPS 'PSCJEEFOGPSVSM
IUUQTTVCEPNBJO[FOEFTLDPNBQJWUJDLFUTKTPO
$MJFOU&SSPS wݪҼɿ w;FOEFTLɺαʔυύʔςΟͷεύϜϑΟϧλʔΛ ར༻͓ͯ͠ΓCBESFQVUBUJPOͱผ͞Εͨ*1ΞυϨε͔Βͷ ΞΫηεڐՄ͞Ε͍ͯͳ͔ͬͨ w-BNCEBʹׂͯΒΕΔάϩʔόϧ*1ɺෆఆ
$MJFOU&SSPS wରॲ๏ɿ w71$-BNCEBԽ w/"5(BUFXBZ&MBTUJD*1ʹΑΔάϩʔόϧ*1ͷݻఆ wTFSWFSMFTTZNM
كʹ-BNCEB͕JOWPLF͞Εͳ͍ wࣄɿ w8FCIPPLΠϕϯτͷϦΫΤετ"1*(BUFXBZʹ౸ୡͯͨ͠ w"1*(BUFXBZͰ99&SSPSͷهΛ؍ଌ w-BNCEB͕JOWPLF͞Εͨܗͳ͠ wݪҼɿ wෆ໌ wࢀߟใʣ"1*(BUFXBZͷ99&SSPSൃੜස͕গͳ͚Εɺ
ʢҰ࣌తͳΤϥʔͰ͋Δ߹ʣϦτϥΠਪͷΑ͏Ͱ͢
كʹ-BNCEB͕JOWPLF͞Εͳ͍ w՝ɿ w#BDLMPHͷ৽نطଘ՝ͷߋ৽ʹؾ͚ͳ͍ wରԠ͕ΕΔͷͰαϙʔτ࣭͕ѱԽ͢Δʢக໋తʣ wఆ͞ΕΔൃੜύλʔϯ w৽نͷ#BDLMPH՝͕ސ٬ʹΑΓ࡞͞Εͨύλʔϯ wطଘͷ#BDLMPH՝Λސ٬͕ߋ৽ͨ͠ύλʔϯ wˠࣄൃੜ࣌ʹαϙʔτϝϯόʔ͕ؾͨ͘ΊͷΈ͕ඞཁ
৽نͷ#BDLMPH՝͕ސ٬ʹΑΓ࡞͞Εͨύλʔϯ wରॲ๏ɿ wִ࣌ؒؒʹ࣮ߦ͞ΕΔόονδϣϒΛՃͰ։ൃ w#BDLMPH"1*ͰҎԼͷ՝Λநग़ w୲ऀ͕$.ΦϖϢʔβʔ wεςʔλε͕ະରԠ w%ZOBNP%#ςʔϒϧʹΞΠςϜͷొ༗ແΛνΣοΫ wΞΠςϜ͕ొ͞Ε͍ͯͳ͍߹ʹɺ4MBDL௨͢Δ
طଘͷ#BDLMPH՝Λސ٬͕ߋ৽ͨ͠ύλʔϯ wରॲ๏ɿ w;FOEFTLࣗಈԽͷΈͰରԠ͢Δ wอཹεςʔλεมߋdޙʹɺڧ੍తʹεςʔλεมߋ͢Δ wཧ༝ͱͯ͠ɺεςʔλεͷᴥᴪ͕ൃੜ͍ͯ͠ΔͨΊ w#BDLMPH՝ɿॲཧࡁΈˠະରԠ w;FOEFTLνέοτɿอཹதͷ··ʢຊˠΦʔϓϯʣ
·ͱΊ
·ͱΊ wখ͘͞5SZ͢Δࡍɺ༷ػೳཁ݅ΛϛχϚϜʹ͢Δ͜ͱ wͪΐͬͱͨ͠αʔϏεͰ͋ΕɺαʔόʔϨε૬ੑྑ͠ wϓϩτλΠϓنͷখ͍͞αʔϏεΛ։ൃ͢Δࡍɺ ·ͣϑϧϚωʔδυαʔϏεߏΛݕ౼ͯ͠ཉ͍͠ w"1*(BUFXBZ -BNCEB
%ZOBNP%# wࣾվળɺͪΐͬͱͨ͠ΞΠσΞͱগ͠ͷίʔυͰ࣮ݱͰ͖Δ w͘͠ߟ͑ͣʹɺ·ͣ5SZʂ
Let’s enjoy Serverless !!
None