Cara memotong biaya dalam AWS

Dunia berubah secara dramatis. Banyak perusahaan mencari cara untuk memangkas biaya, hanya untuk bertahan hidup. Pada saat yang sama, beban pada layanan online semakin meningkat - terutama yang terkait dengan pengorganisasian pekerjaan jarak jauh, mengadakan konferensi video, dan pembelajaran online.

Dalam kondisi ini, sangat penting di satu sisi - untuk memastikan keandalan dan skalabilitas infrastruktur Anda. Di sisi lain, jangan terbang ke pipa dengan pembelian server, disk, pembayaran lalu lintas.

Kami di Bitrix24 sangat aktif dalam menggunakan Layanan Web Amazon, dan dalam artikel ini saya akan berbicara tentang beberapa fitur AWS yang dapat membantu Anda mengurangi biaya.

Bitrix24 adalah layanan global, kami bekerja untuk pelanggan di seluruh dunia. Sejak 2015, sejak berlakunya UU 242- tentang lokalisasi data pribadi, data pengguna Rusia disimpan di server di Rusia. Tetapi seluruh infrastruktur layanan yang melayani pelanggan yang tersisa di seluruh dunia dikerahkan di Amazon Web Services.

Krisis ekonomi sudah merupakan fait accompli. Dolar telah tumbuh dan tidak mungkin untuk kembali ke posisi sebelumnya dalam waktu dekat, jadi membayar untuk hosting dalam mata uang asing menjadi sangat memberatkan.

Dalam kondisi ini, jika Anda terus menempatkan sumber daya Anda di AWS, kemungkinan besar Anda akan tertarik pada teknik yang akan membantu Anda menghemat pada menyewa infrastruktur.

Saya akan berbicara tentang hal-hal utama yang kami sendiri telah gunakan selama bertahun-tahun. Jika ada metode lain yang Anda gunakan - silakan berbagi di komentar.

Jadi ayo pergi.

RI - Mesin Virtual yang Dicadangkan


Cara termudah dan paling jelas untuk menghemat uang di AWS adalah dengan menggunakan instance EC2 yang dicadangkan. Jika Anda tahu bahwa Anda pasti akan menggunakan contoh tertentu untuk setidaknya satu tahun, Anda dapat melakukan pembayaran di muka untuk mereka dan mendapatkan diskon dari 30% hingga 75%.

Contoh perhitungan untuk instance c5.xlarge:

gambar

Semua harga dan perhitungan ada di sini .

Terkadang terlihat rumit dan membingungkan, tetapi secara umum, logikanya adalah ini:

  • Semakin lama periode pemesanan - 1 atau 3 tahun - semakin besar diskon.
  • Semakin besar pembayaran di muka - Anda dapat melakukannya tanpa pembayaran di muka sama sekali, Anda dapat menggunakan semua pembayaran di muka sepenuhnya, pembayaran di muka - semakin besar diskonnya.
  • Jika kami memesan jenis instance tertentu, tetapi tidak menggunakan convertible, ada diskon yang lebih besar.

Bagi kami sendiri, kami melakukan reservasi selama 1 tahun, karena perencanaan selama 3 tahun cukup sulit. Dan ini memungkinkan penghematan yang baik pada EC2.

Instans spot


Menggunakan Spot Instances pada dasarnya semacam pertukaran sumber daya. Ketika Amazon memiliki banyak sumber daya idle, Anda dapat menetapkan harga maksimum yang bersedia Anda bayar untuk mereka untuk "Instance Spot" khusus.

Jika permintaan saat ini di wilayah tertentu dan AZ (Zona Ketersediaan) kecil, maka sumber daya ini akan diberikan kepada Anda. Apalagi dengan harga 3-8 kali lebih rendah dari harga on-demand.

Apa yang menangkap?

Satu-satunya hal adalah bahwa jika tidak ada kapasitas gratis, sumber daya yang diminta tidak akan diberikan kepada Anda. Dan jika permintaan meningkat tajam dan harga spot melebihi harga maksimum yang Anda tetapkan, spot Anda akan diakhiri.

Secara alami, contoh seperti itu tidak cocok, misalnya, untuk database dalam produksi. Tetapi untuk beberapa tugas yang terkait, misalnya, dengan perhitungan tertentu, rendering, perhitungan model, untuk tes adalah cara terbaik untuk menyimpan.

Mari kita lihat dalam praktik berapa jumlah yang kita perjuangkan. Dan seberapa sering spot dapat "hilang" dengan harga tertentu.

Berikut adalah contoh Sejarah Harga Instance Spot langsung dari konsol AWS untuk wilayah eu-central-1 (Frankfurt) untuk contoh c5.4xlarge besar:

gambar

Apa yang kita lihat?

  • Harganya sekitar 3 kali lebih rendah dari permintaan.
  • Ada contoh lokasi yang tersedia di ketiga AZ di wilayah ini.
  • Selama tiga bulan, harganya tidak pernah naik. Ini berarti bahwa suatu tempat diluncurkan tiga bulan lalu dengan harga maksimum yang diberikan, misalnya, $ 0,3, masih akan terus berfungsi.

Cara kami menggunakan bintik dalam praktik:

gambar

- Kami menggunakan bintik untuk server aplikasi.

- Bagi mereka, kami secara aktif menggunakan bundel CloudWatch + Auto Scaling - untuk secara otomatis menskalakan sepanjang hari: beban meningkat - mesin virtual baru diluncurkan, beban turun - semuanya dipadamkan.

- Untuk keamanan, kami memiliki dua kelompok Penskalaan Otomatis yang bekerja untuk penyeimbang - jika titik-titiknya habis. Satu kelompok AS - dengan contoh normal (sesuai permintaan), yang kedua - dengan bintik-bintik. Amazon melalui CloudWatch Events memperingatkan dalam 2 menit bahwa instance tempat akan dihapus (terminasi). Kami memproses acara ini dan mengelola untuk memperluas grup utama ke jumlah instance yang diperlukan, jika ini terjadi.

Detail di sini - Pemberitahuan Interupsi Spot Instance .

- Agar dapat bekerja lebih efisien dengan Penskalaan Otomatis dan menggunakan mesin dalam grup dengan titik maksimum, kami menggunakan pendekatan ini:

  1. Grup tempat memiliki trashhold atas yang lebih rendah - kami mulai meningkatkan "naik" sebelumnya.
  2. Dan trashhold rendah yang lebih rendah - kita mulai skala nanti "turun".
  3. Untuk grup reguler, yang terjadi adalah sebaliknya.

Toko Instance EC2


Setiap orang yang bekerja dengan AWS tahu bahwa drive utama yang digunakan untuk instance EC2 adalah EBS (Elastic Block Store). Mereka dapat dipasang ke instance, dinonaktifkan, dipasang ke instance lain, diambil dari mereka.

Semua EBS tergantung pada jenisnya dibebankan dalam satu atau lain cara. Dan mereka membutuhkan uang yang cukup nyata.

Pada saat yang sama, untuk banyak jenis instance saat membuatnya, koneksi disk lokal tersedia - EC2 Instance Store .

Fitur utama dari disk ini adalah bahwa jika Anda menghentikan instance dengan disk seperti itu, maka setelah mulai data ini hilang.

Tetapi pada saat yang sama mereka bebas bersyarat - ada pembayaran hanya untuk contoh itu sendiri.

Disk tersebut dapat digunakan dengan sempurna untuk data sementara apa pun yang tidak memerlukan penyimpanan konstan - swap, cache, data sementara lainnya. Kinerja drive Instance Store cukup tinggi: selain tipe instans lama, baik SSD atau NVMe SSD sekarang digunakan untuk mereka.

Akibatnya: kami menghubungkan lebih sedikit disk EBS, kami membayar lebih sedikit.

Pengunggahan Multipart S3 Tidak Lengkap


Diskusi di atas terutama tentang EC2. Selanjutnya, kami menjelaskan beberapa trik yang akan disimpan saat menggunakan S3 (Layanan Penyimpanan Sederhana).

Jika Anda secara aktif bekerja dengan S3, maka Anda mungkin tahu bahwa baik S3 dan sebagian besar klien untuk bekerja dengan dukungan penyimpanan ini Mengunggah Multipart - objek besar dimuat dengan "potongan", yang kemudian "dirakit" menjadi satu objek.

Ini bekerja dengan baik, tetapi ada satu penyergapan.

Jika unduhan tidak selesai karena alasan tertentu (koneksi terputus, misalnya, dan unduhan tidak dilanjutkan), maka bagian yang diunduh tidak dihapus sendiri. Namun, mereka mengambil ruang, Anda membayarnya.

Dan kejutan yang tidak menyenangkan - data yang tidak lengkap ini tidak terlihat dengan cara apa pun ketika bekerja dengan alat standar untuk S3: baik melalui "ls" di cli, maupun dalam program klien. Anda dapat menemukannya, misalnya, di aws cli menggunakan perintah list-multipart-uploads .

Tetapi bekerja dengan mereka terlalu melelahkan ...

Akan sangat logis untuk mengambil beberapa opsi tentang menyimpan Unggahan Multipart yang Tidak Lengkap dalam pengaturan ember tertentu. Tetapi untuk beberapa alasan, Amazon tidak.

Namun demikian, ada cara untuk membuat hidup Anda lebih mudah dan secara otomatis menghapus Upload Multipart yang Tidak Lengkap. Di pengaturan bucket pada tab Manajemen, ada bagian Siklus Hidup. Ini adalah alat yang mudah digunakan yang memungkinkan Anda untuk mengonfigurasi berbagai aturan otomatis untuk bekerja dengan objek: pindahkan ke repositori lain, hapus beberapa waktu kemudian (kedaluwarsa), dan - termasuk - kontrol perilaku Unggahan Multipart Unggah.

gambar

Artikel terperinci tentang ini ada di blog AWS - meskipun dengan contoh dari antarmuka lama, tetapi semuanya cukup jelas.

Yang penting adalah bahwa Siklus Hidup yang dikonfigurasi untuk menghapus data yang tidak lengkap akan bekerja tidak hanya untuk objek baru, tetapi juga untuk yang sudah ada.

Jumlah nyata ruang yang ditempati di S3 dapat dipantau melalui CloudWatch. Ketika kami menyiapkan penghapusan Unggah Multipart yang Tidak Lengkap, kami terkejut menemukan bahwa kami membebaskan lebih dari selusin terabyte ...

S3 Intelligent Tiering


S3 memiliki beberapa kelas penyimpanan yang berbeda:

  1. Standar.
  2. Standard-IA (jarang diakses) - untuk objek yang jarang diakses.
  3. One Zone-IA - untuk data yang relatif tidak kritis. Di kelas ini, objek direplikasi ke titik yang lebih sedikit.
  4. Gletser adalah penyimpanan yang sangat murah, tetapi Anda tidak bisa mendapatkan objek darinya secara instan. Anda perlu membuat permintaan khusus dan menunggu sebentar.

Semuanya memiliki kondisi penggunaan dan harga yang berbeda. Mereka dapat dan harus dikombinasikan - tergantung pada tugas Anda yang berbeda.

Tetapi relatif baru-baru ini, jenis penyimpanan lain yang sangat menarik telah muncul - Intelligent Tiering.

Inti dari karyanya adalah sebagai berikut: untuk biaya tambahan kecil, pemantauan dan analisis data Anda di S3 dilakukan, panggilan ke mereka dilacak, dan jika tidak ada panggilan dalam 30 hari, objek secara otomatis dipindahkan ke penyimpanan akses yang jarang, yang biayanya jauh lebih murah daripada yang standar. Jika setelah beberapa saat objek diakses lagi - tidak ada kehilangan kinerja yang terjadi pada saat yang sama - itu lagi dipindahkan ke repositori akses standar.

Kenyamanan paling penting: Anda sendiri tidak perlu melakukan apa pun.

Amazon akan melakukan segalanya β€œdengan cara yang cerdas” itu sendiri - ia akan mencari tahu objek mana yang harus diletakkan.

Dengan mengaktifkan Intelligent Tiering, kami menghemat hingga 10-15% pada beberapa bucket.

Semuanya terdengar terlalu bagus dan ajaib. Tapi tidak bisakah ada jebakan? Mereka, dan mereka, tentu saja, harus diperhitungkan.

  • Ada biaya tambahan untuk fasilitas pemantauan. Dalam kasus kami, sepenuhnya ditanggung oleh tabungan.
  • Anda dapat menggunakan Intelligent Tiering untuk objek apa pun. Namun, objek kurang dari 128 Kb tidak akan pernah ditransfer ke tingkat akses yang jarang dan akan selalu dibayar dengan harga reguler.
  • Tidak cocok untuk benda yang disimpan kurang dari 30 hari. Objek seperti itu masih akan dibayar setidaknya 30 hari sebelumnya.

Bagaimana cara mengaktifkan Intelligent Tiering?

Anda dapat secara eksplisit menentukan kelas penyimpanan INTELLIGENT_TIERING di API S3 atau CLI.

Dan Anda dapat mengonfigurasi aturan Siklus Hidup, yang dengannya, misalnya, semua objek setelah waktu penyimpanan tertentu akan secara otomatis dipindahkan ke Intelligent Tiering.

gambar

Baca lebih lanjut di blog AWS yang sama .

Gletser


Jika kita berbicara tentang berbagai kelas penyimpanan di S3, maka, tentu saja, Glacier juga layak disebut .

Jika Anda memiliki data yang perlu disimpan selama berbulan-bulan dan bertahun-tahun, tetapi akses yang sangat jarang - misalnya, log, cadangan - maka pastikan untuk mempertimbangkan menggunakan Glacier. Harga penggunaannya berkali-kali lebih rendah dari S3 standar.

Untuk pekerjaan yang mudah dengan Glacier, Anda dapat menggunakan aturan Siklus Hidup yang sama.

Misalnya, Anda dapat menetapkan aturan yang dengannya suatu objek akan disimpan dalam penyimpanan reguler untuk beberapa waktu, misalnya, 30-60 hari (biasanya akses diperlukan ke log terdekat atau cadangan dalam waktu, jika kita berbicara tentang penyimpanannya), maka ia akan dipindahkan ke Gletser, dan setelah 1-2-3 ... tahun - sepenuhnya dihapus.

Ini akan jauh lebih murah daripada menyimpan hanya di S3.

* * *

Saya berbicara tentang beberapa trik yang kita sendiri gunakan secara aktif. AWS adalah platform infrastruktur yang sangat besar. Tentunya, kami tidak membicarakan layanan apa pun yang Anda gunakan. Jika ada cara lain untuk menghemat AWS yang berguna bagi Anda, silakan bagikan di komentar.

All Articles