Saya menjadi hosting Magento di AWS pada tahun 2011 hingga 2013. Banyak hal yang Anda peroleh dari penggunaan infrastruktur cloud daripada hosting dedicated atau shared yang lebih relevan dijelaskan di bawah topik DevOps, yang tidak eksklusif untuk AWS tetapi lebih mudah diaktifkan melalui penggunaannya.
- Kontrol yang lengkap dan fleksibel dari perencanaan kapasitas Anda - tingkatkan menjelang acara pemasaran, aktifkan penyediaan dinamis melalui Elastic Beanstalk, turunkan selama periode volume rendah, putar situs dalam beberapa minggu, robek ke bawah dan buang.
- Mudah mengatur lingkungan dev / test / staging dan mereplikasi perubahan di antara mereka.
- Host halaman admin Anda pada host yang terpisah.
- Gunakan DynamoDB untuk manajemen sesi dan ElastiCache untuk cache tanpa membuat operasi tambahan, berhati-hatilah. ElastiCache saat ini tidak berfungsi di VPC.
- gunakan ELB untuk loadbalancing, tetapi berhati-hatilah jika permintaan memakan waktu lebih dari 60 detik mereka akan dihentikan dengan tidak hormat
- Gunakan AmazonSES untuk mengirim email (sekarang bahkan lebih mudah melalui SMTP biasa), meskipun celah masih ada dalam alat untuk melacak pantulan / keluhan
- Gunakan AmazonS3 untuk hosting media, dan Cloudfront untuk CDN.
- Mengurangi biaya operasi untuk aktivitas basis data melalui RDS, yang memiliki fitur pengembalian waktu, kegagalan otomatis, cadangan otomatis, dan peningkatan otomatis.
- Manajemen DNS sangat mudah di Route53, tetapi umumnya disarankan untuk memudahkan pemetaan subdomain untuk memuat penyeimbang.
- VPC untuk menempatkan semua mesin Anda di jaringan pribadi mereka untuk memiliki kontrol granular yang lebih dan mengekspos akses sesuai keinginan Anda melalui terowongan VPN Anda sendiri.
- Metrik kinerja yang mudah dan peringatan (selain dari penggunaan memori dan penggunaan disk) melalui CloudWatch & SNS
Jejak minimal akan menjadi 1 ELB, 2 webservers EC2 dalam AZ terpisah, 1 multi-az RDS, zona yang di-hosting Route53 untuk domain. Awalnya Anda dapat menggunakan sesi tempel pada ELB untuk membuat manajemen sesi lebih sederhana, tetapi karena lalu lintas Anda meningkat, Anda ingin memindahkan media ke CDN (S3 & CloudFront) dan sesi dari masing-masing mesin.
Area yang belum saya lihat tetapi masih menjanjikan: skrip CloudFormation untuk penyebaran yang lebih mudah dari tumpukan Magento, pembongkaran pembuatan pesanan melalui DynamoDB dan antrian pekerja untuk throughput checkout yang lebih besar (seseorang telah memulai proyek untuk melakukan ini melalui MongoDB di salah satu hackathons baru-baru ini), dan mengatur keberadaan multi-wilayah melalui routing berbasis latensi dengan Route53.
Saya kira saya semacam penginjil untuk cloud. Khusus untuk AWS, c3.large adalah ukuran instance yang layak untuk server web produksi, tapi saya akan mulai dengan yang terkecil dari setiap kelas instance dan mengukur kinerja dan meningkatkan atau mengoptimalkan kode sesuai keinginan Anda, itulah sebabnya saya merujuk semua orang ke xhgui terus-menerus.
Ini adalah bagaimana kami melakukannya untuk webshop Angrybirds:
Presentasi bahasa Inggris di Magento Imagine 2012.
Presentasi Jerman di Meet Magento # 6.12
Bahasa Jerman saat ini "PHP Magazin" juga memiliki artikel 6 halaman (dalam bahasa Jerman) dengan beberapa detail
Setelah membaca semua presentasi Fabrizio yang dihubungkan di atas berkali-kali, saya pikir jawaban ini benar-benar yang terbaik, meskipun saya setuju itu bisa menggunakan lebih banyak penjelasan dan ekstraksi ide-ide kunci dari presentasi (terutama karena tautan pertama asli sudah sudah 404 pada saat saya memposting pembaruan ini).
Satu-satunya hal yang akan saya tambahkan ke konsep-konsep kunci dalam presentasi adalah bahwa kemajuan modern dalam teknologi AWS / pesaing akan menyarankan beberapa penyesuaian ... seperti fakta bahwa Cloudfront mendukung gzip untuk peningkatan kinerja CDN sekarang, meskipun tidak secepat atau tidak apakah itu memberi Anda penghentian SSL gratis seperti penawaran CloudFlare . Route 53 DNS mereka juga tidak secepat atau kaya fitur seperti CloudFlares, AWS juga tidak memiliki Firewall Aplikasi Web atau perlindungan DDOS yang sebanding, yang semuanya termasuk dalam penawaran CloudFlare ...
Ada beberapa cara lain yang mungkin untuk memperbaiki presentasi asli Fabrizio, tetapi saya tidak akan menjadi konsultan yang baik jika saya membagikan SEMUA yang saya tahu di setiap posting StackExchange yang saya jawab, sekarang, benarkan? Ditambah beberapa penawaran terbaru akan secara substansial mengubah saran dalam presentasi asli, yang semuanya MASIH menawarkan kinerja yang luar biasa, bahkan jika lebih banyak yang bisa dikeluarkan dari AWS dengan berbagai opsi yang digunakan.
Ringkasan Konsep-Konsep Utama :
Kenali Kemacetan Anda Secara Intim : dan optimalkan dengan tepat. Setiap tingkat tumpukan memiliki kemacetan spesifik (bandwidth, CPU, basis data) dan menyelesaikan kemacetan di setiap tingkat memerlukan solusi berbeda yang dioptimalkan untuk setiap tantangan spesifik, meskipun sebenarnya caching adalah elemen umum di setiap tingkat, yang mengarah ke ...
Cache All The Things : Memanfaatkan sistem AWS jika memungkinkan (Elasticache untuk Redis / cache data jenis Memcache, Cloudfront untuk Caching gambar, js, dan aset css terdekat dengan pengguna akhir melalui CDN) dan Varnish untuk mempercepat respons instance server ke tingkat aset awal caching permintaan dari CDN. Juga, pastikan untuk mengompres & meminimalkan dalam sistem penempatan Anda SEBELUM penempatan ke CDN
Autoscaling Penting : Permintaan sering berubah dan lebih cepat daripada yang dapat Anda monitor dan bereaksi secara manual. Menyesuaikan perubahan-perubahan ini secara real-time membutuhkan penggunaan alat otomasi yang tersedia di AWS seperti Grup Penskalaan Otomatis untuk memutar potongan sistem yang paling cocok untuk tugas ini. AWS menangani ini secara transparan untuk CloudFront CDN, Route 53 DNS, Elastic Load Balancers dan S3 Bucket, Anda harus menanganinya dengan mengatur ukuran dan penskalaan otomatis untuk Mesin Virtual EC2, dan hanya mengatur ukuran / penyetelan untuk tingkatan RDS & Elasticache
Otomasi adalah satu-satunya cara untuk mengikat semua ini secara efektif : dengan begitu banyak komponen yang saling terkait, beberapa di antaranya harus diinisialisasi pada waktu penggunaan, beberapa tepat setelah penyebaran, mengelola sistem yang disetel untuk kinerja optimal memerlukan otomatisasi. Meningkatkan penyebaran dan otomasi sistem untuk pembersihan cache, pemanasan cache, pemrosesan gambar, dll. Adalah satu-satunya cara yang masuk akal untuk mengelola banyak subsistem yang berbeda ini dan membuatnya tetap lancar dan bebas masalah.
Tetapi sebenarnya itu tidak mungkin tanpa otomatisasi uji : Dengan banyak bagian yang bergerak ini, sesuatu akan pecah dengan hampir semua perubahan. Dan Anda harus berubah untuk mengikuti perkembangan Magento dan AWS. Dan itu akan terjadi SERING . Jadi untuk menjaga biaya perubahan diminimalkan, semua bentuk pengujian perlu diimplementasikan dan diotomatisasi sepenuhnya - mulai dari pengujian unit hingga pengujian integrasi hingga pengujian fungsional berbasis Selenium di lokasi aktual yang diluncurkan dalam konfigurasi pengujian aktual yang meniru lingkungan produksi. Sekarang Anda BENAR-BENAR senang Anda mengotomatiskan semua proses penyebaran Anda, bukan?
sumber
Solusi (!) Yang sedikit lebih sederhana adalah menginstal seperti yang Anda lakukan pada VPS lainnya. Saya telah menawarkan gambar gratis selama beberapa tahun sekarang ... belakangan ini saya berkonsentrasi pada Sydney DC baru karena menjadi lokal - lebih detail di http://www.greengecko.co.nz/magento_on_amazon_ec2 jika Anda Saya tertarik dengan hal itu. Praktis tanpa rasa sakit memulai - satu klik dan Anda di sana. Arahkan browser Anda pada instance untuk detail lebih lanjut. Ini akan menjadi titik awal yang bagus - tetapi lihatlah dan modifikasi /etc/rc.local jika Anda ingin membangun di atasnya.
Hal penting untuk disadari adalah bahwa instans cukup bertenaga rendah. Jelas membuang banyak uang pada aplikasi memang meningkatkan ini, tetapi bahkan untuk webshop yang cukup kecil sekalipun, instance sedang adalah minimum absolut, hanya untuk mendapatkan beberapa core, dan benar-benar besar adalah kebutuhan terkecil.
Juga, penyimpanan Amazon lambat. Karena itu, bahkan lebih penting daripada biasanya untuk mengirimkan semua yang Anda bisa dari memori: menyetel basis data, cache yang didukung memori, dll sangat penting.
Setelah Anda menyortirnya, itu berfungsi dengan baik. persyaratan untuk menjalankan dalam VPC jika Anda ingin> 1 alamat IP benar-benar menjengkelkan (terutama jika Anda tidak menyadarinya ketika Anda mulai!), dan benar-benar satu-satunya gotcha yang akan Anda temui.
Sangat mudah untuk memperluas platform 'on the fly' - pada akhirnya satu-satunya penghambat menjadi jumlah daya pemrosesan yang tersedia untuk PHP (selain kode tidak efisien!), Dan menjalankan banyak 'mesin' secara paralel mungkin merupakan pilihan paling sederhana - membawa tambahan online saat perlu.
Nikmati!
Steve
sumber
Kami menjalankan RDS Multi AZ, Dua Server Dioptimalkan NGINX, 2 Server Varnish + ELB, dan pada Server Varnish yang sama (port yang berbeda ke Varnish) SSL Nginx. Kami menggunakan Elasticache dan dengan segera mengintegrasikan DynamoDB untuk manajemen sesi Magento. Kami menggunakan S3 dan Cloudfront juga.
Saya memiliki obrolan yang menarik dengan perusahaan hosting berbasis di Inggris kami memiliki server £ 700 sebulan dengan. Yang mereka lakukan adalah batu tulis AWS Amazon. Dengan pengaturan dan optimalisasi yang benar di semua bidang termasuk striping kembali Magento, menonaktifkan modul, fungsi jumlah kategori dll, dll (kami telah mengatur NGINX dan Server Varnish untuk duduk di depan server Database yang memuat keseimbangan).
Saat ini kami bisa mendapatkan 2400 - 3000 + klik per detik di halaman rumah, kategori, produk dan CMS (halaman pernis). Halaman non-pernis, kami dapat memproses 400 - 500 permintaan per detik tergantung pada toko. Kami sekarang menggunakan RDS Multi dengan Baca.
Kami juga menempatkan Admin Magento di Node-nya sendiri untuk menjalankan crons, dan admin traffic. http://administraton.mymagestore.com/admin
Kami tidak pernah melihat ke belakang. Kami menggunakan salah satu yang terbaik di Inggris, semua itu adalah host yang sangat mahal.
sumber
Anda dapat menggunakan hampir semua Layanan AWS dasar untuk membuat magento Anda berfungsi. Scenation paling sederhana adalah menggunakan EC2 dengan Elastic IP dan AWS VPC untuk konfigurasi keamanan.
Cara cerdas adalah memiliki 2 penyebaran server: Web Server + Database. Server web mencakup Magento + Nginx + PHP + backend Caching (Redis atau APC adalah pilihan yang baik) dan server MySQL terpisah dalam subnet yang sama. Server-server ini dapat terlihat satu sama lain melalui IP pribadi di jaringan pribadi (dikonfigurasi melalui VPC). Nginx adalah server web pilihan segera setelah dapat mengirimkan file statis dengan sangat cepat.
Server database harus disembunyikan dari akses apa pun. Server web akan terlihat pada port 80 dan 443. Dimungkinkan untuk mengalokasikan IP Elastis ke server web. Nantinya akan berguna untuk mengkonfigurasi DNS (misalnya melalui AWS Route 53) atau penyeimbangan beban AWS.
Seperti yang Anda sebutkan, mungkin sulit untuk membuat konfigurasi seperti itu. Jadi, Anda dapat mempercepat pengaturan melalui Deploy4Me. Ini akan mengkonfigurasi semua keamanan, VM, dan jaringan yang disebutkan dalam hitungan menit.
sumber