AWSとGCPそれぞれの特徴を比較したスライドです こちらのイベントで発表した資料です。 【サポーターズCoLab勉強会】AWS vs GCP 今から作るならどっちがいいの!? https://supporterzcolab.com/event/337/
AWS vs GCP ࠓ͔Β࡞ΔͳΒͲ͕͍͍ͬͪͷʂʁαϙʔλʔζCoLabษڧձ Mar 30 2018גࣜձࣾLOB Site Reliability EngineerଜҪ ᠳଠ࿕https://supporterzcolab.com/event/337/
View Slide
͖ΐ͏ͳ͢͜ͱ1. ࣗݾհ2. AWSͱ3. GCPͱ4. ʮAWS vs GCPʯ5. ͍ͯΔγεςϜ
ࣗݾհ• ଜҪᠳଠ࿕• @Show_murai• גࣜձࣾ LOB• Site Reliability Engineer※ຊͷൃදݸਓͷݟղͰ͋Γɺॴଐ͢Δ৫ͷެࣜݟղͰ͋Γ·ͤΜ
ࣗݾհ• ژग़ ౦ژࡏॅ• ࣾձਓ 6• ֶੜͷࠒը૾ೝࣝɺ ίϯϐϡʔλϏδϣϯΛݚڀͯ͠·ͨ͠• ৽ଔͰωοτϫʔΫػثͷ αʔόʔαΠυΤϯδχΞͬͯ·ͨ͠• લ৬αΠόʔΤʔδΣϯτͰΠϯϑϥΤϯδχΞ• झຯཱྀߦͰGWʹਂηϯߦ͘༧ఆ
͓·͑AWSৄ͍͠ͷʁ
ਓฒΈʹͬͯΔ(ͣ)• AWSྺɿ5͘Β͍• AWSͰ͖ͳαʔϏεɿRedshiftɺLambda• AWSೝఆɿAWS SAP• Re:Invent 2015 ࢀՃ͠·ͨ͠
͓·͑GCPৄ͍͠ͷʁ
ݱࡏGCPͰαʔϏε։ൃத• GCPྺɿ4͘Β͍• GCPͰ͖ͳαʔϏεɿPub/SubɺGKEɺLB• աڈͷൃදࢿྉ• GCPͰࠂಈըΛࣗಈੜͨ͠͠
օ༷ʹ࣭͍ͤͯͩ͘͞͞
AWSΛͬͯΔํ
GCPΛͬͯΔํ
ຊͷରऀ• AWS·ͨGCP͜Ε͔Β͍͍ͨਓ• AWSɺGCPͪΐͬͱͬͨਓ• ύϒϦοΫΫϥυͷೖͱ͔ॳ৺ऀͷਓ
ࠓ͓͢Δ͜ͱ• AWSͱͳʹ• GCPͱͳʹ• ʮAWS vs GCPʯ• ͦΕͧΕ͍ͯΔ༻్
AWSͱʁ
AWS(Amazon Web Service)ͱΫϥυίϯϐϡʔςΟϯάαʔϏε→Ϩϯλϧαʔόʔͷ͍ͭ͢͝ʮΠϯϑϥ͕WebαʔϏεʹͳͬͨʯAWS ʹ͍ͭͯhttps://aws.amazon.com/jp/about-aws/
AWSͷੈքల։• Ϧʔδϣϯ• େͳͲཧతʹΕͨྖҬ• 18ͷϦʔδϣϯ(ߋʹ4ͭϦϦʔε༧ఆ)• ౦ژɺόʔδχΞɺϩϯυϯ• ΞϕΠϥϏϦςΟʔκʔϯ• 1 ͭͷϦʔδϣϯʹෳͷͦΕͧΕಠཱͨ͠ϩέʔγϣϯ• ྫ. ౦ژϦʔδϣϯͷAZɿɺཱ ※࣮ࡍʹެ։͞Ε͍ͯ·ͤΜEC2 ϦʔδϣϯͱΞϕΠϥϏϦςΟʔκʔϯhttp://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
AWSͰग़དྷΔ͜ͱ(΄ΜͷҰ෦)• ΫϦοΫ·ͨAPIͰߏஙՄೳͳίϯϐϡʔτ• EC2• ΫϦοΫ·ͨAPIͰߏஙՄೳͳσʔλϕʔε• RDS• ੍ݶແ͠ͷσʔλετϨʔδ• S3• ετϦʔϜॲཧ• Kinesis (Stream)
࠾༻࣮ಋೖࣄྫ https://aws.amazon.com/jp/solutions/case-studies/all/
GCPͱʁ
GCP(Google Cloud Platform)ͱ• Google͕ఏڙ͢ΔύϒϦοΫΫϥυ• Google ࣾͰΘΕ͍ͯΔͷͱಉ͡ ςΫϊϩδʔΠϯϑϥΛఏڙ͍ͯ͠Δ ΫϥυαʔϏε• BigQueryɺGoogle MLͳͲଞͷΫϥυΑΓ ༏ҐੑΛͭαʔϏε͕͋Δ
GCPͷੈքల։• Ϧʔδϣϯ• େͳͲཧతʹΕͨྖҬ• 12ͷϦʔδϣϯ• ౦ژɺϩϯυϯɺΦϨΰϯ• ΞϕΠϥϏϦςΟʔκʔϯ• 1 ͭͷϦʔδϣϯʹෳͷͦΕͧΕಠཱͨ͠ϩέʔγϣϯ• ྫ. ౦ژϦʔδϣϯͷAZɿɺཱ ※࣮ࡍʹެ։͞Ε͍ͯ·ͤΜ
࠾༻࣮
AWSͱGCPͲ͕͍͍ͬͪͷ?
৴པੑͰݎ࿚͕ٻΊΒΕΔͳΒ
γϯϓϧͳγεςϜͳΒ
AWS vs GCP
ͱ͖ͬͭ͋͢͞Δҙຯݹ͍γεςϜͬͯΔਓଟ͍ใ͕ଟ͍ ެࣜɺblogɺqiitaͱ͔Google App EngineͷΠϝʔδڧ͠ʁઌਐతͳΞʔΩςΫνϟBigQueryฉ͍ͨ͜ͱ͋Δ
υΩϡϝϯτใऩू• AWS• ެࣜυΩϡϝϯτ ͔ͳΓॆ࣮͍ͯ͠Δ• AWS ΫϥυαʔϏε׆༻ࢿྉू ๛ͰࢀߟʹͳΔ• DevelopersIO ΊͪΌͪ͘Όݕࡧʹώοτ͢Δ• GCP• ެࣜυΩϡϝϯτͷຊޠΞοϓσʔτ͕͍ ӳޠͷ΄͏͕࣮֬• ٕज़తͳهࣄ͕AWSͱൺֱͯ͠গͳ͍
ςΫχΧϧαϙʔτ• AWSαϙʔτ• ༗ྉϓϥϯ͕ඞਢ• ༗ྉαϙʔτͷ࣭͔ͳΓߴ͍• ݪҼௐ͚ࠪͩͰͳ͘վળҊͳͲఏࣔͯ͘͠ΕΔ߹͋Γ(ݸਓత)• GCPαϙʔτ• ༗ྉϓϥϯ͕ඞਢ• ຊޠαϙʔτΰʔϧυ($400/݄)Ҏ্
DevOps• AWS CloudFormation• JsonͰߏཧқߴΊ• Yaml͑ΔΑ͏ʹͳͬͨ• қߴ͍͕ނʹใଟΊ• Google Cloud Deployment Manager• yamlͰॻ͚Δͷྑ͛͞• ݸਓతʹͬͯΔͷ• Terraform&AnsibleͰߏཧͱϓϩϏδϣχϯά
CLI tool• aws-cli• Homebrew ͰΠϯετʔϧՄೳ(MacOS)• Credential͕҉߸Խͳ͠Ͱอଘ͞ΕΔ• ࠔͬͨΒhelpΛແ৺Ͱଧ͚ͭͩ• gcloud• ॳظηοτΞοϓͰίέΔͱͭΒ͍• ࠔͬͨΒͬͺΓhelpଧͯΑ͍
Ϣʔβ/ݖݶͷཧ• AWS• IAMϢʔβɺϩʔϧͰࡉ͔͘ݖݶ͚ͭΒΕΔ• αʔϏεʹϩʔϧͰݖݶΛ͚ͭΒΕΔέʔε͋ͬͯྑ͍• ηΩϡϦςΟݫ͍͠ͱ͜ΖͰେৎ͔ͱ• GCP• IAMϢʔβ͕͋Δ͕ϕʔεӾཡɺ࡞ɺཧऀͱγϯϓϧ• ηΩϡϦςΟཁ݅ݫ͠ͷͱ͜ΖNGͩͱࢥ͏
ωοτϫʔΫ• AWS• VPCΛϦʔδϣϯຖʹ࡞• VPCͷϦʔδϣϯؒଓՄೳ• ϨΨγʔωοτϫʔΫނʹཧղ͍͢͠• ΦϯϓϨͱͭͳ͍͗͢• DCଓͷιϦϡʔγϣϯ͕ଟ͍• GCP• άϩʔόϧͰ1ͭͷVPC࡞Δ͚ͩ• GCPͷωοτϫʔΫ΄Μͱੌ͍• FirewallϧʔτϨʔϒϧλάͰཧͰ͖Δ
ϩʔυόϥϯα• AWS• ELBɺALBɺNLBछྨଟ͍͔ΒͰ͖Δ͜ͱଟ͍• εέʔϧΞοϓ࣌ͷԆ͕ଟ͍• GCP• ࡞͔ΒαʔϏε։࢝·Ͱҟৗʹ͍(2,3sec)• IP anycastͱ͍͏ٕज़ΛٿنͰόϥϯγϯά• ಉ͡IPΞυϨεΛͬͯશੈք͔ΒΞΫηε͢Δ͜ͱ͕Մೳ
IP AnycastIntroducing the new Google Cloud Load Balancing UIhttps://cloudplatform.googleblog.com/2016/04/introducing-the-new-Google-Cloud-Load-Balancing-UI.html
Managed RDB• AWS RDS• MySQLޓͷAWSಠࣗΤϯδϯAurora͕࠷ڧ• ओཁͳσʔλʔϕʔεΤϯδϯἧͬͯΔ• ఆظϝϯςφϯεʹඋ͓͑ͯ͘• Cloud SQL• CloudSQLࣗͰνϡʔχϯάඞཁ• PostgreSQL·ͩBETA• ఆظϝϯςφϯε͕ಥવͬͯ͘Δ
NoSQLɺKVS• AWS• DynamoDBϨΠςϯγͷNoSQLσʔλʔϕʔε• ElasticCacheΦϯϝϞϦKVS• GCP• BigtableɺDatastoreͳͲͷGoogleͷόοΫΤϯυͰ ར༻͍ͯ͠ΔαʔϏεΛ͑Δ• ManagedΩϟογϡαʔϏε͕ݱঢ়ແ͍ ※GAEͷmemcachedআ֎
Storage• AWS S3• ඇৗʹߴ͍ٱੑ• ࡉ͔ͳݖݶઃఆ͕Մೳ• ੩తίϯςϯπͷϗεςΟϯά• Cloud Storage• Multi-RegionalͰ౦ژʹஔ͞Εͳ͍ͬΆ͍• IAMݖݶͰRead/Write/Admin͔͠ݖݶ͕͚Εͳ͍
Container Management• AWS ECS• ecs-cli ΛΈ߹Θͤͯ͏ͱศར• εέʔϧ/σϓϩΠपΓΩϟονΞοϓ͕ඞཁ• EC2ؚΊͯཧ͢ΔͳΒCloudFormationͱΈ߹Θͤ• Google Container Engine(GKE)• kubernetesΛ͑Δ• kubernetes͕ίϯςφϚωδϝϯτͩͱϝΠϯετϦʔϜ(ଟ)
Container Management• AWS ECS• ecs-cli ΛΈ߹Θͤͯ͏ͱศར• εέʔϧ/σϓϩΠपΓΩϟονΞοϓ͕ඞཁ• EC2ؚΊͯཧ͢ΔͳΒCloudFormationͱΈ߹Θͤ• AWS Elastic Container Service for Kubernetes• AWSͰϚωʔδυ kubernetes Λ͑Δʂʂʂ• ·ͩެ։͍ͯ͠ͳ͍(ϓϨϏϡʔ)• Google Kubernetes Engine(αʔϏε໊มΘΓ·ͨ͠ʂ)• ϑϧϚωʔδυͷ kubernetes Λ͑Δ• kubernetes͕ίϯςφϚωδϝϯτͩͱϝΠϯετϦʔϜ
ϞχλϦϯάαʔϏε• AWS CloudWatch• μογϡϘʔυΛ࡞Δͷ͕େม• Ξϥʔτͷઃఆ̍ͭͣͭߦ͏ඞཁ͋Γ• Google Stackdriver• ϝτϦοΫͷऩू͕ఆৗతʹέʔε͕͋Δ• AWSΦϯϓϨagentΛར༻ͯ͠ࢹՄೳ• ΞϥʔτͷઃఆάϧʔϓͰग़དྷΔ• μογϡϘʔυ͕ݟ͍͢• αʔυύʔςΟπʔϧͷ΄͏͕༏ल(༗ྉ)• DatadogɺNew RelicɺMackarelͳͲ
ίετ• AWS• EC2Πϯελϯείετߴ͍• εϙοτΠϯελϯε(Ұ࣌తͳΠϯελϯε)ͷΈ͕ͪΐͬͱ͍͠• ϚωʔδυαʔϏεαʔόϨεΛ͏ͱ͍҆• GCP• GCEΠϯελϯείεύྑ͍• ׂ࣌ؒҾࣗಈదԠ• ϓϦΤϯϓςΟϒϧΠϯελϯε؆୯ʹ͑Δ• BigQueryͷैྔ՝ۚʹҙ
݁Ռ
ཧղ͍͢͠υΩϡϝϯτॆ࣮αϙʔτྑ͍IAMݖݶϦϨʔγϣφϧσʔλʔϕʔεNoSQLɺKVSετϨʔδαʔϏεωοτϫʔΫϩʔυόϥϯαίϯςφϚωδϝϯτϞχλϦϯάίετ
AWSʹ͍ͯΔ༻్• ΤϯλʔϓϥΠζ͚γεςϜ(ߗ͍ͱ͜Ζ)Ͱ͍͍ͨ• ηΩϡϦςΟݖݶΛݫ֨ʹཧ͍ͨ͠• ΦϯϓϨϛεͱϋΠϒϦουΫϥυΛ࣮ݱ͍ͨ͠• ϨΠςϯγDBΛ༻͢Δඞཁ͕͋Δ• AWSͱ࿈ܞ͢ΔαʔυύʔςΟαʔϏεΛ͍͍ͨ
GCPʹ͍ͯΔ༻్• γϯϓϧͳ3WebΞϓϦέʔγϣϯ• άϩʔόϧͰαʔϏεΛ͍ͨ͠• BigQueryΛͬͯੳ͍ͨ͠• TensorFlowΛͬͯػցֶशΛߦ͍͍ͨ• ઑٕͬͨज़͍͍ͨ
݁ɿ࠷దͳπʔϧΛબͿ
Q & A
͋Γ͕ͱ͏͍͟͝·ͨ͠