Cloud RunͬͯͳΜͶΜCloud Native Kansai #4Shogo Muranushi
View Slide
Shogo MuranushiABEJA, Inc.- ABEJA Platform Product Owner- Lead Infrastructure Engineer
ࡢͷ͋Δ
αʔϏεͷಛੑʹ߹Θͤͯ։ൃ͍ͯͨ͠• ʮͪΐͬͱͨ͠ॲཧ͚ͩͩ͠େͯ͠Քಇ͠ͳ͍͠FaaSͰΉ͔ʯ• ʮॲཧྔଟ͍͠αʔόϨεͩͱߴ͘ͳΔ͔ΒίϯςφͰ࡞Δ͔ʯor
͕࣌ؒܦա• ʮϦΫΤετྔ͕૿͑ͯɺFaaSͰΜͩͱ͜Ζͷॲཧ͕૿Ճʂ՝ֹ͕ۚΤϥΠ͜ͱʹʂʂ͜͜ͷॲཧLambda͔Βίϯςφʹม͑Α͏ʯ• ʮίϯςφͰ࡞͚ͬͨͲɺػೳ͕ॖୀ͖ͯͯ͋͠·ΓΘΕ͍ͯͳ͍͔Βৗ࣌ىಈࣙΊ͍ͨɻLambdaͰॻ͖͢ʁʯ
͔ͯ• ͳΜͰॻ͖͞ͳ͔͋ΜͶΜɻ࣌ؒମͳ͍Θ• ϫʔΫϩʔυʹ߹ΘͤͯόοΫΤϯυͷΠϯϑϥ͕উखʹΓସΘͬͯ͘ΕͨΒ࠷ߴͳͷʹ• ԶαʔόϨεͱίϯςφͷྑ͍ͱ͜Ζ͚ͩͷԸܙΛड͚͍ͨ
ࡢՆʹKnative͕ੜͨ͠
Knativeͱ• Kubernetesͷ্ͰαʔόϨεϥΠΫͳڥΛ࡞ΕΔ• ϦΫΤετϕʔεͰίϯςφ͕ىಈ͢Δ Serving• ΠϕϯτۦಈͰॲཧ͢Δ Eventing• ιʔείʔυ͔ΒίϯςφʹϏϧυ͢Δ Build
FaaSͱԿ͕ҧ͏ʁ• มΘΒͳ͍ͱ͜Ζ• ϦΫΤετ͕དྷͨΒ Compute ͕ىಈͯ͠ɺҰఆظؒϦΫΤετ͕ແ͍ͱఀࢭ͢Δ
FaaSͱԿ͕ҧ͏ʁ• ίϯςφͳͷͰ੍͕গͳ͍• ݴޠɺϖΠϩʔυαΠζɺॲཧ࣌ؒɺϦιʔεɺin VPCͳͲ• KubernetesΤίγεςϜͷԸܙΛड͚֦͘͢ுੑ͕ߴ͍• KubernetesͳͲͷΠϯϑϥཧෆཁͳͷͰָ• EC2ͳͲෆཁͳͷͰɺϦιʔεͷແବ͕ͳ͍҆͘
Ͳ͕ͬͪྑ͍ͷʁʢྫʣ• ࠓޙͷ։ൃείʔϓͰ੍ͷதͰແ͍ͳΒ FaaS• ੍ͷதͰेॲཧͰ͖Δ• FaaSͷࢥʹϚον͢ΔਓࡐΛ֬อͰ͖Δ• ͱΓ͋͑ͣϓϩτλΠϓ͔ͩΒ• KubernetesγϯυΠ• ࠓޙͷ։ൃείʔϓͰ੍͕ݫ͘͠ͳΓͦ͏ͳΒ Knative• ίϯςφͳͷͰ੍গͳ͍• ίϯςφͳͷͰɺΞϓϦͷมߋͳ͘ޙͰԿ༷ʹͰߏΛม͑ΒΕΔ
·ͩΓͳ͍• ʮKubernetesͷӡ༻ʹ׳Ε͖͔ͯͨΒྑ͍͚Ͳɺग़དྷΕΠϯϑϥͷ໘ݟͨ͘ͳ͍ΜͩΑͳʯ
ࠓͷय़ʹCloud Run͕ੜͨ͠
Do you know Cloud Run ?• Βͳ͍• ͬͯΔ͚Ͳɺ৮ͬͨ͜ͱͳ͍• ৮ͬͨ͜ͱ͋Δ• ͍ͬͯΔ
ͭ·ΓɺCloud Run ʹ Full Managed Knative• ΠϯϑϥͷཧෆཁͳίϯςφͷͨΊͷαʔόϨεج൫• ՝ۚମܥFaaSͱಉ͡• FaaSͱίϯςφͷ͍͍ͱ͜औΓ• ͨͩ͠ൃల్্ͷͨΊ·ͩػೳগͳ͍ʴ =
Cloud Runͷಛ
Cloud Runͷಛ• Serverless Container• Request driven workload• Scale to zero• Event driven workload• Scale to zero• Full Managed / Multi-zone• Container• Any Language• Any Library• Any Binary• Ecosystem of base images
Concurrency = 1Concurrency = 80ඞཁͳΠϯελϯε͕গͳ͍ίʔϧυελʔτͷස͕͍
LambdaͳͲͷFaaSͷ߹ฒྻ͚ͩ՝ۚCloud Runͷ߹ฒྻ͚ͩ՝ۚ͞Εͳ͍
80ฒྻͷίϯςφϦΫΤετ੨ϨΠςϯγ0ͷঢ়ଶ͔Β60ඵؒͰ15,000ΫϥΠΞϯτ80ສҎ্ͷϦΫΤετΛୡ
Cloud Run͕ࠓͰ͖ͳ͍͜ͱ• Max: 1vCPU / 2GB RAM• GPUඇରԠ• CloudSQLඇରԠʢComming Soonʣ• VPCඇରԠʢComming Soonʣ• άϩʔόϧϩʔυόϥϯαʔඇରԠ• KnativaͷyamlఆٛඇରԠʢ2019தରԠ༧ఆʣ• gRPCඇରԠ• άϩʔόϧαʔϏεͰͳ͍ɻϦʔδϣφϧαʔϏε• gVisorΛར༻͍ͯ͠ΔͨΊະ࣮ͷγεςϜίʔϧ͕͋Δ͔
ͪͳΈʹ
• AWS Lambda, GCP Cloud FunctionͳͲɺ࣮͕όϥόϥʹͳ͍ͬͯΔͨΊ։ൃऀͷख͕ؒ૿͍͑ͯΔ• ͦͷͨΊCNCFΛத৺ͱͯ͠CloudEventsͱ͍͏αʔόϨεͷEventॲཧͷΠϯλʔϑΣΠεΛඪ४ن֨Խ࢝͠Ίͨ• CNCFͦΕҎ֎ίϯςφΛத৺ʹଟͷඪ४ԽΛਐΊ͍ͯΔɻ αʔόϨεͱίϯςφͷϫʔΫϩʔυͷڥͷKnativeͳͲʹΑͬͯແ͘ͳΔͷͰ
ͪΌͿ͕མͪண͍ۙ͘
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠