it-swarm.asia

Apa perbedaan antara Elastic Beanstalk dan CloudFormation untuk proyek .NET?

Saya telah mengembangkan aplikasi .NET MVC dan telah mulai bermain-main dengan AWS dan menyebarkannya melalui Visual Studio Toolkit. Saya telah berhasil menyebarkan aplikasi menggunakan opsi Elastic Beanstalk di toolkit.

Saat saya membahas tutorial untuk menggunakan aplikasi .NET ke AWS dengan toolkit, saya perhatikan ada tutorial untuk menggunakan dengan baik Elastic Beanstalk dan CloudFormation . Apa perbedaan antara keduanya? 

Dari apa yang saya tahu, sepertinya mereka berdua pada dasarnya melakukan hal yang sama - membuatnya lebih mudah untuk menyebarkan aplikasi Anda ke cloud AWS (menyiapkan instance EC2, load balancer, auto-scaling, dll). Saya sudah mencoba membaca pada mereka berdua, tetapi sepertinya saya tidak bisa mendapatkan apa pun selain sekelompok kata-kata yang terdengar seperti hal yang sama bagi saya. Saya bahkan menemukan FAQ di situs web AWS yang seharusnya menjawab pertanyaan persis ini, namun saya tidak begitu mengerti.

Haruskah saya menggunakan yang satu atau yang lain? Kedua?

78
kspearrin

Mereka sebenarnya sangat berbeda. Elastic Beanstalk dimaksudkan untuk membuat hidup pengembang lebih mudah. CloudFormation dimaksudkan untuk membuat hidup para insinyur sistem lebih mudah.

Elastic Beanstalk adalah lapisan mirip-PaaS di atas layanan IaaS AWS yang memisahkan abstrak dari EC2 yang mendasarinya, Elastic Load Balancers, grup penskalaan otomatis, dll. Ini membuatnya jauh lebih mudah bagi pengembang, yang tidak ingin berurusan dengan semua hal-hal sistem, untuk mendapatkan aplikasi mereka dengan cepat dikerahkan di AWS. Ini sangat mirip dengan produk PaaS lainnya seperti Heroku, EngineYard, Google App Engine, dll. Dengan Elastic Beanstalk, Anda tidak perlu memahami cara kerja sihir yang mendasarinya.

CloudFormation, di sisi lain, tidak secara otomatis melakukan apa pun. Ini hanyalah cara untuk mendefinisikan semua sumber daya yang dibutuhkan untuk penyebaran dalam file JSON besar. Jadi template CloudFormation mungkin benar-benar membuat dua lingkungan ElasticBeanstalk (produksi dan pementasan), beberapa kelompok ElasticCache, tabel DyanmoDB, dan kemudian DNS yang tepat di Route53. Saya kemudian mengunggah templat ini ke AWS, berjalan pergi, dan 45 menit kemudian semuanya sudah siap dan menunggu. Karena ini hanya file JSON teks biasa, saya dapat menempelnya di kontrol sumber saya yang menyediakan cara yang bagus untuk versi penyebaran aplikasi saya. Ini juga memastikan bahwa saya memiliki konfigurasi berulang yang "dikenal bagus" yang dapat saya gunakan dengan cepat di wilayah yang berbeda. 

151
jamieb

Untuk memulai dengan cepat menggunakan aplikasi web .NET standar, Elastic Beanstalk adalah layanan yang tepat untuk Anda.

App Services Comparison Graphic

AWS CloudFormation : "Penyediaan Berbasis Template"

AWS CloudFormation memberi para pengembang dan administrator sistem cara mudah untuk membuat dan mengelola koleksi sumber daya AWS terkait, menyediakan dan memperbaruinya secara teratur dan dapat diprediksi.

CloudFormation (CFn) adalah abstraksi ringan dan tingkat rendah di atas API AWS yang ada. Menggunakan dokumen JSON/YAML templat statis, Anda mendeklarasikan kumpulan Sumberdaya (seperti turunan EC2 atau S3 bucket ) yang sesuai dengan operasi CRUD pada AWS Lebah.

Ketika Anda membuat tumpukan CloudFormation, CloudFormation memanggil API terkait untuk membuat Sumber Daya terkait, dan ketika Anda menghapus tumpukan, CloudFormation memanggil API terkait untuk menghapusnya. Sebagian besar (tetapi tidak semua) AWS API didukung.

AWS Elastic Beanstalk : "Aplikasi Web Dimudahkan"

AWS Elastic Beanstalk adalah layanan yang mudah digunakan untuk menyebarkan dan menskala aplikasi dan layanan web yang dikembangkan dengan Java , .NET , PHP , Node.js , Python , Ruby , Go , dan Docker pada server yang sudah dikenal seperti Apache, Nginx, Penumpang, dan IIS.

Anda cukup mengunggah kode Anda dan Elastic Beanstalk secara otomatis menangani penyebaran, dari penyediaan kapasitas, penyeimbangan muatan, penskalaan otomatis hingga pemantauan kesehatan aplikasi.

Elastic Beanstalk (EB) adalah 'platform as a service' (tingkat layanan) yang dikelola lebih tinggi untuk hosting aplikasi web, mirip dalam cakupannya dengan Heroku . Daripada berurusan dengan sumber daya AWS tingkat rendah secara langsung, EB menyediakan platform yang sepenuhnya dikelola di mana Anda membuat lingkungan aplikasi menggunakan antarmuka web , pilih yang mana platform yang digunakan aplikasi Anda, buat dan unggah bundel sumber , dan EB menangani sisanya.

Dengan menggunakan EB, Anda mendapatkan segala macam fitur bawaan untuk memantau lingkungan aplikasi Anda dan menyebarkan versi baru aplikasi Anda .

Di bawah tenda, EB menggunakan CloudFormation untuk membuat dan mengelola berbagai sumber daya AWS aplikasi. Anda dapat menyesuaikan dan memperluas lingkungan EB default dengan menambahkan Sumber Daya CloudFormation ke file konfigurasi EB yang digunakan dengan aplikasi Anda.

Kesimpulan

Jika aplikasi Anda adalah aplikasi web-tier standar menggunakan salah satu platform yang didukung Elastic Beanstalk, dan Anda ingin hosting yang mudah dikelola dan sangat skalabel untuk aplikasi Anda, gunakan Elastic Beanstalk.

Jika kamu:

  • Ingin mengelola semua sumber daya AWS aplikasi Anda secara langsung;
  • Ingin mengelola atau sangat menyesuaikan proses penyediaan atau penyebaran instance Anda;
  • Perlu menggunakan platform aplikasi yang tidak didukung oleh Elastic Beanstalk; atau
  • Hanya tidak mau/butuh fitur Elastic Beanstalk yang lebih tinggi

lalu gunakan CloudFormation secara langsung dan hindari lapisan konfigurasi tambahan Beanstalk yang elastis.

23
wjordan

Ada perbedaan lain yang perlu diperhatikan. Pohon kacang elastis dirancang sebagai wadah untuk satu aplikasi. Saya sudah memiliki beberapa situs web dan layanan tetapi merasa sangat sulit untuk menyebarkan beberapa situs web dengan beanstalk dan disarankan, setelah beberapa upaya, oleh AWS membantu untuk menggunakan pembentukan cloud dalam situasi ini karena memiliki fleksibilitas ekstra . artikel yang sangat membantu tentang pembentukan awan AWS bootstrap dan memperbarui situs yang sedang berjalan di sini itu jauh lebih jelas daripada halaman AWS. Masih berusaha untuk bekerja jika kita dapat menggunakan dari VS langsung ke templat pembentukan cloud yang tersimpan di S3 dan mendapatkannya untuk pembaruan otomatis seperti beanstalk ...

10
Matt

Cloud Formation adalah layanan yang memungkinkan Anda menggunakan layanan AWS. Anda membuat file templat yang menjelaskan layanan mana yang Anda inginkan. Ketika Anda menggunakan templat itu, Formasi Cloud menciptakan sumber daya untuk Anda sebagai "paket". Semua sumber daya yang Anda tetapkan dalam template Anda dimulai dan diakhiri bersama. Contoh tipe sumber daya yang dapat dibuat dengan Formasi Cloud adalah: S3, instance EC2, AutoScaling, DynamoDb, dll. Untuk EC2, Formasi Cloud juga memberi Anda kemampuan untuk menggunakan skrip "cfn-init"; yang dapat digunakan bersama dengan template untuk mem-boot tali instans Anda.

Elastic Beanstalk menggunakan templat dan skrip Cloud Formation untuk: 1. Buat Load Balancer dan Auto Scaling Group, 2. Salin kode Anda ke S3, 3. Bootstrap instance Ec2 untuk Unduh kode dari S3 dan gunakan. 

Cloud Formation tidak semudah menggunakan EB, tetapi jauh lebih kuat, karena Anda dapat membuat sumber daya selain instance EC2, mengontrol cara skrip cfn-init, dan lain-lain.

10
Edwin

Elastic Beanstalk secara otomatis menangani penyebaran, mulai dari penyediaan kapasitas, keseimbangan beban, penskalaan otomatis hingga pemantauan kesehatan aplikasi berdasarkan kode yang Anda unggah ke dalamnya, sedangkan CloudFormation adalah mesin penyedia otomatis yang dirancang untuk menyebarkan seluruh lingkungan cloud melalui skrip JSON.

1
Mahesh Bablu

Beanstalk elastis secara otomatis menangani penyebaran kode Anda - mulai dari penyediaan kapasitas, keseimbangan beban, penskalaan otomatis hingga pemantauan kesehatan aplikasi berdasarkan kode yang Anda unggah ke dalamnya, sedangkan cloudFormation adalah mesin otomatis yang dirancang untuk menyebarkan seluruh lingkungan cloud melalui JSON naskah.

0
Prateek Gupta