Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan aplikasi satu halaman berbasis React ke Amazon S3 dan CloudFront
Jean-Baptiste Guillois, Amazon Web Services
Ringkasan
Aplikasi satu halaman (SPA) adalah situs web atau aplikasi web yang secara dinamis memperbarui konten halaman web yang ditampilkan dengan menggunakan. JavaScript APIs Pendekatan ini meningkatkan pengalaman pengguna dan kinerja situs web karena hanya memperbarui data baru alih-alih memuat ulang seluruh halaman web dari server.
Pola ini memberikan step-by-step pendekatan untuk mengkodekan dan menghosting SPA yang ditulis dalam React di Amazon Simple Storage Service (Amazon S3) dan Amazon. CloudFront SPA dalam pola ini menggunakan REST API yang dikonfigurasi di Amazon API Gateway dan diekspos melalui CloudFront distribusi Amazon untuk menyederhanakan manajemen berbagi sumber daya lintas asal (CORS).
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS.
Node.js dan
npm
, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat bagian Unduhanpada dokumentasi Node.js. Benang, dipasang dan dikonfigurasi. Untuk informasi selengkapnya, lihat dokumentasi Yarn
. Git, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat dokumentasi Git
.
Arsitektur

Arsitektur ini secara otomatis digunakan dengan menggunakan AWS CloudFormation (infrastruktur sebagai kode). Ini menggunakan layanan Regional seperti Amazon S3 untuk menyimpan aset statis dan Amazon CloudFront dengan Amazon API Gateway untuk mengekspos titik akhir API Regional (REST). Log aplikasi dikumpulkan dengan menggunakan Amazon CloudWatch. Semua panggilan AWS API diaudit di AWS CloudTrail. Semua konfigurasi keamanan (misalnya, identitas dan izin) dikelola di AWS Identity and Access Management (IAM). Konten statis dikirimkan melalui jaringan pengiriman CloudFront konten Amazon (CDN), dan kueri DNS ditangani oleh Amazon Route 53.
Alat
Layanan AWS
Amazon API Gateway membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah.
Amazon CloudFront mempercepat distribusi konten web Anda dengan mengirimkannya melalui jaringan pusat data di seluruh dunia, yang menurunkan latensi dan meningkatkan kinerja.
AWS CloudTrailmembantu Anda mengaudit tata kelola, kepatuhan, dan risiko operasional Anda Akun AWS.
Amazon CloudWatch membantu Anda memantau metrik sumber AWS daya Anda dan aplikasi yang Anda jalankan AWS secara real time.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
Amazon Route 53 adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Kode
Contoh kode aplikasi pola ini tersedia di repositori aplikasi satu halaman CORS GitHub berbasis React
Praktik terbaik
Dengan menggunakan penyimpanan objek Amazon S3, Anda dapat menyimpan aset statis aplikasi Anda dengan cara yang aman, sangat tangguh, berkinerja, dan hemat biaya. Tidak perlu menggunakan wadah khusus atau instans Amazon Elastic Compute Cloud (Amazon EC2) untuk tugas ini.
Dengan menggunakan jaringan pengiriman CloudFront konten Amazon, Anda dapat mengurangi latensi yang mungkin dialami pengguna saat mereka mengakses aplikasi Anda. Anda juga dapat melampirkan firewall aplikasi web (AWS WAF) untuk melindungi aset Anda dari serangan berbahaya.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Kloning repositori. | Jalankan perintah berikut untuk mengkloning repositori aplikasi sampel:
| Pengembang aplikasi, AWS DevOps |
Menyebarkan aplikasi secara lokal. |
| Pengembang aplikasi, AWS DevOps |
Akses aplikasi secara lokal. | Buka jendela browser dan masukkan | Pengembang aplikasi, AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Menyebarkan AWS CloudFormation template. |
| Pengembang aplikasi, AWS DevOps |
Sesuaikan file sumber aplikasi Anda. |
| Pengembang aplikasi |
Bangun paket aplikasi. | Di direktori proyek Anda, jalankan | Pengembang aplikasi |
Menyebarkan paket aplikasi. |
| Pengembang aplikasi, AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Akses dan uji aplikasi. | Buka jendela browser, lalu tempel domain CloudFront distribusi ( | Pengembang aplikasi, AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Hapus isi bucket S3. |
| AWS DevOps, Pengembang aplikasi |
Hapus AWS CloudFormation tumpukan. |
| AWS DevOps, Pengembang aplikasi |
Sumber daya terkait
Untuk menyebarkan dan meng-host aplikasi web Anda, Anda juga dapat menggunakan AWS Amplify Hosting, yang menyediakan alur kerja berbasis Git untuk hosting aplikasi web full-stack, tanpa server dengan penerapan berkelanjutan. Amplify Hosting adalah bagian dari AWS Amplify, yang menyediakan seperangkat alat dan fitur yang dibuat khusus yang memungkinkan pengembang web dan seluler frontend untuk membangun aplikasi full-stack dengan cepat dan mudah. AWS
Informasi tambahan
Untuk menangani URLs permintaan yang tidak valid oleh pengguna yang mungkin menghasilkan 403 kesalahan, halaman kesalahan kustom yang dikonfigurasi dalam CloudFront distribusi menangkap 403 kesalahan dan mengarahkannya ke titik masuk aplikasi (). index.html
Untuk menyederhanakan pengelolaan CORS, REST API diekspos melalui distribusi. CloudFront