Tutorial membuat aplikasi di Amazon Web Services (AWS)

Tutorial Membuat Aplikasi di Amazon Web Services (AWS)

Amazon Web Services (AWS) adalah salah satu platform komputasi awan (cloud) paling populer di dunia. Dengan AWS, Anda bisa membangun dan menjalankan aplikasi tanpa harus membeli server fisik, mengatur ruang server, atau melakukan perawatan infrastruktur sendiri. Artikel ini akan memandu Anda membuat aplikasi sederhana di AWS dengan pendekatan yang umum dipakai: men-deploy aplikasi web menggunakan layanan komputasi (EC2), database terkelola (RDS) sebagai opsi, serta penyimpanan dan domain jika diperlukan. Meski contoh berikut bersifat umum, Anda dapat menerapkannya untuk banyak jenis aplikasi.

1. Persiapan Awal: Akun dan Konsep Dasar

Sebelum memulai, pastikan Anda memiliki akun AWS. Banyak layanan AWS menyediakan Free Tier (gratis dalam batas tertentu) yang cocok untuk latihan.

Beberapa konsep penting yang perlu Anda pahami:

– Region : lokasi pusat data AWS (contoh: Singapore/ap-southeast-1). Pilih region terdekat agar latensi rendah.
– IAM (Identity and Access Management) : sistem manajemen akses. Praktik terbaik: jangan gunakan akun root untuk pekerjaan harian.
– VPC (Virtual Private Cloud) : jaringan virtual tempat layanan Anda berjalan.
– Security Group : “firewall” untuk mengatur akses masuk/keluar dari server.

Dengan memahami empat hal tersebut, Anda akan jauh lebih mudah menavigasi dasar AWS.

2. Membuat User IAM dan Mengamankan Akun

Langkah keamanan selalu nomor satu. Masuk ke AWS Console sebagai root, lalu:

1. Buka layanan IAM .
2. Buat User baru (misalnya `admin-dev`) dan centang Provide user access to the AWS Management Console .
3. Berikan permission: untuk latihan bisa gunakan AdministratorAccess (meski di proyek nyata sebaiknya lebih terbatas).
4. Aktifkan MFA (Multi-Factor Authentication) untuk meningkatkan keamanan.

Setelah selesai, logout dari root dan login menggunakan user IAM yang baru dibuat.

3. Menentukan Arsitektur Aplikasi

Untuk tutorial ini, kita akan membangun arsitektur sederhana:

– EC2 : menjalankan aplikasi web (misalnya Node.js/Express, Python Flask, atau PHP).
– Opsional RDS : database MySQL/PostgreSQL terkelola, agar data tersimpan rapi.
– S3 (opsional) : menyimpan file statis seperti gambar, dokumen, atau backup.
– Route 53 (opsional) : mengelola domain.
– CloudWatch : monitoring dasar.

READ  Bagaimana cara memulai proyek IoT untuk pemula

Jika Anda baru memulai, fokuslah dulu pada EC2 untuk menjalankan aplikasi.

4. Membuat Server EC2

a) Membuat Instance
1. Masuk ke layanan EC2 .
2. Klik Launch Instance .
3. Pilih OS, misalnya Ubuntu Server 22.04 LTS .
4. Pilih tipe instance: untuk Free Tier gunakan `t2.micro` atau `t3.micro` (tergantung ketersediaan).
5. Buat atau pilih Key Pair (misalnya `aws-key.pem`). Simpan file `.pem` dengan aman karena dipakai untuk SSH.

b) Konfigurasi Jaringan dan Firewall
– Pastikan instance berada di VPC default (untuk latihan boleh).
– Atur Security Group :
– Port 22 (SSH) hanya dari IP Anda (misal: `My IP`)
– Port 80 (HTTP) dari `0.0.0.0/0` (publik)
– Port 443 (HTTPS) dari `0.0.0.0/0` jika nanti pakai SSL

Catatan: Membuka SSH untuk publik adalah risiko. Selalu batasi IP.

Klik Launch dan tunggu instance berjalan.

5. Login ke Server via SSH

Di Windows, Anda bisa memakai WSL atau PuTTY. Di macOS/Linux dapat langsung dari terminal.

1. Ubah permission key:
“`bash
chmod 400 aws-key.pem
“`
2. SSH ke server (gunakan Public IPv4 dari EC2):
“`bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
“`

Jika berhasil, Anda berada di server Ubuntu AWS.

6. Install Web Server dan Runtime Aplikasi

Berikut contoh untuk aplikasi Node.js, karena banyak dipakai untuk web modern.

a) Update dan install dependency
“`bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
“`

b) Install Node.js (versi LTS)
“`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
node -v
npm -v
“`

7. Membuat Aplikasi Sederhana

Buat folder proyek:

READ  Panduan memilih database NoSQL untuk proyek besar

“`bash
mkdir myapp && cd myapp
npm init -y
npm install express
“`

Buat file `index.js`:

“`js
const express = require(“express”);
const app = express();

app.get(“/”, (req, res) => {
res.send(“Halo! Aplikasi Anda berjalan di AWS EC2.”);
});

app.listen(3000, () => console.log(“Server running on port 3000”));
“`

Jalankan aplikasi:

“`bash
node index.js
“`

Coba akses dari browser:
– `http://PUBLIC_IP:3000`

Namun saat ini port 3000 belum dibuka di Security Group. Anda bisa:
1) membuka port 3000 di Security Group, atau
2) menggunakan reverse proxy (lebih disarankan) agar aplikasi tetap di port internal tapi dapat diakses lewat port 80/443.

8. Menggunakan Nginx sebagai Reverse Proxy (Akses via Port 80)

Install Nginx:
“`bash
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
“`

Atur konfigurasi Nginx:
“`bash
sudo nano /etc/nginx/sites-available/myapp
“`

Isi konfigurasi:
“`nginx
server {
listen 80;
server_name _;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
“`

Aktifkan konfigurasi:
“`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
“`

Sekarang akses:
– `http://PUBLIC_IP/`

Aplikasi berjalan di port 3000 namun publik mengakses via port 80.

9. Menjalankan Aplikasi Secara Persisten dengan PM2

Agar aplikasi tidak mati ketika SSH terputus, gunakan PM2 :

“`bash
sudo npm install -g pm2
pm2 start index.js –name myapp
pm2 save
pm2 startup
“`

Perintah `pm2 startup` akan memberi instruksi tambahan. Jalankan perintah yang ditampilkan agar aplikasi otomatis berjalan saat server restart.

10. (Opsional) Menambahkan Database dengan RDS

Jika aplikasi Anda membutuhkan database, RDS memudahkan karena AWS mengelola backup, patching, dan scaling.

Langkah singkat:
1. Buka layanan RDS → Create database .
2. Pilih MySQL atau PostgreSQL (aturan Free Tier tersedia pada konfigurasi tertentu).
3. Atur username/password.
4. Pastikan instance RDS berada di VPC yang sama dengan EC2.
5. Atur Security Group RDS agar hanya menerima koneksi dari Security Group EC2 (bukan dari publik).

READ  Cara merakit komputer sendiri dari nol

Setelah database hidup, ambil endpoint RDS dan hubungkan dari aplikasi Anda menggunakan driver database.

11. (Opsional) Mengaktifkan HTTPS dengan Sertifikat SSL

Untuk produksi, HTTPS wajib. Cara umum:
– Gunakan domain (misal dari Route 53 atau registrar lain).
– Pasang SSL via Let’s Encrypt (Certbot) di EC2.

Secara singkat:
“`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
“`

Ikuti wizard untuk memilih domain dan mengaktifkan redirect HTTPS.

12. Monitoring dan Biaya

AWS menyediakan CloudWatch untuk melihat metrik seperti CPU, network, dan log tertentu. Anda juga perlu memantau biaya agar tidak “kecolongan”.

Tips penting:
– Aktifkan Billing Alarm di CloudWatch (misal alarm jika biaya melebihi $5).
– Matikan instance jika tidak dipakai.
– Hapus resource yang tidak digunakan (load balancer, EBS, IP elastis, snapshot) karena bisa tetap menimbulkan biaya.

Penutup

Selamat! Anda sudah mempelajari langkah dasar membuat aplikasi di AWS menggunakan EC2, menjalankan aplikasi web, mengatur reverse proxy Nginx, dan menjadikannya selalu aktif dengan PM2. Anda juga sudah mendapat gambaran layanan tambahan seperti RDS untuk database, S3 untuk storage, serta sertifikat HTTPS untuk keamanan.

Jika Anda ingin naik level, langkah berikutnya biasanya adalah:
– Deploy otomatis dengan CI/CD (GitHub Actions + SSH, atau AWS CodeDeploy),
– Menggunakan container dengan Docker dan orkestrasi seperti ECS atau EKS ,
– Memakai arsitektur serverless dengan Lambda + API Gateway .

Bila Anda ingin, sebutkan jenis aplikasi yang Anda buat (Node.js, Laravel, Django, React, dll.) dan targetnya (demo, produksi, skala besar). Saya bisa menyesuaikan tutorial dengan langkah yang lebih spesifik.

Tinggalkan Balasan