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

Lambda@Edgeを利用したサードパーティJavaScriptのカナリアリリース / Canary release using Lamdba@Edge

Lambda@Edgeを利用したサードパーティJavaScriptのカナリアリリース / Canary release using Lamdba@Edge

2021-05-28 @AWS Dev Alliance

D32564792887e3fb5955021f9804c0a6?s=128

Edward Fox

May 28, 2021
Tweet

Transcript

  1. Lambda@Edge Λར༻ͨ͠ αʔυύʔςΟJavaScriptͷ ΧφϦΞϦϦʔε Edward Fox 2021/05/28 @AWS Dev Alliance

  2. @edwardkenfox Edward Fox ɾΤϯδχΞ @ Reproגࣜձࣾ ɾWEBʗϒϥ΢βٕज़શൠɺ෼ࢄॲཧ ɾόεέɺϏʔϧɺӉ஦ 2/52

  3. ࠓ೔࿩͢͜ͱ: Lambda@Edge Λར༻͠ ҆શͳܗͰϦϦʔε͕Ͱ͖Δ Α͏ʹͳͬͨ࿩ 3/52

  4. ࠓ೔࿩͞ͳ͍͜ͱ: Lambda@Edge ͷػೳ঺հ ͳͲ 4/52

  5. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬ 5/52
  6. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  7. αΠτʹຒΊࠐΜͰ΋Β͍ σʔλΛऩूͨ͠Γૹ৴͢Δ αʔυύʔςΟͷJavaScriptίʔυɻ Google Analyticsʹ୅ද͞ΕΔΑ͏ͳ λά΍޿ࠂܭଌπʔϧ͕͜Εʹ͋ͨΔ 7/52

  8. ※ ฐࣾͰఏڙ͍ͯ͠Δ αʔυύʔςΟJavaScript ͸ Web SDKͱ΋ݺ͹Ε͍ͯ·͢ 8/52

  9. ※ ࣮ࡍͷ΋ͷͱ͸ҟͳΓ·͢

  10. Web SDK ʹมߋ͕͋Δͨͼʹ ϦϦʔεΛ࣮ࢪ͢Δ͕ repro-sdk.min.js ͸ৗʹ ࠷৽όʔδϣϯΛࢀর͢Δ 10/52

  11. None
  12. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  13. ৽͍͠όʔδϣϯΛϦϦʔε ͢Δͱ ଈ࣌͢΂ͯͷ ΫϥΠΞϯτͰಈ࡞Λ࢝ΊΔ 13/52

  14. 👍 ɾ໰୊͕͋ͬͨΒ͙͢ʹؾ෇͚Δ 👎 ɾ໰୊͕͋ͬͨͱ͖ͷඃ֐͕ਙେ 14/52

  15. ڪාͷҰٿೖࠢϦϦʔε 😇 15/52

  16. ༷ʑͳϒϥ΢β΍΢ΣϒαΠτͰ ಈ࡞͢ΔαʔυύʔςΟ JavaScriptͱ͍͏ੑ࣭తʹɺ ΫϥΠΞϯτґଘͰى͖Δ໰୊Λ ͢΂ͯࣄલʹ༧ଌ͢Δ͜ͱ͸ࠔ೉

  17. => ຊ൪ʹग़ͯ͠Έͳ͍ͱ ෼͔Βͳ͍ɻ Ͱ΋ͳΔ΂҆͘શʹग़͍ͨ͠ 17/52

  18. ͦΜͳͱ͖ͷͨΊͷ ΧφϦΞϦϦʔε 🐧 🐧 🐧 18/52

  19. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  20. https://martinfowler.com/bliki/ CanaryRelease.html ͔ΒҾ༻ 20/52

  21. 1. 2. 3.

  22. 22/52

  23. Web SDKʹ͓͚Δ ΧφϦΞϦϦʔεͷཁ݅ 23/52

  24. 1. Web SDKʹର͢ΔτϥϑΟοΫશମʹରͯ͠ ภΓͳ͘৽چόʔδϣϯΛ෼ࢄ͍ͤͨ͞ 2. ΫϥΠΞϯτ͝ͱʹ͸৽چόʔδϣϯΛ ͲͪΒ͔ʹݻఆ͍ͤͨ͞ 3. ৽چόʔδϣϯͷৼΓ෼͚ͷׂ߹Λࢦఆ ͍ͨ͠ɻ·ͨঃʑʹׂ߹Λม͍͑ͨɻ

    24/52
  25. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  26. 26/52

  27. 27/52

  28. None
  29. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  30. 1. Web SDKʹର͢ΔτϥϑΟοΫશମʹରͯ͠ ภΓͳ͘৽چόʔδϣϯΛ෼ࢄ͍ͤͨ͞ 2. ΫϥΠΞϯτ͝ͱʹ͸৽چόʔδϣϯΛ ͲͪΒ͔ʹݻఆ͍ͤͨ͞ 3. ৽چόʔδϣϯͷৼΓ෼͚ͷׂ߹Λ ࢦఆ͍ͨ͠ɻ·ͨঃʑʹׂ߹Λม͍͑ͨɻ

    30/52
  31. 1. Web SDKʹର͢ΔτϥϑΟοΫશମʹରͯ͠ ภΓͳ͘৽چόʔδϣϯΛ෼ࢄ͍ͤͨ͞ 2. ΫϥΠΞϯτ͝ͱʹ͸৽چόʔδϣϯΛ ͲͪΒ͔ʹݻఆ͍ͤͨ͞ 3. ৽چόʔδϣϯͷৼΓ෼͚ͷׂ߹Λ ࢦఆ͍ͨ͠ɻ·ͨঃʑʹׂ߹Λม͍͑ͨɻ

    30/52 👌👌👌
  32. 1. Web SDKʹର͢ΔτϥϑΟοΫશମʹରͯ͠ ภΓͳ͘৽چόʔδϣϯΛ෼ࢄ͍ͤͨ͞ 2. ΫϥΠΞϯτ͝ͱʹ͸৽چόʔδϣϯΛ ͲͪΒ͔ʹݻఆ͍ͤͨ͞ 3. ৽چόʔδϣϯͷৼΓ෼͚ͷׂ߹Λ ࢦఆ͍ͨ͠ɻ·ͨঃʑʹׂ߹Λม͍͑ͨɻ

    30/52 👌👌👌 👌👌
  33. 1. Web SDKʹର͢ΔτϥϑΟοΫશମʹରͯ͠ ภΓͳ͘৽چόʔδϣϯΛ෼ࢄ͍ͤͨ͞ 2. ΫϥΠΞϯτ͝ͱʹ͸৽چόʔδϣϯΛ ͲͪΒ͔ʹݻఆ͍ͤͨ͞ 3. ৽چόʔδϣϯͷৼΓ෼͚ͷׂ߹Λ ࢦఆ͍ͨ͠ɻ·ͨঃʑʹׂ߹Λม͍͑ͨɻ

    30/52 👌👌👌 👌👌 👌
  34. 1. αʔυύʔςΟJavaScriptͱ͸ 2. ϦϦʔεͷ໰୊఺ 3. ΧφϦΞϦϦʔε ͱ͸ 4. Lambda@Edge Ͱͷ࣮ݱํ๏

    5. ݁Ռ 6. AWS ͞Μ΁ͷཁ๬
  35. None
  36. None
  37. ຖճίʔυΛॻ͖׵͑ͳ͚Ε͹ ͍͚ͳ͍ͷ͸໘౗ 37/52

  38. => ͦ͏ͩɺ؀ڥม਺Λ࢖͓͏ 38/52

  39. None
  40. None
  41. None
  42. None
  43. 😱 😱 😱 43/52

  44. ཁ๬1: ؀ڥม਺ͷαϙʔτ 🙏 44/52

  45. None
  46. None
  47. None
  48. 🤔 🤔 🤔 48/52

  49. ཁ๬2: UIͷվળ 🙏 49/52

  50. ·ͱΊ 50/52

  51. ɾLambda@Edge Λར༻ͯ͠ΧφϦΞ ϦϦʔεΛ࣮ݱ͠ɺ҆৺ɾ҆શͳܗͰ ϦϦʔεΛ࣮ࢪͰ͖ΔΑ͏ʹͳͬͨ ɾ͜ΕҎ֎ʹ΋ Lambda@Edge ͸ଟ͘ͷ Ϣʔεέʔεʹ࢖͑ΔػೳͳͷͰɺ ࠓޙ΋ՄೳੑΛ୳͍͖͍ͬͯͨ 51/52

  52. ׬ 52/52

  53. We are hiring!

  54. None
  55. None
  56. None