Bagian ini merangkum praktik terbaik kami dan memberikan rekomendasi dalam 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 kalanya Anda memerlukan I/O acak. Contohnya adalah saat membaca Tabel String yang Diurutkan selama operasi baca. SSD adalah mekanisme penyimpanan yang direkomendasikan untuk Casssandra, karena memberikan waktu respons berlatensi 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 memungkinkan hard drive terpasang secara fisik ke hardware tempat instance EC2 dihosting. Apigee merekomendasikan pemanfaatan SSD dan penyimpanan instance saat menjalankan Cassandra dalam produksi. Jika Anda 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 Gosip untuk bertukar informasi dengan node lain tentang topologi jaringan. Penggunaan Gosip plus 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 Zona Ketersediaan (AZ)
- Gunakan 3 subnet pribadi untuk penginstalan Apigee, 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 terhubung ke internet untuk download software dan update keamanan.
Tidak seperti arsitektur master-slave lama, Cassandra memiliki arsitektur tanpa master dengan semua node memainkan peran yang sama, sehingga tidak ada titik tunggal kegagalan. Sebaiknya luaskan node Casssandra di beberapa AZ untuk memungkinkan ketersediaan tinggi. Dengan menyebarkan node di AZ, Anda masih dapat mempertahankan ketersediaan dan waktu beroperasi jika terjadi bencana.
Memilih jenis instance
Saat mempelajari persyaratan CPU Cassandra, perhatikan bahwa beban kerja penyisipan yang berat akan diikat ke 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 core CPU sebanyak yang tersedia.
Apigee merekomendasikan penggunaan keluarga instance, yang memiliki keseimbangan antara CPU dan memori. Secara khusus, sebaiknya gunakan instance keluarga 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 melakukan penskalaan ke lebih dari 1 instance per AZ, kemungkinan besar semua instance Cassandra akan ditempatkan di hardware dasar yang sama jika Anda menetapkan tenancy menjadi didedikasikan. Jadi, jika hardware rusak, Anda mungkin 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 |
Penyimpanan Instance | SSD (penyimpanan lokal) dengan RAID0 |
Jenis Tenancy | default |
Penempatan Node | 1 node Cassandra per AZ |
VPC dan Subnet | 1 subnet per AZ dan satu VPC per region |
Untuk mengetahui informasi selengkapnya, lihat Jenis instance Amazon.