Judul posting ini adalah referensi langsung ke diagram
"Waktu tunda yang harus diketahui oleh setiap programmer .
" Saat ini ada beberapa versi diagram ini, dan sulit untuk membuat penulis aslinya. Ada yang bilang itu
Jeff Dean .
Jika Anda mengerjakan proyek yang perlu mencapai skala besar, Anda perlu menyeimbangkan beberapa masalah. Asumsi apa yang kita buat dan bagaimana cara mengonfirmasinya? Bagaimana cara cepat masuk pasar? Akankah desain kami mendukung skala yang diharapkan?
Salah satu masalah penskalaan adalah biaya infrastruktur. Penyedia cloud memungkinkan Anda untuk membuat ribuan prosesor dan menempatkan terabyte data dengan satu klik. Tapi itu mahal, dan sesuatu yang tidak signifikan bagi beberapa ribu pengguna bisa menjadi lubang anggaran besar ketika Anda mencapai jutaan pengguna.
Pada artikel ini, saya akan mencantumkan beberapa nomor referensi yang berguna untuk diingat ketika mempertimbangkan arsitektur. Angka-angka ini tidak dimaksudkan untuk menjadi perkiraan anggaran yang akurat. Mereka membantu menentukan apakah desain Anda masuk akal atau apakah melampaui apa yang Anda mampu. Oleh karena itu, kami mempertimbangkan urutan besarnya dan nilai relatif, bukan nilai absolut.
Ingat juga bahwa perusahaan Anda mungkin menerima diskon dari AWS, dan ini dapat membuat perbedaan besar.
Perhitungan
Berapa biaya CPU saat ini? Melalui antarmuka
ec2instances.info yang luar
biasa, saya mendapatkan harga median vCPU.
Anda bisa mendapatkan data sumber dari
repositori Github . Saya menyalinnya dan memprosesnya dengan skrip Python, yang juga saya ambil
di Github . Semua harga untuk wilayah eu-barat-1.
Saya menilai harga spot menurut berbagai pengguna. Karena harga berubah sepanjang hari, saya tidak dapat menemukan sumber data yang andal.
AWS mewakili kekuatan komputasi mesinnya di Elastic Compute Units, dan 4 ECU kurang lebih sesuai dengan kekuatan prosesor modern. Dengan demikian, harga di atas ditunjukkan untuk satu prosesor atau inti, bukan satu contoh.
Berikut adalah harga 1 ECU dalam dolar per jam di semua jenis mesin yang saya beri peringkat:

Dan inilah bagaimana harga berdasarkan permintaan dibandingkan dengan pemesanan satu dan tiga tahun (pembayaran di muka):

Penyimpanan
Jadi Anda ingin latensi rendah, bandwidth tinggi, dan berencana untuk menyimpan semuanya di Redis? Kemudian di atas semua biaya ini, CPU harus membayar untuk RAM.
Saya menggunakan pendekatan yang sama untuk mendapatkan harga rata-rata 1 GB RAM pada EC2. Elasticache adalah sekitar setengah dari harga sesuai permintaan, tetapi harga jatuh cukup cepat dalam contoh yang dipesan.
Meskipun ini adalah biaya penyimpanan bersih, Anda juga perlu melihat pola penggunaan untuk data Anda. Berapa banyak prosesor yang Anda butuhkan untuk bekerja 24/7 dalam memori 24/7?
Sama dengan S3: berapa banyak yang akan Anda bayar untuk permintaan baca / tulis? Saya melihat beban kerja di mana biaya penyimpanan pada S3 diabaikan, tetapi biaya menulis sejumlah besar objek ke S3 membuat tim menulis sistem file mereka sendiri di atas S3.
Transfer
Beberapa
komentar di HackerNews menunjukkan bahwa saya kehilangan biaya transmisi. Memang, jika Anda memberikan data kepada pengguna akhir atau membutuhkan replikasi antar daerah, Anda perlu mempertimbangkan biaya ini.