Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jelajahi pengembangan aplikasi web cloud-native full-stack dengan Green Boost
Ben Stickley dan Amiin Samatar, Amazon Web Services
Ringkasan
Menanggapi kebutuhan pengembang yang terus berkembang, Amazon Web Services (AWS) mengakui permintaan kritis untuk pendekatan yang efisien untuk mengembangkan aplikasi web cloud-native. Fokus AWS adalah membantu Anda mengatasi hambatan umum yang terkait dengan penerapan aplikasi web di AWS Cloud. Dengan memanfaatkan kemampuan teknologi modern seperti AWS Cloud Development Kit ( TypeScriptAWS CDK), React, dan Node.js, pola ini bertujuan untuk merampingkan dan mempercepat proses pengembangan.
Didukung oleh toolkit Green Boost (GB), pola ini menawarkan panduan praktis untuk membangun aplikasi web yang sepenuhnya menggunakan kemampuan AWS yang luas. Ini bertindak sebagai peta jalan yang komprehensif, menuntun Anda melalui proses penerapan aplikasi web CRUD (Buat, Baca, Perbarui, Hapus) mendasar yang terintegrasi dengan Amazon Aurora PostgreSQL Edisi yang kompatibel. Ini dicapai dengan menggunakan antarmuka baris perintah Green Boost (Green Boost CLI) dan membangun lingkungan pengembangan lokal.
Setelah keberhasilan penerapan aplikasi, pola menggali komponen kunci dari aplikasi web, termasuk desain infrastruktur, pengembangan backend dan frontend, dan alat-alat penting seperti cdk-dia untuk visualisasi, memfasilitasi manajemen proyek yang efisien.
Prasyarat dan batasan
Prasyarat
Git
diinstal Visual Studio Code (VS Code)
diinstal Node.js 18
diinstal, atau Node.js 18 dengan pnpm diaktifkan pnpm
diinstal, jika itu bukan bagian dari instalasi Node.js Anda Keakraban dasar dengan TypeScript, AWS CDK, Node.js, dan React
Akun AWS di-bootstrap dengan menggunakan AWS CDK di.
us-east-1Wilayahus-east-1AWS diperlukan untuk mendukung fungsi Amazon CloudFront Lambda @Edge.Kredensyal keamanan AWS, termasuk
AWS_ACCESS_KEY_ID, dikonfigurasi dengan benar di lingkungan terminal AndaUntuk pengguna Windows, terminal dalam mode administrator (untuk mengakomodasi cara pnpm menangani modul node)
Versi produk
AWS SDK untuk JavaScript versi 3
AWS CDK versi 2
AWS CLI versi 2.2
Node.js versi 18
Bereaksi versi 18
Arsitektur
Tumpukan teknologi target
Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
Amazon CloudFront
Amazon CloudWatch
Amazon Elastic Compute Cloud (Amazon EC2)
AWS Lambda
AWS Secrets Manager
Amazon Simple Notification Service (Amazon SNS)
Amazon Simple Storage Service (Amazon S3)
AWS WAF
Arsitektur Target
Diagram berikut menunjukkan bahwa permintaan pengguna melewati Amazon CloudFront, AWS WAF, dan AWS Lambda sebelum berinteraksi dengan bucket S3, database Aurora, instans EC2 , dan akhirnya menjangkau pengembang. Administrator, di sisi lain, menggunakan Amazon SNS dan CloudWatch Amazon untuk tujuan notifikasi dan pemantauan.

Untuk mendapatkan tampilan yang lebih mendalam pada aplikasi setelah penerapan, Anda dapat membuat diagram dengan menggunakan cdk-dia

Diagram ini menampilkan arsitektur aplikasi web dari dua sudut yang berbeda. Diagram cdk-dia menawarkan tampilan teknis terperinci tentang infrastruktur AWS CDK, menyoroti layanan AWS tertentu seperti Amazon Aurora PostgreSQL yang kompatibel dengan dan AWS Lambda. Sebaliknya, diagram lain mengambil perspektif yang lebih luas, menekankan aliran logis data dan interaksi pengguna. Perbedaan utama terletak pada tingkat detail: CDK-dia menggali seluk-beluk teknis, sedangkan diagram pertama memberikan tampilan yang lebih berpusat pada pengguna.
Pembuatan diagram cdk-dia tercakup dalam epik Memahami infrastruktur aplikasi dengan menggunakan AWS CDK.
Alat
Layanan AWS
Amazon Aurora PostgreSQL Compatible Edition adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.
AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
Amazon CloudFront mempercepat distribusi konten web Anda dengan mengirimkannya melalui jaringan pusat data di seluruh dunia, yang menurunkan latensi dan meningkatkan kinerja.
Amazon CloudWatch membantu Anda memantau metrik sumber daya AWS Anda dan aplikasi yang Anda jalankan di AWS secara real time.
Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
AWS Lambda adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
AWS Secrets Manager membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
AWS Systems Manager membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan manajemen aplikasi dan sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola sumber daya AWS Anda dengan aman dalam skala besar. Pola ini menggunakan AWS Systems Manager Session Manager.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data. Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
AWS WAF adalah firewall aplikasi web yang membantu Anda memantau permintaan HTTP dan HTTPS yang diteruskan ke sumber daya aplikasi web Anda yang dilindungi
Alat-alat lainnya
Git
adalah sistem kontrol versi terdistribusi open-source. Green Boost
adalah toolkit untuk membangun aplikasi web di AWS. Next.js
adalah framework React untuk menambahkan fitur dan optimasi. Node.js
adalah lingkungan JavaScript runtime berbasis peristiwa yang dirancang untuk membangun aplikasi jaringan yang dapat diskalakan. pgAdmin
adalah alat manajemen sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. pnpm
adalah manajer paket untuk dependensi proyek Node.js.
Praktik terbaik
Lihat bagian Epik untuk informasi lebih lanjut tentang rekomendasi berikut:
Pantau infrastruktur dengan menggunakan CloudWatch Dasbor Amazon dan alarm.
Menerapkan praktik terbaik AWS dengan menggunakan cdk-nag untuk menjalankan analisis infrastruktur statis sebagai kode (IAc).
Buat penerusan port DB melalui tunneling SSH (Secure Shell) dengan Systems Manager Session Manager, yang lebih aman daripada memiliki alamat IP yang terbuka secara publik.
Kelola kerentanan dengan menjalankan
pnpm audit.Terapkan praktik terbaik dengan menggunakan ESLint
untuk melakukan analisis TypeScript kode statis, dan Prettier untuk membakukan pemformatan kode.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal Green Boost CLI. | Untuk menginstal Green Boost CLI, jalankan perintah berikut.
| Pengembang aplikasi |
Buat aplikasi GB. |
| Pengembang aplikasi |
Instal dependensi dan terapkan aplikasi. |
Tunggu hingga penerapan selesai (sekitar 20 menit). Saat Anda menunggu, pantau CloudFormation tumpukan AWS di CloudFormation konsol. Perhatikan bagaimana konstruksi didefinisikan dalam peta kode ke sumber daya yang digunakan. Tinjau tampilan pohon Konstruksi CDK di konsol. CloudFormation | Pengembang aplikasi |
Akses aplikasi. | Setelah menerapkan aplikasi GB secara lokal, Anda dapat mengaksesnya menggunakan URL. CloudFront URL dicetak dalam output terminal, tetapi bisa sedikit berlebihan untuk ditemukan. Untuk menemukannya lebih cepat, gunakan langkah-langkah berikut:
Atau, Anda dapat menemukan CloudFront URL dengan mengakses CloudFront konsol Amazon:
Salin Nama Domain yang terkait dengan distribusi. Ini akan terlihat mirip dengan | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lihat CloudWatch Dasbor. |
| Pengembang aplikasi |
Aktifkan peringatan. | CloudWatch Dasbor membantu Anda memantau aplikasi web secara aktif. Untuk memantau aplikasi web Anda secara pasif, Anda dapat mengaktifkan peringatan.
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat diagram arsitektur. | Buat diagram arsitektur aplikasi web Anda dengan menggunakan cdk-dia
| Pengembang aplikasi |
Gunakan cdk-nag untuk menerapkan praktik terbaik. | Gunakan cdk-nag untuk membantu Anda menjaga infrastruktur yang aman dan patuh dengan menerapkan praktik terbaik, mengurangi risiko kerentanan keamanan dan kesalahan konfigurasi.
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Memperoleh variabel lingkungan. | Untuk mendapatkan variabel lingkungan yang diperlukan, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
Menetapkan port forwarding. | Untuk membuat port forwarding, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
Sesuaikan batas waktu Systems Manager Session Manager. | (Opsional) Jika batas waktu sesi 20 menit default terlalu singkat, Anda dapat meningkatkannya hingga 60 menit di konsol Systems Manager dengan memilih Session Manager, Preferences, Edit, Idle session timeout. | Pengembang aplikasi |
Visualisasikan database. | pgAdmin adalah alat sumber terbuka yang mudah digunakan untuk mengelola database PostgreSQL. Ini menyederhanakan tugas database, memungkinkan Anda untuk secara efisien membuat, mengelola, dan mengoptimalkan database. Bagian ini memandu Anda untuk menginstal pgAdmin
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Debug kasus penggunaan item buat. | Untuk men-debug kasus penggunaan item buat, ikuti langkah-langkah berikut:
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan server pengembangan. |
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan monorepo dan manajer paket pnpm. |
| Pengembang aplikasi |
Jalankan skrip pnpm. | Jalankan perintah berikut di root repositori Anda:
Perhatikan bagaimana perintah ini dijalankan di semua ruang kerja. Perintah didefinisikan di setiap | Pengembang aplikasi |
Gunakan ESLint untuk analisis kode statis. | Untuk menguji kemampuan analisis kode statis ESLint, lakukan hal berikut:
| Pengembang aplikasi |
Kelola dependensi dan kerentanan. |
| Pengembang aplikasi |
Kait pra-komit dengan Husky. |
Alat-alat ini adalah mekanisme untuk membantu mencegah kode buruk masuk ke aplikasi Anda. | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus penyebaran dari akun Anda. |
| Pengembang aplikasi |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Tidak dapat membuat penerusan port | Pastikan kredensyal AWS Anda dikonfigurasi dengan benar dan memiliki izin yang diperlukan. Periksa kembali apakah variabel lingkungan bastion host ID ( Jika Anda masih mengalami masalah, lihat dokumentasi AWS untuk memecahkan masalah koneksi SSH dan Session Manager. |
Situs web tidak dimuat di | Konfirmasikan bahwa output terminal menunjukkan penerusan port yang berhasil, termasuk alamat penerusan. Pastikan tidak ada proses yang bertentangan menggunakan port 3000 pada mesin lokal Anda. Verifikasi bahwa aplikasi Green Boost dikonfigurasi dengan benar dan berjalan pada port yang diharapkan (3000). Periksa browser web Anda untuk ekstensi atau pengaturan keamanan apa pun yang mungkin memblokir koneksi lokal. |
Pesan galat selama penerapan lokal () | Tinjau pesan kesalahan dengan hati-hati untuk mengidentifikasi penyebab masalah. Verifikasi bahwa variabel lingkungan dan file konfigurasi yang diperlukan diatur dengan benar. |
Sumber daya terkait