Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelでのキャッシュの持ち方とAWS Fargateやイミュータブルインフラとの向き合い方

Avatar for TaikiKawamura TaikiKawamura
September 16, 2023

Laravelでのキャッシュの持ち方とAWS Fargateやイミュータブルインフラとの向き合い方

Laravelのキャッシュは多様な保存先を提供していますが、bladeのキャッシュについては疑問符が残るところがあります。
一方で、AWSのFargateはVolumeの設定をセキュリティの向上のためにReadOnlyにできたり、またイミュータブルインフラではWebサーバがステートレスであることが求められます。
そういった中で、Laravelではどういったキャッシュの持ち方をするといいのか、そんな問いかけや提案ができたらと考えています。

(と思ってました)

Avatar for TaikiKawamura

TaikiKawamura

September 16, 2023
Tweet

More Decks by TaikiKawamura

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ  • Տଜଠथ ͔ΘΉΒ͍͖ͨ • גࣜձࣾ3FMJDϓϩμΫτσΟϕϩοϓϝϯτࣄۀ෦௕ • ओͱ͍ͯ͠Δۀ຿ •

    όοΫΤϯυ։ൃ • Πϯϑϥߏங • 43& • झຯ • όΠΫɾυϥΠϒ • ञ • ϚϯΨ • ΧʔυήʔϜ • Ωϟϯϓɾ##2 ͜ΕΒ΁ͷޱग़͠
  2. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  3. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  4. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  5. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  6.  ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔ • ओʹ͸ηΩϡϦςΟͷͨΊ • "84'BSHBUFʹ͸SFBEPOMZ3PPU'JMFTZTUFNΦϓγϣϯ͕͋Γɺ ༗ޮʹ͢ΔͱϑΝΠϧ͕ॻ͖ࠐΊͳ͍Α͏ʹͰ͖Δ • ͔͠͠ɺ-BSBWFMΛ͜ΕͰಈ͔ͦ͏ͱ͢Δͱʮ7JFX$BDIF͕ ॻ͖ࠐΊͳ͍ʂʯͱݴΘΕͯಈ͔ͳ͍

    • ۃ୺ɺ3PPUͷϘϦϡʔϜ͸SFBEPOMZʹͯ͠3PPUҎ֎ͷϑΝ ΠϧγεςϜʹอଘ͢Δ͜ͱ͸Մೳ • Ωϟογϡޮ཰Λߟ͑ͯ΋ɺݸʑͷ8FCαʔόʹอ؅͞ΕΔΑ Γͳʹ͕͔͠ͷσʔλϕετΞʹอ؅ͨ͠΄͏͕ޮ཰త • ΠϛϡʔλϒϧΠϯϑϥΛߟ͑ͨͱ͖ʹεςʔτϨεͰ͋Δ͜ ͱ͕๬·͍͠ Ωϟογϡ͘Β͍͸͍͍͔΋Ͱ͕͢
  7. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  8.  ͜͜Ͱͷ݁࿦ • ϑΝΠϧʹอଘ͢Δͱ͍͏ϩδοΫ͕ϕλॻ͖Ͱॻ͍ͯ͋Δͨ ΊɺઃఆΛมߋͯ͠΋ϑΝΠϧʹॻ͔ΕΔͱ͍͏͜ͱ͔Βݱঢ় ͸ಀΕΒΕͳ͍ • ϑΝΠϧύεΛมߋ͢Δ͜ͱ͸ՄೳͳͷͰɺSPPUϘϦϡʔϜҎ ֎ͷ৔ॴʹॻ͖ࠐΉ͜ͱͰSPPUϘϦϡʔϜ͸SFBEPOMZʹ͢Δ͜ ͱࣗମ͸Մೳ

    • ͨͩ͠ϑΝΠϧͷมߋ؂ࢹʹ͍ͭͯݴٴ͞ΕΔͱπϥ͍ • ΩϟογϡͷઃఆͰશ͘ॻ͖ࠐ·ͳ͍ͱ͍͏͜ͱ͸Ͱ͖ͳ͍ • ΩϟογϡΛॻ͖ࠐΜͰ͍Δͱ͍͏ࢥ͍ࠐΈ͕͋ͬͨʂ • TIPVME$BDIF͸ΩϟογϡΛ࢖͏͔Ͳ͏͔͸൑ఆ͢Δ͕ɺ ΩϟογϡΛ࢖Θͳͯ͘΋ϑΝΠϧͷॻ͖ࠐΈ͸ίϯύΠ ϧʹͯߦΘΕΔ
  9. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  10. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  11. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  12.  ࠓޙͷల๬ • ϑΝΠϧύε΍FYQJSFͳͲ΋͔ͬ͠Γ࣮૷ͯ͠࢖͑Δ΋ͷʹ͢ Δ • FYQJSFͷಾΛղ͖໌͔͢ • ڀۃݱঢ়ͷFYQJSFͷϩδοΫ͸Ψϯແࢹͯ͠σϓϩΠ͝ͱʹ AQIQ

    BSUJTBOWJFXDBDIFAͰΩϟογϡ࡞ͬͯ͠·͏ͷ΋ӡ ༻ʹΑͬͯ͸ΞϦʁ • 3FBE0OMZͷΦϓγϣϯΛ༗ޮʹͨ͠ϘϦϡʔϜͷ'BSHBUFͰಈ ͔ͯ͠ΈΔ • ্ه͕Ͱ͖͖ͯͨΒ1VMM3FRVFTU΍Β*TTVFΛͩͨ͠Γͯ͠ΈΔ • ͞΋ͳ͘͹$PNQPTFSͷύοέʔδʹͯ͠ΈΔ
  13. ࠓ೔࿩͢͜ͱ  • ݁࿦ • -BSBWFMͷΩϟογϡʹ͍ͭͯ • -BSBWFMͷ7JFX$BDIFʹ͍ͭͯ • ͳͥ7JFX$BDIFΛϑΝΠϧҎ֎Ͱ͍࣋ͪͨͷ͔

    • ͳͥ7JFX$BDIF͸ϑΝΠϧҎ֎Ͱ࣋ͯͳ͍ͷ͔ • ࣮૷తͳҙຯͰ • ཧ༝తͳҙຯͰ • ͜͏ͯ͠Έͨ • ·ͱΊ • ࠓޙͷల๬ • એ఻
  14. ࠷ޙʹ  • 3FMJDͰ͸1)1ΤϯδχΞ͸໪࿦ɺଞ෼໺ͷΤϯδχΞ΋޿͘ ืू͍ͯ͠·͢ʂ • όοΫΤϯυ • ϑϩϯτΤϯυ •

    ϞόΠϧΞϓϦ • Πϯϑϥ • 43& • σβΠφʔ • 1E.ɺ1K. • ΤϯδχΞϦϯάϚωʔδϟʔ • ۈ຿஍ • ౦ژɺവؗɺ෋ࢁɺ඿দɺ໊ݹ԰ɺେࡕɺ࿨Վࢁɺౡࠜɺ ෱Ԭɺಹ೼ɺ໊ޢ • IUUQTSFMJDDPKQSFDSVJU