Project
13 May 2026
10 views
~3 menit baca
Latihan Lengkap AWS Compute Services | EC2, Load Balancer, Auto Scaling, Lambda
EC2, Network & Security, Load Balance, Auto Scaling, Elastic Beanstalk, Lambda — dengan Contoh Aplikasi Node.js
🚀 Panduan Belajar AWS Compute Services
EC2, Network & Security, Load Balance, Auto Scaling, Elastic Beanstalk, Lambda — dengan Contoh Aplikasi Node.js
🎯 Tujuan Artikel:
Memahami 6 layanan komputasi AWS secara praktik dengan aplikasi sederhana, lengkap dari kode hingga deployment dan auto scaling.
📦 1. Aplikasi Sederhana (Node.js + Express)
Buat folder proyek, lalu buat 2 file berikut:
📄 app.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
let counter = 0;
app.get('/', (req, res) => {
counter++;
res.send(`
<h2>Halo dari AWS Compute</h2>
<p>Host: ${process.env.HOSTNAME || 'localhost'}</p>
<p>Request ke-${counter} di instance ini</p>
<p>Waktu: ${new Date().toISOString()}</p>
`);
});
app.get('/health', (req, res) => {
res.status(200).send('OK');
});
app.listen(PORT, () => {
console.log(`App running on port ${PORT}`);
});
📦 package.json
{
"name": "aws-compute-demo",
"version": "1.0.0",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.2"
}
}
🛠️ 2. Langkah-langkah Praktik
✅ 2.1 Persiapan Awal
- Buat akun AWS (Free Tier)
- Install AWS CLI dan konfigurasi (
aws configure) - Buat Key Pair (untuk SSH ke EC2)
- Buat Security Group dengan aturan: SSH (22), HTTP (80), dan Node.js (3000)
✅ 2.2 EC2 - Deploy Manual Pertama
- Launch EC2 (Amazon Linux 2023, t2.micro)
- SSH:
ssh -i your-key.pem ec2-user@<public-ip> - Install Node.js:
sudo dnf install nodejs npm -y - Upload kode (SCP atau Git clone)
- Jalankan:
npm installKemudian Enter - Jalankan:
npm startKemudian Enter, Jika Gagal Silahkan Ketikkannode app.js - Akses via browser:
http://<public-ip>:3000
✅ 2.3 Elastic Load Balancing (ELB)
- Buat Application Load Balancer
- Target Group → daftarkan EC2 di atas (port 3000)
- Set health check endpoint
/health - Update Security Group EC2 agar menerima traffic dari ALB
- Akses melalui DNS name ALB → request akan terdistribusi
✅ 2.4 Auto Scaling Group (ASG)
- Buat Launch Template (sertakan User-Data untuk install & start app)
- Buat Auto Scaling Group: Min=1, Max=3, Desired=1
- Hubungkan dengan Load Balancer di atas
- Tambahkan scaling policy: misal CPU > 60% → +1 instance
- Uji scaling dengan stress test (opsional)
💡 User-data script (otomatis install & run):
#!/bin/bash
dnf install nodejs npm -y
cd /home/ec2-user
npm install
npm start
✅ 2.5 Elastic Beanstalk (Cara termudah)
- Install EB CLI
eb init -p node.js my-eb-app --region us-east-1eb create my-env --elb-type applicationeb deploy(deploy aplikasi)- Beanstalk otomatis buat EC2, ASG, Load Balancer, health check!
✅ 2.6 AWS Lambda (Serverless)
- Buat fungsi Lambda (Node.js 18.x)
- Kode sederhana:
exports.handler = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({
message: 'Halo dari Lambda!',
time: new Date().toISOString()
})
};
};
- Test di konsol Lambda
- Buat Function URL atau API Gateway untuk akses publik
📊 3. Perbandingan Peran Setiap Layanan
| Service | Peran dalam Demo |
|---|---|
| EC2 | Tempat aplikasi berjalan |
| Security Group | Firewall virtual untuk mengatur traffic |
| Load Balancer | Membagi request ke banyak EC2 |
| Auto Scaling | Menambah/mengurangi EC2 otomatis |
| Elastic Beanstalk | Orchestrator (mengelola semua di atas secara otomatis) |
| Lambda | Alternatif komputasi tanpa server (event-driven) |
🧹 PENTING: Clean Up Resources
Agar tidak kena biaya setelah uji coba, hapus:
Agar tidak kena biaya setelah uji coba, hapus:
- Auto Scaling Group
- Load Balancer & Target Group
- Terminate EC2 instances
- Hapus Elastic Beanstalk environment
- Hapus Lambda function
📌 Kesimpulan
Dengan mengikuti langkah di atas, Anda sudah belajar:
- Membuat aplikasi Node.js sederhana
- Deploy manual ke EC2
- Menambahkan Load Balancer untuk distribusi traffic
- Mengaktifkan Auto Scaling Group berdasarkan metrik
- Deploy otomatis dengan Elastic Beanstalk
- Membuat fungsi serverless dengan Lambda
✨ Selamat mencoba dan semoga bermanfaat untuk belajar bersama tim!
Artikel dipersiapkan untuk pembelajaran AWS Compute Services | #BelajarAWS
Tag:
#backend