Hosting AWS dari Aplikasi Web SPA

Sep 17 2020

Saya baru saja mulai mempertimbangkan untuk menggunakan AWS untuk Aplikasi Web SPA saya. Dan saya telah membaca banyak tentang berbagai jenis bagaimana aplikasi web dapat dihosting di AWS. Saya telah melihat Lambda, S3 Static hosting. EC2. Tetapi tampaknya tidak dapat menemukan cara untuk mengeksploitasi AWS dan layanannya dengan cara terbaik.

Aplikasi Web saya terdiri dari front-end yang ditulis dalam Vue js. Yang menggunakan API Backend yang ditulis di Laravel. Bagian depan dan belakang merupakan isolasi sehingga tidak harus ditempatkan pada mesin yang sama. Jadi, menurut saya hal itu dapat memberikan peluang bagus untuk menggunakan berbagai produk AWS? Database hanya terhubung ke Api Backend sehingga Frontend statis. Saya juga berpikiran terbuka untuk mengubah ke jenis database lain jika itu lebih cocok dengan lingkungan AWS. Tetapi saya tidak tahu apakah saya harus memisahkan Frontend dan API menjadi layanan yang berbeda.

Terima kasih sebelumnya!

Jawaban

1 DannySchoemann Sep 22 2020 at 21:10

Jawaban AWS adalah menggunakan layanan yang sesuai untuk setiap komponen.

Misalnya Letakkan database di RDS - mereka memiliki banyak pilihan. Terapkan front-end menggunakan Fargate dan Lambda.

Ada 2 masalah yang perlu dipertimbangkan:

1. Kurva pembelajaran.

Mempercepat teknologi AWS - dan mengikutinya saat mereka membuat perubahan kecil yang mematahkan penerapan kelambatan - bisa menjadi sangat mahal, dari segi waktu.

OTOH, setelah Anda ahli dalam teknologi ini, Anda dapat memanfaatkannya dengan hasil yang luar biasa.

2. Biaya:

Saat Anda mengembangkan, Anda akan menggunakan sebagian besar tingkat gratis, dan biayanya minimal.

Setelah Anda beralih ke produksi, Anda harus mulai menggunakan mesin "asli", dan bahkan jika tidak, sebagian besar layanan memiliki masa kedaluwarsa untuk tingkat gratisnya: 12 bulan dan / atau jumlah penggunaan tertentu.

Pada saat itu biaya mulai membengkak. dari kecil-ubah menjadi 3 atau bahkan 4-angka angka untuk instalasi kecil.


Pendekatan lainnya adalah melakukannya dengan cara yang Anda lakukan tanpa AWS.

Anda tidak memberi saya banyak detail, tetapi jika Anda menerapkan sesuatu yang sederhana, Anda mungkin ingin menjalankan instans EC2, menginstal server LAMP dan menggunakannya untuk front & back end.

Anda kemudian dapat menggunakan Lifecycle Manager untuk mencadangkan seluruh mesin setiap hari.

Namun, jika Anda harus meningkatkannya secara besar-besaran, Anda harus mulai dari awal.


Jadi, apa yang kamu pilih?

Jawabannya tergantung pada sumber daya Anda: waktu, uang, dan tenaga, serta bagaimana Anda melihat hal ini berkembang dari proyek satu kali menjadi instalasi yang banyak digunakan dalam jangka panjang yang membutuhkan redundansi, penyeimbangan beban, dan kemampuan untuk menskalakan secara dinamis.

Anda juga dapat melihat sesuatu seperti AWS Beanstalk, yang lebih mudah diterapkan dan diterapkan ulang, tetapi tidak seinamis, seperti pendekatan tanpa server mereka.