「GCPを検討しているエンジニアのための Compute Engine と AWS の比較」 というタイトルで #gcpug 2015/04/17 で喋った時の資料です
Google Cloud Platform&Amazon Web ServiceGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 1
View Slide
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 2
ࣗݾհ• Yoshikawa Ryota ( @rrreeeyyy )• גࣜձࣾϋʔτϏʔπ ( http://heartbeats.jp )• Managed Service Providor ͷձࣾͰ͢• Linux ܥͷαʔόࢹ/ཧΛओʹ͍ͬͯ·͢• ج൫։ൃάϧʔϓ ج൫։ൃΤϯδχΞ• ࣗಈԽɾࢹۀʹؔΘΔϓϩμΫτ࡞ͳͲ͕ओͰ͢Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 3
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 4
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 5
GCP ͱ AWS• (Google|Amazon) ͷఏڙ͢ΔΫϥυαʔϏε• IaaS/PaaS/SaaS ͷෳͷαʔϏεΛ·ͱΊ໊ͨশ• GCP Google I/O 2013 Ͱൃද• ͱݴ͑ੲ͔Β App Engine ͷαʔϏε͋ͬͨ• AWS 2006 7 ݄ʹൃද• ຖαʔϏεϦʔδϣϯΛՃ͠ண࣮ʹ͍ͯ͠ΔGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 6
࠷ॳʹॴײ - GCP• GCP ߴ͍ٕज़ྗΛϕʔεʹͨ͠αʔϏεల։• Google ͕ࣾࣗࣾͷҝʹ։ൃٕͨ͠ज़͕ΈΜͳ͑Δ• ಛʹ ࢄॲཧ/ෛՙࢄ/ԾԽ/ίϯςφԽ/NW ... ͕ڧ͍• Google Compute Engine (& Load Balancer)• Google Container Engine/Google App Engine• Google BigQuery ͷαʔϏεʹݱΕͯΔGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 7
࠷ॳʹॴײ - AWS• AWS ϢʔβχʔζΛϕʔεʹͨ͠αʔϏεల։• ࠓΫϥυͷσϑΝΫτελϯμʔυ• ๛ͳαʔϏε/ར༻ࣄྫ/ར༻ݟ• ΄ͱΜͲͷࣄ͕ AWS Ͱ݁Ͱ͖Δʂ• ݟ͕๛ʹ͋ΓɺϢʔβ͕࡞ͨ͠πʔϧଟ͋͘Δ• બΔΠϯελϯελΠϓ/σʔλϕʔελΠϓ๛Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 8
GCP ͷ֤ػೳΛAWS ͷػೳͱൺֱ͠ͳ͕ΒհGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 9
GCP - AWS αʔϏεରԠද 00 http://gihyo.jp/admin/serial/01/google-cloud-platform/0001 (ࣅ͍ͯΔαʔϏεͷରԠͳͷͰҧ͏ͱ͜Ζ͋Γ·͢)Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 10
Google Compute Engine (GCE)Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 11
Google Compute Engine (GCE)• Google ͷ IaaS• ىಈ͕ͱͯૣ͍(େମ 30 ඵఔ)• ͞ΕͨϥΠϒϚΠάϨʔγϣϯ 1• Developer Console Λ͍ϒϥβ͔Β SSH ૢ࡞Մೳ• ී௨ͷσΟεΫͷϥϯμϜ I/O ͕ૣ͍1 http://www.rightscale.com/blog/cloud-industry-insights/google-compute-engine-live-migration-passes-testGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 12
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 13
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 14
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 15
GCE <=> Amazon EC2• (ΠϯελϯελΠϓ|αϙʔτ OS) EC2 ͷํ͕গ͠ଟ͍• ͱ͍͑ GCE ͰجຊతʹࠔΒͳ͍͙Β͍͋Δ• ϋΠεϖοΫͳΠϯελϯε EC2 ͷํ͕ଟ͍• GCE ͔Βجຊతʹϝʔϧ͕ૹΕͳ͍• SendGrid ͷ֎෦αʔϏεΛ͏ 22 https://cloud.google.com/compute/docs/tutorials/sending-mailGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 16
GCE <=> Amazon EC2• EC2 ϦβʔϒυΠϯελϯε/εϙοτΠϯελϯε͕͋Δ• ར༻ํ๏ʹΑ্͕ͬͯ҆͘Δ͜ͱ͋Δ͔• GCE Sustained use discounts ͕͋Δ• ͘͏͚ͩͰউखʹ҆͘ͳ͍ͬͯ͘• GCE 1 ୯Ґ/ EC2 1 ࣌ؒ୯ҐͰ՝ۚGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 17
GCE LoadbalancerGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 18
GCE Loadbalancer• GCE/GKE(ޙड़) Ͱར༻Ͱ͖Δϩʔυόϥϯαػೳ• Network Loadbalancer ͱ HTTP Loadbalancer ͕͋Δ• ΥʔϜΞοϓෆཁ (google.com ͱಉ͡Πϯϑϥ)• 100 ສϦΫΤετ/ඵΛࡹ͚ΔϕϯνϚʔΫ݁Ռ• ΤοδΩϟογϡΛར༻͢Δ͜ͱ͕ग़དྷΔ 33 http://qiita.com/sinmetal/items/37c105a098174fb6bf77Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 19
GCE Loadbalancer <=> Amazon ELB• ELB• SSL termination ͕ग़དྷΔ(GCE ࣮༧ఆΒ͍͠)• Cookie ΛͬͯηογϣϯΞϑΟχςΟΛ࣮ݱͰ͖Δ• GCE ͷ HTTP Loadbalancer• ϦʔδϣϯΛ·͍ͨͩόϥϯγϯά͕ग़དྷΔ• ίϯςϯπϕʔεϧʔςΟϯά(URL ʹԠͨ͡ৼΓ͚)Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 20
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 21
Google Cloud StorageGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 22
Google Cloud Storage• Google ͷΦϒδΣΫτετϨʔδ SaaS• σʔλΛࣗಈతʹ҉߸Խͯ͠อଘ• CDN ʹ͋ͨΔͷ͕࠷ॳ͔Βਵ͍ͯ͠Δ• Standard/Durable Reduced Availability(DRA)/Nearline ͷ3छ• DRA Standard ΑΓՄ༻ੑ͕͍͕ɺ͍҆• Nearline ҆ՁͰߴͳίʔϧυσʔλετϨʔδGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 23
Google Cloud Storage <=> Amazon S3• Website ͷϗεςΟϯάग़དྷΔ(྆ํ)• Object Change Notification ͕͋Δ• AWS Ͱ lambda ͷαʔϏεͱ࿈ܞ͢Εग़དྷͦ͏• Nearline Glacier ͱಉͩͱߟ͑ΔͱϨΠςϯγ͕͍• େ͖ͳࠩͳͦ͞͏ͳͷͰ࿈ܞαʔϏεʹԠͯ͡બͿͱ٢ʁGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 24
Google Cloud SQLGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 25
Google Cloud SQL• Cloud SQL MySQL ͷΈͷαʔϏε• ΤϯυϙΠϯτ IP ΞυϨε• MySQL 5.5 (5.6 ͑Δ͕ stable Ͱͳ͍)• ࣗಈతͳϚΠφʔόʔδϣϯΞοϓ• MySQL ͕࠶ىಈ͞Εඵͷஅ͕ى͖Δ͜ͱ͕͋Δ• (ϑΣΠϧΦʔό|εϖοΫมߋ)ඵͰऴΘΔGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 26
Google Cloud SQL <=> Amazon RDS• Read Replica/Multi AZ ͷجຊతͳػೳ྆ํ͑Δ• RDS MySQL Ҏ֎ʹ৭ʑ͑Δ͠ग़དྷΔࣄଟ͍• MySQL/Postgres/Oracle/SQL Server ...• Cloud SQL Πϯελϯεͷىಈ͕࣌ؒૣ͍• ΞΫςΟϕʔγϣϯϙϦγʔ(ଓ͕དྷͨΒىಈɺ)• ࣗಈϚΠφʔόʔδϣϯΞοϓGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 27
Google BigQueryGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 28
Google BigQuery• Google ͷϏοάσʔλղੳ SaaS• TB/PB ڃͷσʔλʹରͯ͠ SQL ϥΠΫͳΫΤϦΛൃߦͰ͖Δ• ඵʙेඵ୯ҐͰ݁Ռ͕ฦͬͯ͘Δ• ՝͕ۚΫΤϦ୯Ґͱ͔ͳͷͰɺ͙͢ࢼͤΔ• େྔʹΫΤϦΛൃߦ͢Δͱ͔Ͱͳ͚Ε҆ՁGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 29
Google BigQuery <=> Amazon Redshift• ಉ͡ྖҬΛΧόʔ͢Δͷͷ΄΅ҧ͏αʔϏε• େ͖ͳձࣾͰ BI πʔϧΛ࡞ΔΑ͏ͳ࣌ Redshift ͕ྑͦ͞͏• ͍ҙຯͰͷσʔλղੳΈ͍ͨͳͷ BigQuery ͕ྑͦ͞͏• εέʔϧͷྀෆཁ/ׂͱ؆୯ʹ࢝ΊΒΕΔ• ݸਓͷײͰ͢Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 30
Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 31
Google App EngineGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 32
Google App Engine (GAE)• ݴΘͣͱΕͨ Google ͷ PaaS αʔϏε• ΞϓϦ։ൃऀ͕͍͜ͳͤΔͳΒͱͯศར• ΠϯϑϥΤϯδχΞ͕ډͳͯ͘ͳΜͱ͔ͳΔ• ͪΖΜ PaaS ͳͷͰ IaaS ΑΓ੍ݶతʹͳͬͯΔ• ϩοΫΠϯ͞ΕΔ• ΑΓৄ͍͠ਓձʹࢁ͍ΔͷͰฉ͖·͠ΐ͏ʂGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 33
Google Container EngineGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 34
Google Container Engine (GKE), Amazon ECS• GKE GCP ্ʹ Docker ίϯςφΛల։Ͱ͖ΔαʔϏε• Kubernetes ( http://kubernetes.io ) Ͱཧ͞ΕΔ• k8s OSS ͳͷͰͬͯΔͳΒ͙͢ҠߦͰ͖Δ• ECS AWS ্ʹ Docker ίϯςφΛల։Ͱ͖ΔαʔϏε• json ͰઃఆϑΝΠϧΛॻ͖ίϯςφΛஔ• ͜Ε͔ΒͷྖҬͳͷͰظGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 35
ྉۚʹ͍ͭͯ• αʔϏεܖ௨৴ྉ͍ํ࣍ୈ• ͲΕ͘Β͍ͷظؒ͏͔• Ͳͷ͘Β͍ͷ௨৴ྉ͕ൃੜ͢Δ͔• ڝͬͯΔͷͰܭࢉ͢Δͱྑ͍͔• ͲͪΒ͕ѹతʹߴ͍/͍҆ͱ͍͏͜ͱແͦ͞͏Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 36
ͲΜͳਓʹ͍ͯΔ͔(GCE/AWS/...)Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 37
GCP ͕͍ͯͦ͏ (ྫ)• ৽͍͠ͷ͕͖ͳਓ• όʔεττϥϑΟοΫ͕ൃੜ͢ΔαʔϏε• Πϯελϯεͷىಈ/ෳ͕සൟʹൃੜ͢ΔαʔϏε• ඞཁͳཁ݅ʹԠͯࣗ͡ͰOSS/֎෦αʔϏεΛ͑Δਓ• ྫ͑શจݕࡧαʔϏεͱ͔ GCP ʹࠓແ͍Google Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 38
AWS ͕͍ͯͦ͏ (ྫ)• ౦ژ͔ΒͷϨΠςϯγ͕ؾʹͳΔਓ (GCP ͷ࠷دΓ asia)• ͳΔ͘ 1 ͭͷαʔϏεͰ৭ʑͳཁ݅Λୡ͍ͨ͠ਓ• αϙʔτपล/աڈͷݟɾπʔϧΛ͍͍ͨਓ• EC2/ELB/RDS ͷߏҊͷΑ͏ͳݟࢁ͋Δ• MySQL 5.6 Ҏ্ͦΕҎ֎ͷ DB PaaS Λ͍͍ͨਓGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 39
એ• ݁ہͲͬͪΛ͍͍͔͔ͬͯΒͳ͔ͬͨͱ͍͏ํ• GCP ͬͯΈ͍͚ͨͲΠϯϑϥͷઃఆͳͲ͍ͤͨͱ͍͏ํ• => ฐࣾ·Ͱ͝༻໋͍ͩ͘͞ʂ• ৭ʑͳΫϥυΛ৮ͬͯΈ͍ͨํ• ৮্ͬͨͰ͓٬༷ͷαʔϏεʹର͠దʹఏҊͯ͠Έ͍ͨํ• => ٻਓதͰ͢ͷͰԠืԼ͍͞ʂGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 40
એ 2• ձࣾͷϒϩάʹ GCP ͷ͜ͱॻ͍ͯ·͢• http://heartbeats.jp/hbblog/gcp/• CTO ͷഅ (@netmarkjp) ͕ gihyo.jp Ͱ GCP ͷ࿈ࡌதͰ͢• http://gihyo.jp/admin/serial/01/google-cloud-platformGoogle Cloud Platform & Amazon Web Service (2015/04/17) - Yoshikawa Ryota ( @rrreeeyyy ) 41