Bagian ini merangkum praktik terbaik kami dan memberikan rekomendasi untuk menggunakan OPDK dengan cloud AWS.
Cassandra digunakan sebagai backend dan datastore untuk hampir semua kebijakan dan merupakan bagian penting dari lingkungan runtime Apigee Edge. Dokumen ini berfokus pada pengoptimalan Casssandra untuk lingkungan AWS.
Persyaratan penyimpanan dan I/O
Sebagian besar I/O Cassandra bersifat berurutan, tetapi ada kasus saat Anda memerlukan I/O acak. Contohnya adalah saat membaca Sorted String Table selama operasi baca. SSD adalah mekanisme penyimpanan yang direkomendasikan untuk Cassandra, karena memberikan waktu respons latensi yang sangat rendah untuk operasi baca acak sekaligus menyediakan performa tulis berurutan yang cukup untuk operasi pemadatan. Replikasi juga dipertimbangkan di sini.
Banyak instance di AWS EC2 dilengkapi dengan penyimpanan lokal yang hard drivenya terpasang secara fisik ke hardware tempat instance EC2 dihosting. Apigee merekomendasikan penggunaan SSD dan instance store saat menjalankan Cassandra dalam produksi. Saat menggunakan jenis instance dengan lebih dari 1 SSD, Anda dapat menggunakan RAID0 untuk mendapatkan lebih banyak throughput dan kapasitas penyimpanan.
Persyaratan jaringan
Cassandra menggunakan protokol Gossip untuk bertukar informasi dengan node lain tentang topologi jaringan. Penggunaan Gossip ditambah sifat Cassandra yang terdistribusi — yang melibatkan komunikasi dengan beberapa node untuk operasi baca dan tulis — menghasilkan banyak transfer data melalui jaringan. Apigee merekomendasikan penggunaan jenis Instance dengan bandwidth jaringan minimal 1 Gbps dan lebih dari 1 Gbps untuk sistem produksi.
Gunakan VPC dengan CIDR /16. Karena subnet di AWS tidak dapat mencakup lebih dari 1 AZ, Apigee merekomendasikan hal berikut:
- Membuat 1 subnet per Availability Zone (AZ)
- Gunakan 3 subnet pribadi untuk penginstalan Apigee Anda, dengan satu node Cassandra di setiap AZ. Ketiga subnet harus memiliki blok CIDR yang cukup untuk mengakomodasi perluasan horizontal cluster Cassandra.
- Konfigurasikan 3 subnet publik dengan NAT khusus agar Cassandra dapat berkomunikasi dengan internet untuk mendownload software dan update keamanan.
Tidak seperti arsitektur master-slave lama, Cassandra memiliki arsitektur tanpa master, yang semua node-nya memainkan peran yang sama, sehingga tidak ada titik tunggal kegagalan. Pertimbangkan untuk menyebarkan node Cassandra Anda di beberapa AZ untuk mengaktifkan ketersediaan tinggi. Dengan menyebarkan node di seluruh AZ, Anda tetap dapat mempertahankan ketersediaan dan waktu beroperasi jika terjadi bencana.
Memilih kelompok instance
Saat melihat persyaratan CPU Cassandra, perlu diperhatikan bahwa workload yang banyak melakukan penyisipan terikat CPU di Cassandra sebelum menjadi terikat IO. Dengan kata lain, semua operasi tulis masuk ke log commit, tetapi Cassandra sangat efisien dalam menulis sehingga CPU menjadi faktor pembatas. Cassandra sangat serentak dan menggunakan sebanyak mungkin core CPU yang tersedia.
Apigee merekomendasikan penggunaan kelompok instance, yang memiliki keseimbangan CPU dan memori. Secara khusus, sebaiknya gunakan instance kelompok C5 jika tersedia di region AWS Anda dan C3 sebagai opsi penggantian. Dalam beberapa kasus, 4xlarge adalah instance optimal di kedua kelompok yang memberikan harga/performa terbaik.
Apigee juga merekomendasikan penggunaan tenancy default untuk instance Cassandra. Saat Anda menskalakan ke lebih dari 1 instance per AZ, kemungkinan besar semua instance Cassandra Anda akan ditempatkan di hardware dasar yang sama jika Anda menetapkan tenancy menjadi dedicated. Jadi, jika hardware gagal, Anda kemungkinan akan kehilangan semua instance di AZ tersebut.
Ringkasan rekomendasi
Tabel berikut merangkum rekomendasi Apigee untuk menggunakan AWS dengan Apigee Edge untuk Private Cloud:
| Kelompok Instance | C5d (lebih disukai) atau C3 |
| Jenis Instance | C(x).4xlarge |
| Instance Store | SSD (penyimpanan lokal) dengan RAID0 |
| Jenis Tenancy | default |
| Penempatan Node | 1 node Cassandra per AZ |
| VPC dan Subnet | 1 subnet per AZ dan VPC per region |
Untuk mengetahui informasi selengkapnya, lihat Jenis instance Amazon.