Mempercepat peluncuran instance Amazon EC2 Windows

16

Saya sedang mengerjakan layanan Web yang dihosting di EC2 dan perlu menjalankan berbagai jumlah instance, tergantung pada beban. Kami memiliki layanan dasar dan berjalan, tetapi salah satu hal yang kami perjuangkan adalah waktu yang diperlukan untuk penyediaan dan meluncurkan contoh Windows (kami menggunakan beberapa alat prty ketiga yang hanya berjalan pada Windows). Saya telah melihat ini membutuhkan waktu mulai dari 10 menit hingga 45 menit yang cukup mengejutkan.

Adakah yang punya tips tentang cara mempercepat peluncuran instance EC2? Karena AMI untuk server Windows lebih besar dibandingkan dengan AMI Linux, misalnya, saya bertanya-tanya apakah satu hal yang mungkin untuk memastikan bahwa ember S3 yang berisi AMI terletak di zona yang sama di mana instance diluncurkan, yang mungkin akan membuat penyediaan instance baru lebih cepat.

gareth_bowles
sumber

Jawaban:

8

Saya menginstal 3 contoh tadi malam dari vanilla Windows 2003 server. Dua yang pertama membutuhkan waktu sekitar 45 menit, yang ke-3, sekitar satu jam kemudian, membutuhkan waktu 2 jam penuh sebelum siap!

Sama sekali tidak ada apa-apa di dalamnya, tanpa penggunaan S3. Saya ragu ada cara untuk mempercepat langkah mendasar itu selain dari menunggu Amazon untuk membuat peningkatan kecepatan penyebaran seiring waktu. Jadi, saya akan menyimpulkan bahwa penundaan tertentu diharapkan dan saran Kurt baik, yaitu untuk menjaga 1 atau 2 sebagai cadangan yang sudah disiapkan.

Hal lain yang dapat Anda lakukan adalah membuat instance baru dari tipe AMI Anda beberapa kali dan mengatur waktu. Kemudian coba beberapa kali dengan penyimpanan S3 Anda dan lihat berapa banyak waktu yang menambahkannya. Saya berasumsi bahwa zona ketersediaan harus cocok antara gambar dan S3, meskipun saya tidak tahu berapa banyak perbedaan waktu yang akan terjadi.

Setelah Anda menentukan waktu maksimum untuk penyediaan, tetap maju dari beban / penggunaan pada banyak menit.

Scott Forsyth - MVP
sumber
Terima kasih atas sarannya - 2 jam cukup ekstrim. Satu hal yang saya perhatikan sejak mengajukan pertanyaan ini adalah bahwa EC2 kadang-kadang me-reboot instans Windows segera setelah startup. Saya tidak tahu mengapa hal ini terjadi (saya belum menemukan pola mengapa beberapa contoh di-reboot sementara yang lain tidak), tetapi ini dapat menambah 5 atau 10 menit lagi pada waktu startup.
gareth_bowles
2
@gareth - ini karena mesin memiliki nama yang sama dengan yang lain di jaringan (Yaitu gambar). EC2ConfigService mendeteksi ini, memberikan nama baru, dan mem-boot ulangnya. Anda dapat menonaktifkannya dengan utilitas konfigurasi ec2config yang diinstal.
Kieren Johnstone
20

Amazon windows instal reboot pada awal karena konfigurasi default dari layanan windows "EC2 Config" adalah mengubah nama host Anda menjadi nama DNS internal instance. Mengganti nama host memerlukan reboot di windows. Jika Anda tidak perlu menggunakan nama DNS internal instance Anda, maka Anda mungkin mendapat manfaat dengan menonaktifkan fitur SetComputerName. Windows instances juga memiliki keuntungan karena tidak perlu menginisialisasi drive startup di mana Anda mungkin telah mem-bundle konfigurasi Anda lagi menghemat lebih banyak waktu misalnya memulai. Semua ini dimungkinkan melalui EC2 Windows Configuration Service.

Layanan Konfigurasi Windows: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html

Contoh kecil Windows saya biasanya membutuhkan waktu 15-18 menit untuk boot (yang lebih besar lebih cepat). Tergantung pada kebutuhan Anda, Anda mungkin dapat menggabungkan semua perangkat lunak Anda dalam AMI dan dapat membuat semuanya boot dan berjalan dalam periode itu. Saya mengerti reservasi untuk tidak menggabungkan semuanya menjadi AMI tetapi mungkin layak untuk perbaikan pada waktu start up untuk memiliki AMI produksi dengan semua yang dibundel di dalamnya. Pisahkan skrip build jika Anda ingin di lingkungan build Anda.

Selain itu, sekarang Amazon telah merilis volume root EBS yang bertentangan dengan volume root instance-store. Windows gambar kecil yang berjalan pada volume EBS boot dalam hampir 5 menit versus hampir 20 menit yang dibutuhkan sebelumnya. Anda juga tidak perlu menghentikan - Anda dapat menghentikan / memulainya - tergantung pada pengaturan Anda ini berpotensi mencukur beberapa menit lagi dalam beberapa skrip start up.

Pada dasarnya menyesuaikan layanan Windows EC2 Config Anda, AMI Anda dan berpotensi menggunakan volume boot EBS akan mengurangi waktu mulai hingga hampir 5 menit. Anda dapat menghindari sysprep yang berjalan pada startup contoh EC2 tergantung pada aplikasi Anda, terutama untuk tujuan pengembangan. Gambar m1.large non-sysprepped yang menghindari perubahan nama host pada startup dapat mulai dalam sekitar 2 menit yang tidak buruk sama sekali.

Saat ini, sejauh yang saya mengerti, itu yang terbaik yang dapat Anda lakukan dengan Windows di Amazon EC2 tapi itu tidak terlalu buruk. Jika Anda dapat meramalkan mendekati 10 menit ke depan berdasarkan pola penggunaan rata-rata, Anda harus dapat memutar instance tambahan dan menangani beban tambahan.

Ameer Deen
sumber
Ganti nama host internal adalah tip yang bagus - terima kasih! Saya ingin mencoba volume root EBS juga, paling tidak karena itu akan membuat backup lebih mudah. Saya kira saya harus memperkirakan waktu startup rata-rata 10 menit; itu bukan masalah seperti itu sendiri, tetapi variabilitas yang tinggi dari waktu startup masih menyusahkan.
gareth_bowles
Ini harus dirujuk dalam dokumen AWS.
Peter Mounce
4

Punya sistem minimal, pertahankan sebanyak mungkin agar EBS bisa membantu? Atau mungkin mengambil pendekatan gaya Apache dan menjalankan satu atau dua cadangan?

Kurt
sumber
4

Kami telah mengalami masalah yang pasti ini, tetapi dengan cara yang sangat serius - startup baru kami memperluas Amazon EC2 ke lingkungan Virtual Lab (multi-pengguna, kebijakan, berbagi, dll.) Sehingga kami perlu mempercepat waktu mulai Mesin Windows. Keputusan terbesar kami adalah hanya mendukung volume berbasis EBS di aplikasi kami, karena hanya itu yang dapat dimulai dalam 5-10 menit. Dalam pengujian kami, kami menemukan waktu startup toko instan sangat bervariasi dan kadang-kadang membutuhkan banyak waktu, yang membuat mereka tidak berguna bagi kami.

Simon @ LabSlice Manajemen Lab Virtual pada EC2

Simon di LabSlice-com
sumber