Mengehos SPA React di AWS S3 & CloudFront
Bina aplikasi React, muat naik ke S3, konfigurasikan edaran CloudFront dan batalkan cache.
Mengehos SPA React di AWS S3 & CloudFront ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Gambaran Keseluruhan Pengehosan Statik S3
AWS S3 boleh menyajikan fail statik (HTML, JS, CSS, imej) sebagai tapak web. Digabungkan dengan CloudFront (CDN), anda memperoleh pengedaran global, HTTPS dan latensi rendah untuk SPA React.
Membina SPA
Bina aplikasi React anda ke dalam direktori keluaran statik.
# Vite:
npm run build # outputs to dist/
# Create React App:
npm run build # outputs to build/
# Next.js static export:
next build && next export # outputs to out/Mencipta dan Mengkonfigurasi Baldi S3
Cipta baldi S3, dayakan pengehosan laman web statik dan tetapkan dokumen indeks serta ralat.
# Create bucket (replace with your domain name):
aws s3 mb s3://my-react-app.com
# Enable static hosting:
aws s3 website s3://my-react-app.com --index-document index.html --error-document index.html
# Error doc = index.html handles client-side routing (React Router)Memuat Naik Fail Binaan
Segerakkan keluaran binaan ke S3. Tetapkan pengepala cache dengan tempoh panjang untuk aset yang dicincang dan tanpa cache untuk index.html.
# Upload hashed assets with long cache:
aws s3 sync dist/ s3://my-react-app.com/ \
--exclude index.html \
--cache-control "max-age=31536000,immutable"
# Upload index.html with no cache (always fresh):
aws s3 cp dist/index.html s3://my-react-app.com/index.html \
--cache-control "no-cache,no-store"Mencipta Pengedaran CloudFront
Cipta pengedaran CloudFront yang menunjuk kepada baldi S3. Gunakan titik akhir laman web S3 (bukan titik akhir REST) untuk menyokong penghalaan SPA.
# In AWS console or CDK:
# Origin: my-react-app.com.s3-website-us-east-1.amazonaws.com
# Default root object: index.html
# Viewer protocol: Redirect HTTP to HTTPS
# Error pages: 403 → /index.html (200) for SPA routingPembaikan Penghalaan SPA
CloudFront mengembalikan 403 untuk laluan yang tidak dikenali (S3 tidak mengetahui laluan React). Konfigurasikan respons ralat tersuai: 403 → /index.html dengan status 200.
Domain Tersuai & SSL
Minta sijil ACM untuk domain anda di us-east-1 (diperlukan untuk CloudFront). Lampirkan sijil itu pada pengedaran dan tambahkan rekod DNS CNAME yang menunjuk kepada domain CloudFront.
Pembatalan Cache Semasa Penerapan
Selepas menerapkan fail baharu, batalkan cache CloudFront untuk index.html (kerana fail itu tanpa cache di S3 tetapi mungkin dicache oleh CloudFront).
aws cloudfront create-invalidation \
--distribution-id EXXXXXXXXXXXXX \
--paths "/*"Penerapan GitHub Actions
Automatikkan aliran kerja penerapan dalam CI: bina → segerakkan ke S3 → batalkan cache CloudFront.
- name: Deploy to S3
run: aws s3 sync dist/ s3://my-react-app.com/ --delete
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET }}
- name: Invalidate CloudFront
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_ID }} --paths "/*"Dasar Baldi S3
Sekat akses awam pada baldi dan gunakan dasar Kawalan Akses Asal (OAC) supaya hanya CloudFront boleh membaca baldi — lebih selamat daripada pengehosan baldi awam.
Anggaran Kos
Pengehosan statik S3 sangat murah: kira-kira $0.023/GB storan, kira-kira $0.0004/1000 permintaan. Kos CloudFront berbeza mengikut rantau dan pemindahan data, tetapi percuma untuk 1TB pertama sebulan pada peringkat percuma.
Semakan Pantas
Mengapakah anda perlu menetapkan dokumen ralat S3 kepada index.html semasa mengehos SPA React?
Ulang Kaji
Bina SPA, segerakkan ke S3 dengan strategi cache berasingan (cache panjang untuk aset yang dicincang, tanpa cache untuk index.html), dan sajikan melalui CloudFront. Baiki penghalaan SPA dengan memetakan ralat 403 kepada /index.html. Automatikkan penerapan dengan GitHub Actions dan batalkan cache CloudFront pada setiap penerapan.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “Mengehos SPA React di AWS S3 & CloudFront” percuma?
Ya — teks penuh “Mengehos SPA React di AWS S3 & CloudFront” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengehos SPA React di AWS S3 & CloudFront”?
Bina aplikasi React, muat naik ke S3, konfigurasikan edaran CloudFront dan batalkan cache. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Mengehos SPA React di AWS S3 & CloudFront” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menerapkan ke Vercel: Tanpa Konfigurasi & URL Pratonton
- Mengehos SPA React di AWS S3 & CloudFront
- Mendockerkan Aplikasi React/Next.js
- CI/CD GitHub Actions untuk React