Pengantar
Artikel ini akan memberikan perbandingan layanan yang ditawarkan oleh Google Cloud Platform (GCP) dan Amazon Web Services (AWS).
VPC dan Subnet
AWS
Di AWS, Virtual Private Cloud (VPC) dibuat dengan mendefinisikan rentang alamat IP (CIDR) yang akan digunakan dalam satu wilayah, termasuk beberapa Availability Zone (AZ). Subnet dibuat dalam rentang CIDR VPC dan ditentukan untuk AZ tertentu.
Di AWS, Anda memulai VPC dengan menentukan rentang alamat IP (blok CIDR) yang unik, dan kemudian menentukan beberapa subnet dalam VPC tersebut. Setiap subnet, yang terhubung ke Availability Zone tertentu, memiliki rentang alamat IP sendiri, yang merupakan bagian dari rentang alamat IP VPC.
Pengaturan ini memungkinkan kontrol yang detail terhadap konfigurasi jaringan, memastikan keamanan dan isolasi resource jaringan. Namun, hal ini memerlukan pengelolaan yang cermat terkait rentang alamat IP dan korelasi antara VPC, subnet, dan AZ.
GCP
GCP memungkinkan pembuatan VPC yang meliputi beberapa wilayah, sehingga menghilangkan konsep CIDR. Sebagai gantinya, GCP menggunakan subnet dengan CIDR yang ditentukan yang dibuat untuk setiap wilayah.
Di GCP, Anda dapat membuat VPC global yang meliputi beberapa wilayah tanpa menentukan blok CIDR yang merangkap. Subnet di GCP terkait dengan blok CIDR dan terhubung ke wilayah tertentu. Subnet regional ini secara kolektif membentuk VPC global.
Pendekatan ini memungkinkan peering yang lancar antar wilayah, sehingga cocok untuk sistem yang menerima akses dari seluruh dunia. Hal ini mengurangi kebutuhan untuk mengelola blok CIDR merangkap untuk VPC, sehingga memudahkan pengelolaan jaringan dan meningkatkan skalabilitas.
Firewall
AWS: Security Group
Di AWS, Security Group (SG) digunakan untuk mengontrol lalu lintas masuk dan keluar ke resource seperti Load Balancer (LB) dan instance EC2.
Security Group berfungsi sebagai firewall virtual untuk instance Anda. Saat Anda membuat Security Group, Anda menambahkan aturan yang mengontrol lalu lintas masuk ke instance, dan seperangkat aturan terpisah untuk lalu lintas keluar.
Di AWS, Anda membuat set aturan masuk dan keluar sebagai pasangan dalam satu Security Group. Setelah dibuat, Security Group tersebut dapat dikaitkan dengan beberapa resource dalam satu VPC, dengan menerapkan aturan yang ditentukan pada setiap resource.
GCP: Aturan dan Tag Firewall
Sebaliknya, Google Cloud menggunakan sistem aturan dan tag firewall untuk mengelola dan mengontrol lalu lintas masuk dan keluar.
Di GCP, aturan firewall dibuat untuk lalu lintas masuk dan keluar, dan setiap set aturan memiliki tag terkait. Aturan-aturan ini kemudian dapat diterapkan pada instance, seperti instance GCE, yang diberi tag yang sesuai.
Selain penerapan aturan berdasarkan tag, firewall GCP juga memungkinkan pengaturan prioritas untuk setiap set aturan. Pada kasus di mana terdapat beberapa aturan yang berlaku, prioritas menentukan urutan penerapan aturan. Fitur ini menawarkan kontrol yang lebih baik terhadap pengelolaan lalu lintas jaringan dan memastikan aturan penting diterapkan terlebih dahulu.
Load Balancing (LB)
AWS: Load Balancing dalam VPC
Di AWS, Load Balancing dilakukan dalam VPC untuk mendistribusikan lalu lintas ke resource dalam VPC tersebut.
Dalam konfigurasi umum, Load Balancer ditempatkan di subnet publik untuk layanan yang menghadap ke Internet. Load Balancer kemudian secara merata mendistribusikan lalu lintas di antara resource dalam VPC.
Load Balancer yang menghadap ke Internet di AWS diberi nama DNS publik. Fitur ini memungkinkan Load Balancer untuk mengarahkan lalu lintas masuk ke resource yang tepat dalam VPC, sehingga mengelola dan mendistribusikan beban dengan efektif.
GCP: Load Balancing Inter-Regional
Sebaliknya, Google Cloud menyediakan kemampuan untuk melakukan load balancing di beberapa wilayah.
Di GCP, Load Balancer dapat dikonfigurasi untuk mendistribusikan lalu lintas di antara resource yang meliputi beberapa wilayah. Fitur canggih ini memungkinkan GCP untuk secara efisien mendistribusikan lalu lintas bahkan saat menghadapi resource yang tersebar di seluruh dunia.
Fitur unik dari Load Balancing GCP adalah alokasi satu alamat IP kepada frontend Load Balancer. Fitur ini menyederhanakan pengelolaan resource, sehingga lebih mudah untuk memantau dan mengontrol lalu lintas masuk.
Object Storage
AWS: S3
AWS menawarkan Simple Storage Service (S3) sebagai layanan Object Storage yang skalabel dan tahan lama.
S3 menyediakan berbagai fitur yang kuat, termasuk berbagai opsi kelas penyimpanan, keandalan tinggi (sebelas sembilan), dan aturan siklus hidup untuk pengelolaan data otomatis.
S3 beroperasi dengan konsep kelas penyimpanan, masing-masing menawarkan kecepatan akses dan biaya yang berbeda, sehingga cocok untuk berbagai kasus penggunaan. Layanan ini menawarkan keandalan tinggi sebesar sebelas sembilan (99,999999999%), yang menjamin keamanan data. Akses kontrol dapat dikelola menggunakan ACL (Access Control Lists) atau kebijakan bucket.
GCP: Cloud Storage
Google Cloud menawarkan Cloud Storage untuk layanan Object Storage.
Seperti S3, Google Cloud Storage juga menawarkan berbagai kelas penyimpanan, keandalan tinggi, dan pengelolaan siklus hidup. Namun, layanan ini juga mencakup fungsi caching bawaan, sehingga dapat menyajikan objek publik dengan latensi yang lebih rendah dan kecepatan yang lebih tinggi, berfungsi seperti Content Delivery Network (CDN).
Fungsi caching bawaan Cloud Storage menyimpan objek publik selama periode tertentu, meningkatkan kinerja dengan menyajikan konten yang di-cache untuk data yang sering diakses.
RDB
GCP: Cloud SQL dan Cloud Spanner
Relasional database (RDB) adalah komponen fundamental dari sebagian besar aplikasi, dan memilih layanan RDB yang tepat memainkan peran penting dalam platform cloud. Di Google Cloud Platform (GCP), dua layanan RDB populer adalah Cloud SQL dan Cloud Spanner.
Cloud SQL merupakan layanan setara dengan Amazon Relational Database Service (RDS) di AWS. Layanan ini mendukung penyimpanan data dalam skala terabyte, dengan kemampuan untuk melakukan skalabilitas horizontal dan vertikal. Namun, Cloud SQL mendukung jenis database yang lebih sedikit dibandingkan dengan RDS, yang mendukung Oracle, MariaDB, dan lainnya.
Cloud Spanner adalah penawaran unik dari Google. Ini merupakan layanan database relasional yang didistribusikan secara global dengan kinerja tinggi yang memastikan konsistensi transaksi di berbagai wilayah dan benua. Cloud Spanner dikategorikan sebagai database NewSQL, dan pada saat ini, AWS tidak memiliki layanan serupa. Salah satu keunggulan Cloud Spanner adalah kemampuannya untuk melakukan skalabilitas tanpa batas hanya dengan menambahkan node. Namun, meskipun cocok untuk aplikasi yang kritis seperti sistem keuangan, Cloud Spanner tidak mendukung RDB tradisional seperti MySQL, dan terdapat beberapa batasan khusus untuk Cloud Spanner. Oleh karena itu, dapat menjadi tantangan untuk mengimplementasikannya dalam situasi tertentu.
AWS: RDS dan Aurora
AWS menawarkan layanan setara yang kuat dengan Cloud SQL milik GCP, yang dikenal sebagai Amazon RDS. Layanan ini mendukung berbagai jenis database, termasuk MySQL, PostgreSQL, Oracle, dan MariaDB. Selain itu, RDS mendukung Amazon Aurora, mesin database yang diklaim lima kali lebih cepat dari MySQL dan tiga kali lebih cepat dari PostgreSQL. Amazon Aurora sepenuhnya dikelola dan kompatibel dengan MySQL dan PostgreSQL, menjadikannya pilihan menarik bagi banyak bisnis.
NoSQL
GCP: Cloud Bigtable dan Cloud Firestore
database NoSQL adalah bagian penting dari pengembangan aplikasi modern, terutama untuk aplikasi dengan skala besar di mana throughput tinggi dan laten rendah sangat penting.
Cloud Bigtable dari Google adalah layanan database NoSQL yang sepenuhnya dikelola dan dapat diskalakan. Layanan ini mirip dengan DynamoDB milik AWS. Fitur khas Cloud Bigtable adalah penggunaan API HBase, yang memudahkan integrasi dengan alat-alat big data seperti Hadoop. Hal ini membuat Cloud Bigtable sangat cocok untuk analitik big data dalam IoT atau adtech. Selain itu, karena digunakan oleh layanan inti Google seperti Google Search dan Gmail, keandalannya sangat tinggi.
Cloud Firestore, layanan NoSQL lainnya dari GCP, adalah database dokumen NoSQL yang sepenuhnya dikelola dan cepat. Layanan ini dapat dibandingkan dengan DocumentDB milik AWS. Salah satu fitur utama Cloud Firestore adalah dukungannya terhadap mode offline. Ketika terjadi gangguan jaringan di sisi klien, Firestore menyimpan pembaruan secara lokal dan mencerminkannya di Firestore ketika konektivitas kembali. Hal ini mengurangi beban pengembang dalam menangani skenario seperti itu, sehingga menghemat waktu dan resource.
AWS: DynamoDB dan DocumentDB
DynamoDB adalah database key-value dan dokumen yang memberikan kinerja dalam hitungan milidetik pada skala apa pun. Ini adalah layanan database yang sepenuhnya dikelola, multiregion, multimaster, dan tahan lama, dengan keamanan bawaan, cadangan dan pemulihan, serta caching in-memory untuk aplikasi berskala internet.
DocumentDB (dengan kompatibilitas MongoDB) adalah layanan database dokumen yang cepat, dapat diskalakan, sangat tersedia, dan sepenuhnya dikelola yang mendukung beban kerja MongoDB. Pengembang dapat menggunakan kode aplikasi, driver, dan alat MongoDB yang sama untuk menjalankan, mengelola, dan memperluas beban kerja pada Amazon DocumentDB dan menikmati peningkatan kinerja, skalabilitas, dan ketersediaan tanpa harus khawatir tentang pengelolaan infrastruktur yang mendasarinya.
Kontainer
GCP: Cloud Run
Di bidang kontainer, Google Cloud Platform (GCP) menawarkan Cloud Run, layanan yang sepenuhnya dikelola yang secara otomatis mengatur skalabilitas aplikasi berkontainer. Cloud Run dirancang untuk menjadi serverless, mengurus semua manajemen infrastruktur, sehingga Anda dapat fokus pada yang terpenting, yaitu membangun aplikasi yang hebat.
Salah satu keunggulan Cloud Run adalah kemampuannya untuk menurunkan skala menjadi nol saat instance tidak digunakan, menyediakan solusi yang hemat biaya untuk beban kerja sporadis. Selain itu, memungkinkan pengembang untuk memilih hingga 8vCPUs dan 32GB memori untuk kontainer mereka, membuatnya menjadi solusi yang dapat diskalakan untuk kebutuhan kinerja tinggi.
AWS: App Runner
Layanan setara AWS dengan Cloud Run adalah App Runner, yang dibangun di atas dasar Elastic Container Service (ECS) Fargate. Seperti Cloud Run, App Runner adalah layanan yang sepenuhnya dikelola untuk mendeploy aplikasi berkontainer dengan cepat dan aman.
Namun, App Runner dirancang dengan filosofi yang berbeda. Alih-alih menurunkan skala menjadi nol, layanan ini bertujuan untuk menghilangkan waktu jeda yang dingin untuk memastikan laten rendah yang konsisten, sehingga tidak memungkinkan menurunkan skala menjadi nol. Untuk spesifikasi kontainer, App Runner memungkinkan hingga 2vCPUs dan 4GB memori, lebih rendah dari Cloud Run namun tetap memadai untuk berbagai aplikasi.
FaaS
GCP: Cloud Functions
Function as a Service (FaaS) adalah model layanan cloud yang memungkinkan pengembang untuk menjalankan dan mengelola kode tanpa perlu memikirkan infrastruktur yang mendasarinya. Cloud Functions dari Google adalah layanan FaaS yang menawarkan fungsi berbasis HTTP dan berbasis peristiwa (event-driven).
Cloud Functions mendukung beberapa bahasa pemrograman, termasuk versi khusus dari Node.js, Python, Go, Java, .NET, Ruby, dan PHP. Setiap fungsi dapat memiliki hingga 16GiB memori (8GiB untuk generasi pertama), dan akses ke disk dibagi dengan volume tmpfs.
AWS: Lambda
AWS Lambda merupakan layanan yang setara dengan Cloud Functions milik GCP. Ini adalah platform komputasi serverless yang didorong oleh peristiwa (event-driven), yang disediakan oleh AWS sebagai bagian dari Amazon Web Services. Lambda tidak hanya mendukung beberapa bahasa pemrograman standar, tetapi juga runtime dan gambar kontainer kustom, sehingga memungkinkan hampir semua bahasa untuk digunakan.
Setiap fungsi Lambda dapat memiliki hingga 10.240MB memori, dan selain memori, dapat memiliki hingga 10GB penyimpanan sementara. Berbeda dengan Cloud Functions, Lambda juga dapat dibuat di dalam VPC dan dapat memasang Elastic File System (EFS).
Lambda juga memiliki fitur yang disebut Lambda@Edge, yang, bersama dengan CloudFront, memungkinkan eksekusi kode di lokasi AWS di seluruh dunia. Ini berguna untuk memodifikasi permintaan di setiap lokasi edge, memberikan laten yang lebih rendah dan pengalaman pengguna yang lebih personal.