Google Cloud Platform vs Amazon Web Services (GCE and EC2)
ปัจจุบัน ระบบ infrastructure ที่ได้รับความนิยมสุด ๆ ในไทย และ สากล คงปฏิเสธไม่ได้ว่าเป็น AWS ของ Amazon หรือ Google Cloud จาก Google หรือ AZURE ของฝั่ง microsoft เรามาคุยกันก่อน ว่า ทั้ง 3 เจ้าที่ผมกล่าวมาคืออะไร มันคือระบบ “IaaS” ทำไมผมถึงได้กล่าวว่ามันเป็นระบบ infrastructure as a Services ก็เพราะว่ามันมีให้มากกว่าคำว่า “เครื่อง”
แล้วทำไมมันถึงเป็นที่นิยมหละ
หลัก ๆ เลยก็เพราะว่า เราไม่จำเป็นที่จะต้องมีเครื่องที่เป็น Physical อยู่จริง ไม่ต้องเสียเงินค่าเครื่อง ไม่ต้อง Maintenance ไม่ต้องไปนั่งดูระบบ infrastructure ไม่ว่าจะ Hardware Physical หรือ Software พวก Security ก็จะมีคนคอยจัดการให้เรา เรื่อง Avalability ก็มีคนดูแลให้เรา (ไม่ได้หมายความว่าท่านมาใช้ Cloud แล้วระบบของท่านจะไม่ล่มนะครับ) เรื่องสุดท้ายสำหรับระบบที่มีผู้ใช้จำนวนมาก Scalability มัน set ได้ด้วยว่าจะให้มัน Scale ขึ้นเมื่อไหร่ เอาลงเมื่อไหร่ (ทำให้เราประหยัดไปอีก) เราทำเพียงแค่ คลิ๊ก คลิ๊ก คลิ๊ก แล้วก็ คลิ๊ก โดยเราจ่ายเงินตามจริงเท่าที่เราใช้เท่านั้นเกริ่นมาซะเยอะ เอาเป็นว่า ของมันดีครับ ทีนี้เราจะมาเข้าสู่บทความกัน เราจะมาเปรียบเทียบมวยคู่ระหว่าง Google Cloud Platform กับ Amazon Web Service ว่าอะไรดีอะไรเด็ดกว่ากันเป็นส่วน ๆ
เริ่มจาก Service ของทางฝั่ง AWS กันก่อน เรียกได้ว่า มีให้เลือกใช้กันไม่หมดเลยทีเดียว
ดูรายการทางฝั่ง AWS กันไปแล้ว ทีนี้มาดูฝั่ง Google Cloud Platform กันบ้าง
GCE VS EC2
GCE เป็นชื่อย่อของ Google Compute Engine ส่วน EC2 มาจาก Amazon Elastic Compute Cloud
ก่อนจะไปเปรียบเทียบกัน ต้องบอกก่อนว่า เจ้าสองตัวเนี่ย อยากให้มองว่ามัน คือ เครื่อง server เครื่องนึงของเราครับ ข้างในไม่มีอะไรเลย จนกว่าเราจะไป คลิ๊กให้มันเป็นอย่างนู้นอย่างนี้ ซึ่ง เราไม่รู้หลอกว่ามันอยู่ตรงไหน เพราะเรามองไม่เห็น
เรามาเริ่มเปรียบเทียบกันเลย เริ่มจาก Regions ก่อน
Compare EC2 and Compute Engine Capacity
ของทางฝั่ง GCE จะมีอยู่ 3 types ใหญ่ คือ Standard machine types กับ High-memory machine types และ High-CPU machine types
ส่วนของ AWS EC2 จะมีอยู่ด้วยกัน 3 types คือ T2, M4 และ M3
ทั้งนี้ทั้งนั้นขึ้นอยู่กับการนำไปใช้งานว่าท่านต้องการ เครื่อง ขนาดเท่าใด
เราเอาแบบเล็กที่สุด มาให้ดู ซึ่งท่านสามารถเข้าไปดูรายละเอียดต่อเองได้ที่ https://cloud.google.com/compute/docs/machine-types และ https://aws.amazon.com/ec2/instance-types/
Compare EC2 and Compute Engine Pricing
มาถึงเรื่องของราคา AWS จะคิดราคาเราเป็นราย ชั่วโมง ตามการใช้งานของเครื่องนั้น ๆ ซึ่งท่านสามารถเพิ่ม หรือ ลดจำนวนเครื่องได้ตามต้องการ (ช่วงแรกท่านไม่ต้องกังวลว่าจะเสียเงินเยอะ เขาให้ลองเล่นฟรีก่อนได้ มีวิดีโอสอนด้วย จะสร้าง จะบึ้มเครื่องอะไรทำช่วงนั้นแปปเดียวก็เป็นครับ)
มาดูฝั่ง Google Compute Engine machine types กันบ้าง Google เหมือนจะจงใจทำตลาดมาหักกับ AWS เลยรึเปล่าผมไม่แน่ใจ AWS คิดรายชั่วโมงใช่มะ Google คิดหลังจากใช้งานไปแล้ว 10 นาที แล้วก็คิดค่าบริการเป็นนาที เศษนาที คิดเป็น 1 นาที “Pay per use” แล้วก็ยังมีส่วนลดเพิ่มอีกถ้าหาก instances นั้นถูกเปิดขึ้นคิดเป็นเวลา 25% ของเดือนนั้น ๆ
ทั้งสองเจ้าคิดราคาแยกเป็นไปตาม Regions ต่าง ๆ ทั้งคู่
https://aws.amazon.com/ec2/pricing/
https://aws.amazon.com/ec2/pricing/on-demand/
https://cloud.google.com/compute/pricing
Compare Compute Engine Security Groups, Network ACLs, and Firewalls
ฝั่ง AWS เครื่องเขามี Amazon VPC (Amazon Virtual Private Cloud) ติดมาให้เลยในด้านของ Security Amazon มี ACL (Access Control List)ในในการจัดการระบบ network มาให้ สรุปง่าย ๆ คือ Amazon มีระบบกำหนดได้ว่า จะให้ใครเข้ามาที่ instances ของเราได้บ้าง โดยแบ่งได้ระดับ IP หรือ ระดับ เครือข่ายเลย
(Amazon VPC กับ ACL คืออะไรขอไม่กล่าวถึงนะครับเดี๋ยวยาว)
มาที่ฝั่ง GCE กันบ้าง GCE ก็สามารถกำหนดการเข้าถึง instances ของเราได้เช่นกัน ผ่าน iptables firewall ของ Google
Compare Amazon ELB vs Compute Engine Load Balancing
AWS มี Amazon Elastic Load Balancer (ELB) ที่จะช่วยปรับการรับส่งข้อมูลระหว่าง instances ของคุณภายในโซนให้เป็นไปตามต้องการ (ได้แค่ใน regions เดียวกันเท่านั้น) โดยทำการกระจายการเข้าชมไปยัง instances อื่นของคุณโดยใช้ algorithm rounded weighted round robin นอกจากนั้น ELB ยังเทพต่อไปอีกคือ ความต่อเนื่องของ Session ที่เข้ามา ปัจจุบัน ELB รองรับ IPv4 และ IPv6 HTTP และ TCP load balancing แล้วก็มีการเก็บ log ให้ด้วย
GCP มี Compute Engine load balancer มันมีที่ ELB มาหมดเลยแต่มากกว่าในเรื่อง Scaling pattern ELB: Linear ส่วน GCP: Real-time แล้วที่เทพมากคือ Deployment locality เครื่องอยู่ regions ไหน ก็ใช้ Compute Engine load balancer ได้ ฝั่ง ELB ทำได้แค่ใน regions
จากการเปรียบเทียบต่าง ๆ ที่กล่าวมาแล้วข้างต้น Service ของทาง AWS แลดูจะเยอะกว่า GCP อยู่พอสมควร แต่ว่าทาง GCP ที่มีมาให้นั้นก็น่าเพียงต่อต่อความต้องการอยู่แล้ว
- จำนวน Regions ของ AWS นำอยู่เล็กน้อย 14 ต่อ 11 แต่คิดว่าก็ไม่ได้มีผลอะไรกับเรา
- Compare EC2 and Compute Engine Capacity ถ้าดูจากหน่วยเล็กที่สุด n1-standard-1 ให้ vCpu เท่ากันคือ 1 cpu แต่ AWS เสียเปรียบมากที่ Memory AWS มีมาให้ 500mb ส่วน GCE จัดเต็มมาก 3.75 แล้วถ้าเกิดเพิ่มขนาดเครื่องไปเรื่อย ๆ Memory Google จะยิ่งนำขาดไปอีก ขอนี้ Google ชนะใส ๆ
- Compare EC2 and Compute Engine Pricingในด้านของราคา AWS เก็บเงินรายชั่วโมง GCP เก็บเงินตามการใช้งานจริงเป็นนาที ด้านนี้ผมให้ GCP ชนะเล็ก ๆ
- Compare Compute Engine Security Groups, Network ACLs, and Firewalls ในส่วนนี้ผมให้เสมอกันไปครับ
- Compare Amazon ELB vs Compute Engine Load Balancing ในส่วนนี้ จะสังเกตุได้ว่าของ Google เหนือกว่า AWS จริง ๆ ครับ load balance อยู่คนละ regions ได้ ยอมใจที่เปรียบเทียบมาทั้งหมดเป็นเพียงแค่ GCE กับ EC2 นะครับ ยังมี Service อื่น ๆ ที่ผู้ให้บริการทั้งสองเจ้านี้ มีอีกมากมายที่ยังไม่ได้ถูกกล่าวถึง
หวังว่าจะเป็นประโยชน์กับทุกท่าน หากผิดพลาดตรงไหน สามารถแจ้งได้เลยนะครับ
ที่มา: https://cloudacademy.com/blog/ec2-vs-google-compute-engine/
ที่มา2: https://cloudacademy.com/blog/google-cloud-vs-aws-a-comparison/
ที่มา3: https://cloud.google.com
ที่มา4: https://aws.amazon.com