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

ServerlessのおさらいとIronFunctionsについて

youyo
December 03, 2016

 ServerlessのおさらいとIronFunctionsについて

youyo

December 03, 2016
Tweet

More Decks by youyo

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ • ੴᖒ௚ਓ(youyo_) • ΠϯϑϥΤϯδχΞ • ੨৿ݝग़਎ઋ୆ࡏॅ • JAWS-UG੨৿ίΞϝϯόʔ •

    גࣜձࣾϔϓλΰϯ • http://blog.youyo.info/ • ࠷ۙϋϚ͍ͬͯΔ΋ͷ • golang • GAE • ਏ͍͜ͱ • re:InventͰαʔϏε૿͑͗͢…
  2. Serverless͓͞Β͍ͷલʹొ৔ਓ෺঺հ • AWS Lambda • ίʔυΛAWS LambdaʹσϓϩΠ͢ΔͱɺԿ͔͠ΒͷΠϕϯτ ΛτϦΨʔʹͯͦ͠ͷίʔυΛ࣮ߦͯ͘͠ΕΔίϯϐϡʔςΟ ϯάαʔϏε •

    ࣮ߦʹ͔͔ͬͨCPU࣌ؒ୯ҐͰͷैྔ՝ۚ • node.js/Java/python/C#Λαϙʔτ • AWSͷFaaS୲౰ • Amazon API-Gatewayͱ૊Έ߹Θͤͯ࢖͏έʔε͕ଟ͍
  3. Ͱ΋αʔόʔϨεʹ͸ผͷଆ໘΋͋ΔΑͶʁ • ΞϓϦέʔγϣϯ࣮ߦ؀ڥͱͯ͠ͷଆ໘͸
 Amazon API Gateway + AWS Lambda ͷ૊Έ߹ΘͤͰ࣮ݱ͞

    ΕΔεςʔτϨεͳΞϓϦέʔγϣϯαʔόͱͯ͠ɻ • Ͱ΋AWS Lambda࣮ߦͷτϦΨʔͱͳΔͷ͸HTTPϦΫΤε τ͚ͩ͡Όͳ͍ • S3΁ͷΦϒδΣΫτ഑ஔɺDynamodb΁ͷΠϯαʔτͳͲ ͷΠϕϯτΛτϦΨʔͱ࣮ͯ͠ߦ͢Δ͜ͱ͕Ͱ͖Δ • API-Gatewayܦ༝ͷHTTPϦΫΤετ΋ҰͭͷΠϕϯτͱߟ ͑ΒΕΔ
  4. ΠϕϯτυϦϒϯΞʔΩςΫνϟ • Ϋϥ΢υαʔϏε͔Βൃߦ͞ΕͨΠϕϯτΛτϦΨʔͱͯ͠ ࣍ͷॲཧΛ࣮ߦ͢Δ • ϐλΰϥεΠονతͳ • Πϕϯτ͕ൃੜ͢Δ·Ͱ࣍ͷॲཧ͸࣮ߦ͞Εͳ͍ • ࣮ߦॲཧ࣌ؒ୯ҐͰ՝ۚ͞ΕΔAWS

    Lambdaͱ૬ੑ͍͍ • ͍ͭى͜Δ͔Θ͔Βͳ͍Πϕϯτʹରͯ͠ΠϯελϯεΛ ىಈ͠ଓ͚͍ͯͨ৔߹ʹൺ΂ͨΒɺѹ౗తʹίετ࡟ݮͰ ͖Δέʔε΋Πϕϯτ͕ൃੜ͢Δ·Ͱ࣍ͷॲཧ͸࣮ߦ͞Ε ͳ͍ • AWS LambdaͷΑ͏ͳFaaSΛɺαʔϏεಉ࢜Λͭͳ͙΋ͷͱ ͯ͠࢖͏
  5. σϓϩΠΊΜͲ͍͘͞໰୊ • πʔϧ͕ॆ࣮͖ͯͨ͠ • Serverless framework • Apex • Lamvery

    • ͢ͰʹΊΜͲ͘͘͞ͳ͘ͳ͍ͬͯͨɻٕज़ͷਐา͸ૣ͍ɻ • ݸਓతʹ͸API-Gatewayͱͷ࿈ܞ·Ͱ͸ͦΕ΄Ͳඞཁͱͯ͠ ͳ͍ͷͰLamvery࢖ͬͯΔɻศརʂ
  6. ͦ΋ͦ΋Function୯ҐͰࡉ੾Εʹ͞Ε ͨΞϓϦέʔγϣϯΛ࡞Ε·͔͢ʁ • αʔόʔϨεͷগ͠લʹMicro Services͕ྲྀߦΓ·ͨ͠ΑͶʁ • ϞϊγϦοΫͳαʔϏε͡Όͳͯ͘ɺ΋ͬͱࡉ͔͍ػೳ୯ ҐͰαʔϏεΛ෼͚ͯɺαʔϏεؒ͸REST APIͰૄ݁߹ʹ ͯ͠ʙ

    • ͦͷྲྀΕʹ৐࣮ͬͯફͨ͠ਓ͕ͲΕ΄Ͳ͍Δͷ͔ • ΋ͪΖΜͦͷޙͷγεςϜઃܭࢥ૝ʹ͸େ͍ʹӨڹΛ༩͑ ͨͩΖ͏ • ͕ͩ෼ׂ͢Δ΄Ͳେ͖ͳγεςϜ͡Όͳ͔ͬͨΓɺ؅ཧ͢ ΂͖γεςϜ͕૿͑Δ͜ͱʹΑΔίετ૿Λݒ೦ͯ͠΍Β ͳ͍ͱ͍͏൑அ΋͋ͬͨ͸ͣ
  7. αʔόʔϨεΞʔΩςΫνϟ·ͱΊ • αʔόʔϨεʹ͸2ͭͷଆ໘͕͋Δ • Function୯ҐͰίʔυΛ࣮ߦʹ͢Δ͜ͱͰɺΞϓϦέʔγϣϯ αʔόͷ؅ཧΛෆཁʹͨ͠ϑϧϚωʔδυͷΞϓϦέʔγϣϯ ࣮ߦ؀ڥ • ΠϕϯτυϦϒϯʹϑϧϚωʔδυαʔϏεΛͭͳ͙͜ͱͰɺ ͦΕΒΛͭͳ͙໾ׂΛ͍ͯͨ͠؅ཧαʔόΛͳͨ͘͠(FaaSʹ

    ஔ͖׵͑ͨ)γεςϜΞʔΩςΫνϟ • αʔόʔϨεΞʔΩςΫνϟʹͩ͜ΘΓ͗͢ͳ͍ • ޲͖ෆ޲͖͸Ͳ͏ͯ͠΋͋Δ • େ੾ͳͷ͸҆ఆͨ͠αʔϏεΛఏڙ͠ଓ͚Δ͜ͱ • ͦͷͨΊʹϕετͳγεςϜΞʔΩςΫνϟબ୒Λ
  8. IronFunctions͕΋ͨΒ͢΋ͷ • ͜Εςετͱ͔Ͳ͏͢Μͷʁ ίʔυॻ͍ͯ΋ϩʔΧϧͰ࣮ߦͰ͖ ͳ͘ͳ͍ʁ • खݩʹIronFunctionsͷ؀ڥΛDockerͰ্ཱ࣮ͪ͛ͯߦ͢Ε͹ ͍͍ • AWS

    Lambdaʹো֐͋ͬͨΒ… • AWS Lambdaͷίʔυ͕ͦͷ··ಈ͘Μ͔ͩΒผͷΫϥ΢υ؀ ڥʹͰ΋IronFunctions؀ڥ্ཱͪ͛ͯσϓϩΠ͢Ε͹͍͍
 ˞ ͨͩ͠ΠϕϯτυϦϒϯͳγεςϜ͸Ͳ͏͠Α͏΋ͳ͍ͷͰ Ұ୴๨ΕΔ
  9. IronFunctions·ͱΊ • ͍ΖΜͳݴޠ͕࢖͑Δͷ͸ັྗత • AWS LambdaϑΥʔϚοτ͕Ͳ͜Ͱ΋ಈ͔ͤΔͱ͍͏ͷ΋ັྗత • AzureFunctions΍CloudFunctionsͱͷޓ׵ੑʹ΋ظ଴͍ͨ͠ͱ͜Ζ • Triggerͱͯ͠࢖͑ΔΠϕϯτ͸Ͳ͏ͳΜͩΖ͏ʁ

    Openstackͷ Ceilometerʹ͸ରԠ͍ͯ͠ΔΈ͍ͨ • ServerlessΞʔΩςΫνϟʔͷಛ௃ͷҰͭͱͯ͠ɺΠϕϯτυϦϒϯͳ ΋ͷΛ࡞ΕΔ͔ͱ͍͏ͷ΋ॏཁͳ΢ΣΠτΛ઎ΊΔͱࢥ͏ͷͰɺ͜ͷ ลΓʹ΋ظ଴͍ͨ͠ (Πϕϯτൃߦଆ͸Կऀʁͱ͍͏ͷ͸ஔ͍ͱ͍ͯ) • ஫ҙ఺ͱͯ͠ࠓ͸·ͩα൛ͳͷͰϓϩμΫγϣϯಋೖ͸ආ͚ͨ΄͏͕Α ͦ͞͏ɻ࣮ࡍ৮ͬͯͯόά͋ͬͨ͠