Kontainerisasi. NETaplikasi - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kontainerisasi. NETaplikasi

Gambaran Umum

Kontainer adalah cara yang ringan dan efisien untuk mengemas dan menyebarkan aplikasi secara konsisten dan dapat direproduksi. Bagian ini menjelaskan bagaimana Anda dapat menggunakan AWS Fargate, layanan kontainer tanpa server, untuk mengurangi biaya Anda. NETaplikasi sekaligus menyediakan infrastruktur yang terukur dan andal.

Dampak biaya

Beberapa faktor yang mempengaruhi efektivitas penggunaan kontainer untuk penghematan biaya termasuk ukuran dan kompleksitas aplikasi, jumlah aplikasi yang perlu digunakan, dan tingkat lalu lintas dan permintaan pada aplikasi. Untuk aplikasi kecil atau sederhana, kontainer mungkin tidak memberikan penghematan biaya yang signifikan dibandingkan dengan pendekatan infrastruktur tradisional karena overhead mengelola kontainer dan layanan terkait sebenarnya dapat meningkatkan biaya. Namun, untuk aplikasi yang lebih besar atau lebih kompleks, menggunakan kontainer dapat memberikan penghematan biaya dengan meningkatkan pemanfaatan sumber daya dan mengurangi jumlah instance yang diperlukan.

Kami menyarankan Anda untuk mengingat hal-hal berikut saat menggunakan wadah untuk penghematan biaya:

  • Ukuran dan kompleksitas aplikasi - Aplikasi yang lebih besar dan lebih kompleks lebih cocok untuk kontainerisasi karena cenderung membutuhkan lebih banyak sumber daya dan dapat memperoleh manfaat lebih banyak dari peningkatan pemanfaatan sumber daya.

  • Jumlah aplikasi — Semakin banyak aplikasi yang harus diterapkan organisasi Anda, semakin banyak penghematan biaya yang dapat dicapai melalui kontainerisasi.

  • Lalu lintas dan permintaan — Aplikasi yang mengalami lalu lintas dan permintaan tinggi dapat memperoleh manfaat dari skalabilitas dan elastisitas yang disediakan kontainer. Ini dapat menyebabkan penghematan biaya.

Arsitektur dan sistem operasi yang berbeda mempengaruhi biaya kontainer. Jika Anda menggunakan wadah Windows, biaya mungkin tidak berkurang karena pertimbangan lisensi. Biaya lisensi lebih rendah atau tidak ada dengan wadah Linux. Bagan berikut menggunakan konfigurasi dasar AWS Fargate di Wilayah AS Timur (Ohio) dengan pengaturan berikut: 30 tugas per bulan masing-masing berjalan selama 12 jam dengan 4 vCPUs dan 8 GB memori dialokasikan.

Anda dapat memilih dari dua platform komputasi utama untuk menjalankan kontainer Anda di AWS: host kontainer EC2 berbasis dan tanpa server atau. AWS Fargate Jika Anda menggunakan Amazon Elastic Container Service (AmazonECS) alih-alih Fargate, maka Anda harus tetap menjalankan compute (instance) untuk memungkinkan mesin penempatan membuat instance container saat diperlukan. Jika Anda menggunakan Fargate sebagai gantinya, hanya kapasitas komputasi yang diperlukan yang disediakan.

Bagan berikut menunjukkan perbedaan untuk kontainer setara menggunakan Fargate versus Amazon. EC2 Karena fleksibilitas Fargate, tugas untuk aplikasi dapat berjalan 12 jam per hari, dengan nol pemanfaatan selama jam libur. Namun, untuk AmazonECS, Anda harus mengontrol kapasitas komputasi dengan menggunakan grup EC2 instans Auto Scaling. Hal ini dapat menyebabkan kapasitas berjalan 24 jam sehari, yang pada akhirnya dapat meningkatkan biaya.

Biaya bulanan Fargate vs EC2 biaya bulanan

Rekomendasi pengoptimalan biaya

Gunakan wadah Linux daripada Windows

Anda dapat mencapai penghematan yang signifikan jika Anda menggunakan wadah Linux alih-alih wadah Windows. Misalnya, Anda dapat mencapai penghematan sekitar 45 persen pada biaya komputasi jika Anda menjalankan. NETInti di EC2 Linux alih-alih menjalankan file. NETKerangka kerja pada EC2 Windows. Anda bisa mendapatkan penghematan tambahan 40 persen jika Anda menggunakan ARM arsitektur (AWS Graviton) alih-alih x86.

Jika Anda berencana untuk menjalankan kontainer berbasis Linux untuk yang sudah ada. NETAplikasi kerangka kerja, Anda harus mem-port aplikasi ini ke versi lintas-platform modern. NET(seperti. NET6.0) untuk menggunakan wadah Linux. Pertimbangan utama adalah menimbang biaya refactoring dibandingkan dengan penghematan biaya yang diperoleh melalui pengurangan biaya kontainer Linux. Untuk informasi lebih lanjut tentang porting aplikasi Anda ke modern. NET, lihat Asisten Porting untuk. NETdalam AWS dokumentasi.

Manfaat lain dari pindah ke modern. NET(yaitu, jauh dari. NETKerangka kerja) adalah bahwa peluang modernisasi tambahan tersedia. Misalnya, Anda dapat mempertimbangkan untuk merancang ulang aplikasi Anda ke arsitektur berbasis layanan mikro yang lebih skalabel, gesit, dan hemat biaya.

Diagram berikut menggambarkan proses pengambilan keputusan untuk mengeksplorasi peluang modernisasi.

Membentuk ulang pohon keputusan

Manfaatkan Savings Plans

Kontainer dapat membantu Anda memanfaatkan Compute Savings Plans untuk mengurangi biaya Fargate Anda. Model diskon fleksibel menawarkan diskon yang sama dengan Instans Cadangan Konvertibel. Harga Fargate didasarkan pada v CPU dan sumber daya memori yang digunakan sejak Anda mulai mengunduh gambar kontainer hingga ECS tugas Amazon berakhir (dibulatkan ke detik terdekat). Savings Plans untuk Fargate menawarkan penghematan hingga 50 persen pada penggunaan Fargate dengan imbalan komitmen untuk menggunakan jumlah tertentu dari penggunaan komputasi (diukur dalam dolar per jam) untuk jangka waktu satu tahun atau tiga tahun. Anda dapat menggunakannya AWS Cost Exploreruntuk membantu Anda memilih Savings Plan.

Penting untuk dipahami bahwa Compute Savings Plans diterapkan pada penggunaan yang memberi Anda penghematan terbesar terlebih dahulu. Misalnya, jika Anda menjalankan instans Linux t3.medium us-east-2 dan instance Windows t3.medium yang identik, instance Linux menerima manfaat Savings Plan terlebih dahulu. Ini karena instance Linux memiliki potensi penghematan 50 persen sedangkan instance Windows yang sama memiliki potensi penghematan 35 persen. Jika Anda memiliki sumber daya lain yang memenuhi syarat Savings Plan yang berjalan di Anda Akun AWS, seperti Amazon EC2 atau Lambda, maka Savings Plan Anda tidak perlu diterapkan ke Fargate terlebih dahulu. Untuk informasi selengkapnya, lihat Memahami bagaimana Savings Plans berlaku untuk AWS penggunaan Anda di dokumentasi Savings Plans dan EC2 bagian Optimalkan pengeluaran untuk Windows di Amazon pada panduan ini.

Tugas Fargate ukuran yang tepat

Penting untuk memastikan bahwa tugas Fargate berukuran benar untuk mencapai tingkat optimasi biaya maksimum. Seringkali, pengembang tidak memiliki semua informasi penggunaan yang diperlukan ketika awalnya menentukan konfigurasi untuk tugas Fargate yang digunakan dalam aplikasi mereka. Hal ini dapat menyebabkan penyediaan tugas yang berlebihan dan kemudian menghasilkan pengeluaran yang tidak perlu. Untuk menghindari hal ini, kami menyarankan Anda memuat aplikasi pengujian yang berjalan di Fargate untuk memahami kinerja konfigurasi tugas tertentu di bawah skenario penggunaan yang berbeda. Anda dapat menggunakan hasil pengujian beban, vCPU, alokasi memori tugas, dan kebijakan penskalaan otomatis untuk menemukan keseimbangan yang tepat antara kinerja dan biaya.

Diagram berikut menunjukkan bagaimana Compute Optimizer menghasilkan rekomendasi untuk tugas dan ukuran wadah yang optimal.

Rekomendasi Compute Optimizer untuk tugas dan ukuran wadah

Salah satu pendekatannya adalah dengan menggunakan alat pengujian beban, seperti yang dijelaskan dalam Pengujian Beban Terdistribusi pada AWS, untuk menetapkan dasar untuk v CPU dan pemanfaatan memori. Setelah Anda menjalankan uji beban untuk mensimulasikan beban aplikasi biasa, maka Anda dapat menyempurnakan konfigurasi v CPU dan memori untuk tugas tersebut hingga pemanfaatan dasar tercapai.

Sumber daya tambahan