Share
Embed
CloudFront + S3環境から Cloudflare R2 + Workers環境に移行した話
吉祥寺.pm32
https://kichijojipm.connpass.com/event/276411/
で発表した
「CloudFront + S3環境から Cloudflare R2 + Workers環境に移行した話」の資料になります。
その後、本LTの元ネタとなった記事をQiitaに書きました。
https://qiita.com/teckl/items/4314aa210a689d08e759
Shigeki SUGAI
March 16, 2023
Transcript
52 slides
-
࣍ w $MPVE fl BSF8PSLFSTͱ w $MPVE fl BSF3ͱ w
Ҡߦ͢ΔࣄʹͳͬͨܦҢ w Ҡߦલͷߏ w ҠߦͷྲྀΕ -
࣍ ҠߦͷྲྀΕ 8PSLFSTػೳ࣮ ΞϓϦέʔγϣϯ͔Β4ͱ3ͷμϒϧϥΠτ࣮ 43ͷϑϧίϐʔ Ωϟογϡύʔδͷ࣮
ϩΪϯά ߹ੑνΣοΫ Γସ͑ʢ/4ͷҕʣ ࡞ۀ -
$MPVEGMBSF8PSLFSTͱ w IUUQTXXXDMPVE fl BSFDPNKBKQQSPEVDUTXPSLFST w αʔόϨε 'BB4 w
-BNCEB!&EHF $MPVG'SPOU'VODUJPOTΈ͍ͨͳͭʢࡶʣ w +BWB4DSJQU 7 ͳͲ͕ಈ࡞ w 4FSWJDF8PSLFS͕ಈ͘ w ؆୯ͳ,7ʢLFZWBMVFʣͷΩϟογϡػೳ w ؆୯ͳΞϓϦέʔγϣϯͳΒαʔόϨεͰՄೳ -
$MPVEGMBSF3ͱ w IUUQTCMPHDMPVE fl BSFDPNSHB w "NB[PO4ޓͷΦϒδΣΫτετϨʔδ w ʹ("͞Εͨ w
4ͱൺͯ͞Βʹίετ w 4ͱҧ͍ɺϦʔδϣϯͷ֓೦ແ͍ -
Ҡߦલͷߏ w #BTJDೝূͷػೳͷ͓͔͛Ͱ݁ߏཪଆ͕ෳ ࡶͳࣄʹͳ͍ͬͯͨ w ཁ݅తʹશΩϟογϡग़དྷͣɺ/HJOY OHY@NSVCZͰ63-ຖʹఆ͍ͤͯͨ͞ w ͜͜ຯʹίετ͕͔͔͍ͬͯͨͨ
Ίɺ$MPVE fl BSFҠߦΛػʹ#BTJDೝূػೳ ഇࢭͯ͠γϯϓϧͳߏʹ͢Δࣄʹ -
8PSLFSTػೳ࣮ w ࠓճҠߦͷ͓͕ϝΠϯͳͷͰίʔυলུ w ҎԼͷϖʔδͳͲΛࢀর͍͚ͯͨͩ͠Δͱʜ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTXPSLFSTS w ͳ͓ɺ͏গ͠ڽͬͨ͜ͱΛΓ͍ͨํΏʔ͚͢ʔ͞ΜʹΑΔߴͳ $MPVE
fl BSF8PSLFSTϑϨʔϜϫʔΫʮ)POPʯͳͲΛ͏ͱྑͦ͞͏Ͱ͢ɻ w IUUQTIPOPEFW -
8PSLFSTػೳ࣮ $BDIFʹ͍ͭͯ w ը૾৴͕த৺ʹͳΔͨΊɺ͜Ε·ͰͷΑ͏ʹग़དྷΔݶΓΩϟογϡ͍ͨ͠ͱߟ ͑·ͨ͠ɻ w $MPVE fl BSF8PSLFSTͷΩϟογϡෳͷํ๏͕͋Γ·͢ w
GFUDIDG w $BDIF"1* w ,7 w %VSBCMF0CKFDUT -
8PSLFSTػೳ࣮ $BDIFʹ͍ͭͯ w ΩϟογϡώοτͳͲΛߟ͑Δͱ ,7͕ཧతʹݟ͑ͨͷͰ͕͢ɺ,7 ίετ͕ผ్͔͔ͬͯ͠·͏ʜ w ͜ͷͨΊࠓճ$BDIF"1*ΛͬͯΩ ϟογϡ͢ΔΑ͏ʹ w
IUUQTEFWFMPQFSTDMPVE fl BSFDPN SFYBNQMFTDBDIFBQJ -
4͔Β3ͷશσʔλίϐʔ ํ๏3.JHSBUPS 34VQFS4MVSQFS ͰҠߦ w ެࣜʹΑΔ3ͷҰׅҠߦπʔϧ w 3.JHSBUPSຊ࣌Ͱ·ͩ#FUB൛ w ΦϒδΣΫτͷαΠζΦϒδΣΫτͳͲʹ੍͍͔ͭ͘ݶ͕͋Δ
w IUUQTCMPHDMPVE fl BSFDPNKBKQDMPVE fl BSFSTVQFSTMVSQFSKBKQ w IUUQTEFWFMPQFSTDMPVE fl BSFDPNSEBUBNJHSBUJPOSNJHSBUPS -
4͔Β3ͷશσʔλίϐʔ ํ๏SDMPOFͰҠߦ w 3DMPOFͱΦʔϓϯιʔεͷίϚϯυϥΠϯϕʔεͷϑΝΠϧಉظ͓Αͼస ૹπʔϧ w IUUQTSDMPOFPSH w ެࣜͰ3ͰͷSDMPOFͷ͍ํΛհ͍ͯ͠Δ w
IUUQTEFWFMPQFSTDMPVE fl BSFDPNSFYBNQMFTSDMPOF w 3.JHSBUPS·ͩϕʔλ൛Ͱ͋ΓɺόέοτͷαΠζίϐʔͷλΠϛϯά ੍ޚͳͲʹෆ͕҆͋ͬͨͨΊɺࠓճͪ͜ΒͷSDMPOFΛ༻͢Δ͜ͱʹ -
4͔Β3ͷશσʔλίϐʔ SDMPOFͷίϚϯυΦϓγϣϯ w SDMPOFʹଟ͘ͷΦϓγϣϯ͕͋Γ·͕͢ɺҎԼͷαΠτͳͲΛࢀߟʹɺ ࠷దͱͳΓͦ͏ͳΦϓγϣϯΛௐ͠·ͨ͠ɻ w IUUQTGPSVNSDMPOFPSHUIPXUPNBYJNJ[FTJOHMF fi MFNVMUJQBSU VQMPBETQFFEUPDMPVE
fl BSFSTDPNQBUJCMF w IUUQTSDMPOFPSH fl BHTΑΓ w -
4͔Β3ͷશσʔλίϐʔ SDMPOFͷ᠘ w ͪͳΈʹSDMPOFADPQZAͱATZODAίϚϯυ͕͋Δ͕ɺ w STZODͱҧͬͯATZODAίϚϯυΛ͏ͱSTZODEFMFUFͷڍಈͱͳΔͷ Ͱཁҙ w ҰճݶΓͷϑϧίϐʔͰADPQZAΛ͏ͷ͕҆શ w
IUUQTEFYMBCOFUQVLJXJLJJOEFYQIQ .FNP-JOVY SDMPOFTF -
4͔Β3ͷશσʔλίϐʔ ίϐʔʹ͔͔Δ3ૢ࡞ؔ࿈ͷίετνΣοΫ w ڊେͳόέοτΛίϐʔ͢Δ࣌ͲΕ͚ͩͷΦϒδΣΫτૢ࡞Ͱίετ͕͔ ͔Δ͔Λ44UPSBHF-FOTͰ༧Ί༧ଌ͓ͯ͘͠ͱྑ͍ w IUUQTEFWFMPQFSTDMPVE fl BSFDPNSQMBUGPSNQSJDJOH w
$MBTT"0QFSBUJPOTʢ-JTU0CKFDUT 1VU0CKFDUͳͲʣ w $MBTT#0QFSBUJPOTʢ)FBE0CKFDU (FU0CKFDUͳͲʣ͕ͲΕ͚͔͔ͩΔ ͔ΛѲ͢Δ -
4͔Β3ͷશσʔλίϐʔ ίϐʔʹ͔͔Δ3ૢ࡞ؔ࿈ͷίετνΣοΫ w $MPVE fl BSFͰ(SBQI2-"1*͕༻ҙ͞Ε͍ͯΔͨΊɺ w ҎԼͷهࣄͰհ͞Ε͍ͯΔΑ͏ʹɺ3ͷ֤छϝτϦΫεΛ(SBGBOBͰͪ ΐͪ͘ΐ֬͘ೝग़དྷΔΑ͏ʹ͢Δͱྑͦ͞͏ w
$MPVE fl BSF3ͷ(SBQI2-"OBMZUJDTΛ(SBGBOBͰՄࢹԽ͢Δ w IUUQTRJJUBDPNLIBZBNBJUFNTCCGCCBCE -
4͔Β3ͷશσʔλίϐʔ /"5(BUFXBZ՝ۚͷ᠘ w όέοτίϐʔ࡞ۀ։࢝ॳɺૉʹSDMPOFΛ։࢝ͨ͠ͷͷɺࢥͬͨΑ Γ"84ଆͷྉ͕ۚͶ্͕ͬͯ͠·͏͕ൃੜ w ௐࠪͨ͠ͱ͜Ζɺ࡞ۀ༻ͷ&$͕ϓϥΠϕʔταϒωοτʹଐ͍ͯͯ͠ɺͦ ͔͜Β4Λ3ʹίϐʔͨͨ͠Ί֎෦$MPVE fl BSFͷΞτόϯυ௨৴͕
/"5(BUFXBZܦ༝ʹͳͬͯ͠·͍ͬͯͨ w ͜ΕΛճආ͢Δʹ&$ΛύϒϦοΫαϒωοτʹஔ͔͘ɺ71$ &OEQPJOUΛར༻͢Δͱ/"5(BUFXBZܦ༝ʹͳΒͳͯ͘ࡁΉͷͰΓସ͑ Λߦͬͨ -
4͔Β3ͷશσʔλίϐʔ /"5(BUFXBZ՝ۚͷ᠘ w ҎԼͷهࣄͳͲ͕ࢀߟʹͳΓ·ͨ͠ɻɻ w ͦͷτϥϑΟοΫɺ/"5ήʔτΣΠΛ௨͢ඞཁ͋Γ·͔͢ʁదͳܦ࿏Ͱෆཁͳ σʔλॲཧྉۚݮ͠·͠ΐ͏ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTSFEVDFVOOFDFTTBSZDPTUTGPSOBUHBUFXBZ w
&$͔Β4ΞΫηε͢Δͭͷϧʔτͱίετ w IUUQTUFDIOSJOFUDPNFOUSZBDDFTT@SPVUFT@GSPN@&$@UP@4 w Γ͜͏͍͏࡞ۀΛ͢ΔࡍɺظؒͰҰؾʹίϐʔΛߦΘͣɺ$PTU&YQMPSFSΛ ࡉ͔͘νΣοΫ͠ͳ͕ΒͦΕͳΓʹ࣌ؒΛ͔͚͍ͯͬͯ͘ͷ͕ྑͦ͞͏ -
Ωϟογϡύʔδͷ࣮ w $MPVE fl BSF$BDIF"1*ΛͬͯΩϟογϡ͍ͯ͠Δ߹Ωϟογϡͷύ ʔδΛ$MPVE fl BSF"1*Λͬͯߦ͏ඞཁ͕͋Δ w IUUQTEFWFMPQFSTDMPVE
fl BSFDPNDBDIFIPXUPQVSHF DBDIFQVSHFCZTJOHMF fi MFCZVSM w $MPVE'SPOUͷ*OWBMJEBUJPOTͱҧ͍ɺ$MPVE fl BSFͷΩϟογϡύʔδϦΫ ΤετࣗମແྉͷͨΊɺίετؾʹͤͣʹૉʹআ͞ΕͨϑΝΠϧ ͷ63-ΛదٓΩϡʔʹೖΕͯ͛ΔΑ͏ʹΈࠐΈ -
ϩΪϯάͷઃఆ w Ҡߦલͷ$MPVE'SPOUͰɺಛఆͷ֦ுࢠͷϦΫΤετ݅ͳͲΛఆظతʹ ूܭͯ͠%#ʹೖΕΔͱ͍ͬͨࣄΛߦ͍ͬͯͨ w $MPVE fl BSFͰ-PHQVTIͱ͍͏ػೳ͕͋ΔͨΊɺ͜ΕΛར༻ -PHQVTI &OUFSQSJTFϓϥϯͷΈ༻Մೳ
w $MPVE fl BSF3ʹ)551ΞΫηεϩάΛϓογϡͯ͠"1*Ͱऔಘ͢Δ·Ͱ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTDMPVE fl BSFSMPHQVTI -
ϩΪϯάͷઃఆ -PHQVTI w -PHQVTIϩΪϯάʹඞཁͳϧʔϧΛਖ਼نදݱ "/% 03ͳͲͰࡉ͔͘ࢦ ఆՄೳ w IUUQTEFWFMPQFSTDMPVE fl
BSFDPNMPHTSFGFSFODF fi MUFST w ग़ྗͨ͠ϩά3ʹཷΊࠐΜͰ"1*ͰऔಘՄೳ w ࣌ؒΛࢦఆͯ͠ಛఆͷϩάΛऔΓग़͢߹ w IUUQTEFWFMPQFSTDMPVE fl BSFDPNMPHTSMPHSFUSJFWBM SFUSJFWFMPHTCZUJNFSBOHF -
߹ੑνΣοΫ w 8PSLFSTෳͷΧελϜυϝΠϯΛϚοϐϯά͢Δࣄ͕Մೳ w ຊ൪ͱԾͷυϝΠϯΛ༻ҙͯ͠ɺࣄલʹݟൺग़དྷΔΑ͏ʹςετ w QSPEVDUJPOFYBNQMFOFUʢຊ൪༻υϝΠϯʣ w QSPEVDUJPOFYBNQMFDPNʢ߹ੑνΣοΫ༻υϝΠϯʣ w
όέοτͷ63-ΛϥϯμϜʹੜ࣮ͯ͠ࡍͷϨεϙϯείʔυA$POUFOU 5ZQFA A$POUFOU-FOHUIAͳͲͷൺֱΛߦ͏εΫϦϓτΛ༻ҙ w ͜ͷ߹ੑνΣοΫʹΑΓҰ෦όέοτͷίϐʔ࿙ΕΛݕग़དྷ·ͨ͠ʜ -
Γସ͑ʢ/4ͷҕʣ w ఀࢭϝϯςφϯεΛ͠ͳ͍ͰࡁΉΑ͏ʹɺ1BSUJBM $/".& TFUVQΛར༻ͯ͠Γସ͑Λߦͬͨ 1BSUJBM $/".& TFUVQͰຊ൪༻υϝΠϯΛೝূͤ͞Δ ݩʑ3PVUFΛར༻͍ͯͨ͠ͷͰɺ3PVUFଆͰADMPVE fl
BSFWFSJGZFYBNQMFOFUAͷΑ͏ͳ595 ϨίʔυΛ࡞ $MPVE fl BSFଆͷ%/4ʹ༧Ίطଘͷ3PVUFͱಉ͡ϨίʔυΛͯ͢ઃఆ͓ͯ͘͠ 3PVUFଆͷ$MPVE'SPOUͷ"MJBTϨίʔυͱಉ͡ϨίʔυΛ$MPVE fl BSFଆʹ$/".&Ͱొͯ͠ ͓͘ɻ͜ͷࡍɺ1SPYJFEͰͳ͘ʮ%/4POMZʯͱ͢Δ 8PSLFSTͷ$VTUPN%PNBJOΛઃఆ -
Γସ͑ʢ/4ͷҕʣ 8PSLFSTͷAXSBOHMFSUPNMAͷDVTUPN@EPNBJOઃఆ͠ɺAXSBOHMFSQVCMJTIAͰσϓϩΠ͢Δ 8PSLFSTͷຊ൪༻$VTUPN%PNBJO͕A*OJUJBMJ[JOHA͔ΒA"DUJWFAʹมΘΔͷΛͭ "DUJWFʹͳͬͨΒɺDVSMͰ֬ೝ ADVSM*9(&5IUUQTIPHFFYBNQMFOFUUFTUQOHSFTPMWFIPHFFYBNQMFOFU\DMPVE fl BSF*1^A ͜͜·Ͱແ͔ͬͨΒɺ/4ͷҕ࡞ۀΛߦ͏ A$/".&4FUVQA͔ΒA'VMM4FUVQAʹมߋ͢Δ 3PVUFଆʹ/4ϨίʔυΛ࡞ͯ͠ɺ$MPVE
fl BSFʹҕ ࣄલʹೖΕ͓͍ͯͨDMPVEGSPOUͷϨίʔυΛXPSLFSTʹมߋ͢Δɻ͜ͷࡍɺA%/4POMZA͔ΒA1SPYJFEAʹมߋ AXSBOHMFSUBJMAͰϩάΛࢹ͢Δ -
࡞ۀ w $MPVE fl BSF3 8PSLFSTڥʹΓସ͑ޙɺ͠Β͘ͷظؒฒߦՔಈͰ༷ ࢠΛݟͭͭɺΓ͠ͷඞཁ͕ແ͘ͳͬͨͱஅग़དྷͨλΠϛϯάʹͳͬͨ ΒΞϓϦέʔγϣϯଆͷ4ͱ3ͷμϒϧϥΠτͷΈΛഇࢭ͠ɺ3ͷ Έॻ͖ࠐΈͷγϯάϧߏʹมߋ͢Δ w
ඞཁ͕͋ΕϥΠϑαΠΫϧϧʔϧಉॲཧͷΈࠐΈͳͲΛݕ౼ w 4όέοτ$MPVE'SPOUͷσΟετϦϏϡʔγϣϯͳͲɺؔ࿈͢ΔϦιʔε ͷΞʔΧΠϒআΛߦ͏ w Ҏ্ͰҠߦ࡞ۀͱͯ͠ऴྃʹͳΓ·͢ -
খωλ-81ʢMJCXXXQFSMʣͷ6TFS"HFOU͕σϑΥϧτͰڋ൱͞Ε͍ͯΔ w ͜ͷ#SPXTFS*OUFHSJUZ$IFDLͱ͍͏ΈͷΑ͏ͰɺͦͷੲεύϚ ʔ͕͜ͷ-81ͷ6"Λѱ༻ͨ͠έʔε͕ଟ͔ͬͨΜͩͱਪଌ͞ΕΔʜ w IUUQTEFWFMPQFSTDMPVE fl BSFDPNTVQQPSU fi SFXBMMTFUUJOHT
VOEFSTUBOEJOHUIFDMPVE fl BSFCSPXTFSJOUFHSJUZDIFDL w #SPXTFS*OUFHSJUZ$IFDLɺ8FCTJUFT4FDVSJUZ4FUUJOHT͔Βػೳͷ 0/0''͕Մೳ w ͘͠ɺ0''ʹ͢ΔͷͰͳ͘ɺಛఆͷ6"ΛڐՄ͍ͨ͠߹8"'ͷ $VTUPNF3VMF͔Βҙͷ6TFS"HFOUΛՃ͢Δํ๏ -
খωλ8FC1ͷରԠ͕؆୯ʹઃఆՄೳ w ͪ͜ΒϋϚͬͨͰͳ͍ͷͰ͕͢ɺૉΒ͍͠ͱࢥͬͨͷͰհ͠· ͢ɻ w $MPVE fl BSF1PMJTIͱ͍͏ػೳ͕͋Γɺ1SPҎ্ͷϓϥϯͰ͋Εɺϙνϙν͢ Δ͚ͩͰ8FC1ରԠ͕Մೳʹʜʂ w
IUUQTEFWFMPQFSTDMPVE fl BSFDPNJNBHFTQPMJTI w ΞϓϦέʔγϣϯଆͰ8FC1ରԠΛ͠Α͏ͱ͢Δͱ݁ߏେมͩͬͨΓ͢Δͷ Ͱɺ͜ΕૉΒ͍͠ -
·ͱΊ w $MPVE'SPOU 4ڥ͔Β$MPVE fl BSF3 8PSLFSTʹҠߦ͢Δํ๏ͷҰྫ Λհ͠·ͨ͠ɻ w ·ͩ3("͞Ε͔ͯΒ͞΄Ͳܦա͍ͯ͠ͳ͍ͨΊɺ༧ظ͠ͳ͍ͳͲ͋
Δ͔͠Ε·ͤΜ͕ɺίετݮͷ؍͔Β͢Δͱ݁ߏͳΠϯύΫτ͕͋Δͱ ࢥ͍·͢ɻ w ࠓճҰͭͷࣄྫͱͯ͠հ͠·͕ͨ͠ɺؒҧ͍ͬͯΔͬͱྑ͍Γํ ͳͲ͋Γ·ͨ͠Βڭ͍͚͑ͯͨͩΔͱ͋Γ͕͍ͨͰ͢ɻ