Aplikasi tutorial Node.js ini dapat diakses di sini.
Aplikasi Web Node ini adalah aplikasi web React yang dilayani oleh Express. Ini berlabuh dan kemudian diterbitkan di AWS Elastic Beanstalk.
Pertama, buat aplikasi React bernama 'My-App' dan masuk ke folder:
npx create-react-app my-app
cd my-app
Kemudian, instal dan simpan Express:
npm install express --save
Setelah Anda menyelesaikan langkah -langkah di atas, Anda dapat menjalankan aplikasi React dalam mode pengembangan: npm run start
Buat file 'Server.js' sebagai berikut dan simpan di folder Root Proyek:
const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
const PORT = process.env.PORT || 8080;
const HOST = '0.0.0.0';
app.get('/hello', (req, res) => {
return res.send('Hello World!')
});
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(PORT);
console.log(`Running on http://${HOST}:${PORT}`);
Dalam file package.json, tambahkan:
"proxy": "http://localhost:8080"
Setelah menyelesaikan langkah -langkah di atas, Anda dapat menjalankan Build on Anda React App:
npm run build
dan jalankan Express untuk melayani aplikasi React:
node server.js
Untuk menggunakan Docker, daftar di Docker dan pasang Docker dan/atau Docker Desktop sesuai kebutuhan. Setelah instalasi Docker selesai, buat file bernama 'DockerFile' dengan menjalankan:
touch Dockerfile
Di DockerFile, tentukan gambar yang ingin Anda bangun. Nomor gambar terbaru untuk aplikasi Node.js tersedia di hub Docker.
FROM node:14
Selanjutnya, buat direktori kerja aplikasi Anda:
WORKDIR /usr/src/app
Kemudian, salin package.json Anda dan instal dependensi dengan menambahkan baris berikut:
COPY package*.json ./
RUN npm install
Untuk menggabungkan kode sumber di aplikasi Anda, tambahkan:
COPY . .
Aplikasi Anda berjalan di port 8080, jadi tambahkan baris ini:
EXPOSE 8080
Diakhiri dengan menentukan perintah untuk memulai aplikasi Anda:
CMD [ "node", "server.js" ]
Dockerfile lengkap akan terlihat seperti ini:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]
Buat file .dockerignore dan tambahkan baris sebagai berikut: node_modules npm-debug.log Ini akan mencegah modul simpul lokal dan log debug dari disalin ke dalam gambar Docker. Tangkapan layar. Dockerignore: 
Untuk membangun gambar Docker, jalankan perintah berikut:
docker build -t <your username>/<your app name> .
Untuk menjalankan gambar yang dibangun di port 49160, jalankan:
docker run -p 49160:8080 -d <your username>/<your app name>
Bendera -P mengarahkan kembali port publik ke port pribadi di dalam wadah.
Untuk mengonfirmasi bahwa gambar sedang berjalan, jalankan:
docker ps
Untuk menggunakan gambar Docker jarak jauh ke AWS Elastic Beanstalk, dorong gambar ke Hub Docker:
docker push <your username>/<your app name>:latest
Pelajari lebih lanjut
Untuk referensi, Node.js telah menerbitkan panduan tentang cara merapatkan aplikasi Node.js di sini.
Jika Anda belum pernah menggunakan AWS Elastic Beanstalk sebelumnya, Anda dapat memulai dengan membaca dokumentasi.
Buat file dockerrun.aws.json sebagai berikut:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "your-docker-username/repo-name",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8080"
}
]
}
Ini termasuk informasi tentang gambar Docker jarak jauh yang harus ditarik oleh elastis. Kami kemudian akan membuat aplikasi Beanstalk elastis dan mengunggah file ini.
Untuk mengatur aplikasi Anda di elastis beanstalk, pertama, buka Elastic Beanstalk Console -> Aplikasi, dan klik "Buat Aplikasi Baru".
Masukkan nama aplikasi Anda: 
Klik "Buat Lingkungan Baru" untuk aplikasi yang baru saja Anda buat: 
Pilih 'Lingkungan Server Web' untuk aplikasi ini: 
Untuk 'platform', pilih 'Docker', dan cabang platform dan versi yang Anda suka.
Untuk 'kode aplikasi', pilih 'Unggah kode Anda', dan unggah dockerrun.aws.json yang baru saja Anda buat: 

Arahkan ke 'Konfigurasikan lebih banyak opsi', dan pilih konfigurasi preset atau buat konfigurasi yang berisi penyeimbang beban. 
Aplikasi ini akan dibuat sebentar lagi dan akan digunakan di alamat elasticbeanstalk: 
Pelajari lebih lanjut
Untuk referensi, AWS memiliki dokumentasi tentang penggalian Docker Container di AWS Elastic Beanstalk.
Anda dapat membeli alamat domain di platform apa pun yang Anda suka. Contoh ini akan menunjukkan cara menghubungkan aplikasi yang Anda gunakan dengan alamat yang dibeli dari Google Domains.
Pertama, pilih nama domain yang Anda sukai dan beli.
Alamat domain akan ditampilkan di akun Google Domains Anda setelah pembelian. Pergi ke 'DNS' di menu kiri, dan gulir ke 'catatan sumber daya khusus'
Tambahkan catatan CNAME, masukkan alamat aplikasi elastis Anda sebagai 'data' dan 'www' sebagai 'nama': 
Kami juga perlu menambahkan server nama khusus di halaman 'DNS'. Kami akan melakukan ini di bagian "Server Nama". 
Menurut AWS, 'zona yang di -host memberi tahu Route 53 bagaimana menanggapi pertanyaan DNS untuk domain'. Pertama -tama mari kita buat zona yang di -host di AWS Route 53.
Arahkan ke Rute 53 di konsol AWS, dan kemudian ke 'Hosted Zone'.
Klik 'Buat Zona Hosted', dan masukkan alamat domain yang baru saja Anda beli: 
Zona yang di -host akan dibuat: 
Salin 'Nilai' yang terdaftar untuk tipe 'ns' satu per satu hingga 'server nama khusus' di domain google: 
Perhatikan bahwa perubahan yang dilakukan pada domain Google dapat memakan waktu hingga 48 jam untuk berlaku.
Untuk mengatur https, kita harus mendapatkan sertifikat SSL di AWS dan menautkannya ke alamat domain.




